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

我有創建天青AD應用後基本登錄/ AUTH工作。用戶可以登錄/註銷。

我的問題是這樣的,當用戶Auth登錄到數據庫時,最好的方法是什麼?我曾考慮將重定向網址設置爲端點,然後保存,然後重定向回「主頁」,但這是否理想?

另外,是否有可能通過這種方法檢索不記名令牌?或者這是否需要另一種類型的呼叫或擴展「範圍」?例如,我可以檢索經過身份驗證的用戶管理器。

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

回答

1

我的問題是有這個,什麼是當用戶驗證的登錄到一個數據庫的最佳方式?我曾考慮將重定向網址設置爲端點,然後保存,然後重定向回「主頁」,但這是否理想?

這種方式只能記錄那些已經成功登錄您的應用的用戶。無法登錄嘗試登錄您的應用的用戶,但輸入了錯誤的密碼。

Azure的AD已經提供了大量的報告,以瞭解爲您的組織目錄的完整性和安全性。(參見here

如果您正在使用Azure的AD高級版,您可以查看登錄活動通過以下Azure new portalenter image description here

而且,如果要將登錄活動存儲在Web應用程序中,則可以在驗證令牌後編寫自定義代碼。這是給你參考代碼:

// 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