我的問題是有這個,什麼是當用戶驗證的登錄到一個數據庫的最佳方式?我曾考慮將重定向網址設置爲端點,然後保存,然後重定向回「主頁」,但這是否理想?
這種方式只能記錄那些已經成功登錄您的應用的用戶。無法登錄嘗試登錄您的應用的用戶,但輸入了錯誤的密碼。
Azure的AD已經提供了大量的報告,以瞭解爲您的組織目錄的完整性和安全性。(參見here)
如果您正在使用Azure的AD高級版,您可以查看登錄活動通過以下Azure new portal: 
而且,如果要將登錄活動存儲在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核心應用程序獲取令牌。
感謝您的回覆。 OnTokenValidated代碼位於我的Startup.cs中。不知道如何這是一個理想的點擊DB – aherrick
身份驗證流程是由用戶開始,用戶輸入正確的用戶名/密碼後,Azure AD會將頁面重定向到帶有id_token的Web應用程序。然後,OWIN組件將嘗試根據id_token驗證用戶信息。驗證令牌後,「OnTokenValidated」將會觸發。代碼在哪個類上的位置並不重要。 –
ASP.Net Core 2.0仍然可以嗎?這個API變化很大。 – zuckerthoben