0

私はAngularJSクライアントアプリケーションとデータベースメソッドに連絡するWebApiを持っています。私はユーザを認証するためにIdentityServer3を持っています。 localhost:5005/core/connect/authorize?client_id=ClientA&redirect_uri=http%3A%2F%2Flocalhost%3A30005%2Fcallback&response_type=code%20id_token&scope=openid&state=94bbc0299da444468bb9cc21e5277cf1&nonce=873ea5f66fe0468faa9a362bf1a50e46" WebAPIコントローラメソッドを使用してログインするためにIdentityServer認証メソッドを呼び出す方法

  • WebAPIのlocalhost:5000/Auth/Login
  • 角度のApp:どのように私は

    • IdentityServerログインできlocalhost:30005私はWebAPIのログインコントローラメソッドを介してユーザーを認証できるか

    public class LoginController : ApiController 
    { 
        [HttpGet] 
        public string Login(UserInfo user) 
        { 
         // How to implement the logic 
        } 
    } 
    

    モデル:

    public class UserInfo 
    { 
        public string UserId { get; set; } 
        public string Password { get; set; } 
    } 
    

    WebAPIのスタートアップ

    public class Startup 
    { 
        public void Configuration(IAppBuilder app) 
        { 
         JwtSecurityTokenHandler.InboundClaimTypeMap.Clear(); 
         app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions 
         { 
          Authority = "localhost:5005", 
          RequiredScopes = new[] { "idmgr" } }); 
    
         app.UseWebApi(WebApiConfig.Register()); 
        } 
    } 
    

    親切にどのようWebAPIの中でのログイン方法を構築するために私を助けます。

  • 答えて

    0

    第1機関にはプロトコルが必要です。私はそのhttpsを推測する。あなたは権威の中でプロトコルを言及する必要があります。あなたのwebapiでは "https://localhost:5005"のようになります。

    第2に、角度アプリからログインする必要があると思います。私は角度2を使用していると思います。このlinkを見てください。 角度アプリからオーソライズコールを行うときは、 "idmgr"スコープ(webapiの必須スコープで使用したスコープ)を含めることができます。同意画面を表示するように設定した場合、このスコープ「idmgr」が表示され、webapiを呼び出すと、起動方法によってこのスコープが利用可能かどうかがチェックされ、webapiへのアクセスが許可されるか、または403(禁止された)アクセスが返されます。

    +0

    はい...その 'https'バージョンのみ...と私は' AngularJs 1.xx'を使用しています 私の質問はこれを使って '[Authorize]' WebAPIメソッドを呼び出す方法です。 WebAPIで 'OWIN' Authを設定する必要がありますか?はいの場合、IdentityServerトークンをベアラトークンとして受け入れますか? –

    +0

    はい、あなたはowinを設定する必要があり、IAppBuilderメソッドには、必要なスコープと権限(あなたのサーバーのURL)を持つ "UseIdentityServerBearerTokenAuthentication"という拡張メソッドがあります。 あなたのresponse_typeを「トークン」とし、応答トークンのタイプをベアラまたはポップにすることができる場合、IdentityServerはauthtokenを提供できます。 –

    +0

    @ B.Balamanigandanでは、JWTトークンを作成する場所のコードを追加できますか? –

    関連する問題