0

私はAzure ADに対して、ASP.NET Coreで認証するために以下のビットを使用しています。Azure AD OpenIDConnect + ASP.NETコア - 認証と余分なパーミッション/トークン?

https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/

https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect-aspnetcore

私はAzureのADアプリを作成した後に作業基本的なログイン/認証を持っています。ユーザーはログイン/ログアウトできます。

私の質問は、ユーザー認証がDBにログオンするときにはどのような方法が最適ですか?私はエンドポイントへのリダイレクトURLを保存し、保存してから "ホーム"にリダイレクトすることを考えましたが、それは理想的ですか?

また、この方法でベアラトークンを取得することは可能ですか?それとも、これは別のタイプの呼び出しや拡張「スコープ」を必要としますか?たとえば、認証済みのユーザーマネージャを取得することができます。

https://graph.microsoft.com/v1.0/me/manager

答えて

1

私の質問はこれを与えられて、ユーザー認証のは、DBにログインするための最良の方法は何ですか?私はエンドポイントへのリダイレクトURLを保存し、保存してから "ホーム"にリダイレクトすることを考えましたが、それは理想的ですか?

この方法では、すでにアプリにログインしているユーザーだけをログに記録できます。アプリにサインインしようとしているユーザーにはログインできませんが、間違ったパスワードを入力することはできません。

AzureのADがすでに

hereを参照してください)。組織のディレクトリの完全性とセキュリティに可視性を得るためにレポートの多くを提供し、あなたはAzureのADプレミアムを使用している場合、あなたはサインイン活動を確認することができます

以下 Azure new portal経由: enter image description here

そして、あなたはあなたのウェブアプリでサインインアクティビティを保存したい場合は、トークンが確認された後は、カスタムコードを書くことができます。

また
// Configure the OWIN pipeline to use OpenID Connect auth. 
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions 
{ 
      ClientId = Configuration["AzureAD:ClientId"], 
      Authority = String.Format(Configuration["AzureAd:AadInstance"], Configuration["AzureAd:Tenant"]), 
      ResponseType = OpenIdConnectResponseType.IdToken, 
      PostLogoutRedirectUri = Configuration["AzureAd:PostLogoutRedirectUri"], 
      Events = new OpenIdConnectEvents 
      { 
       OnRemoteFailure = OnAuthenticationFailed, 
       OnTokenValidated = context => { 
        //write the custom code to store users login-in       
        return Task.FromResult(0); } 
      }, 

}); 

、それはこのアプローチを経由してベアラ・トークンを取得することが可能である:ここではあなたの参照のためのコードはありますか?

はい。認証コードを受け取った後にトークンを取得できます。コードサンプルhereを参照して、asp.netコアアプリケーションからトークンを取得することができます。

+0

お返事ありがとうございます。 OnTokenValidatedコードはStartup.csにあります。どのようにそれが理想的な場所にDBを打つことがわからない – aherrick

+0

ユーザーが正しいユーザー名/パスワードを入力した後、認証フローがユーザーによって開始されます。Azure ADはid_tokenでWebアプリケーションにページをリダイレクトします。次に、OWINコンポーネントはid_tokenに基づいてユーザー情報を検証しようとします。そして、トークンが検証された後、 'OnTokenValidated'が起動します。コードがどこのクラスにあるかは関係ありません。 –

+0

これはASP.Net Core 2.0でもまだ可能ですか? APIがかなり変更されました。 – zuckerthoben

関連する問題