快速入門:透過 Microsoft 將登入新增至 ASP.NET Core Web 應用程式
歡迎! 這可能不是您預期的頁面。 當我們處理修正時,此鏈接應該會帶您前往正確的文章:
我們為不便道歉,並感謝您的耐心,同時我們努力解決這個問題。
在本快速入門中,您會下載並執行程式碼範例,示範如何從任何 Microsoft Entra 組織登入 ASP.NET Core Web 應用程式。
步驟 1:在 Azure 入口網站 中設定您的應用程式
若要讓本快速入門中的程式碼範例運作:
- 針對 [ 重新導向 URI],輸入 https://localhost:44321/ 和 https://localhost:44321/signin-oidc。
- 針對 [ 前端通道註銷 URL],輸入 https://localhost:44321/signout-oidc。
授權端點會發出要求標識元令牌。
您的應用程式會使用這些屬性進行設定。
步驟 2:下載 ASP.NET Core 專案
執行 專案。
提示
若要避免 Windows 中路徑長度限制所造成的錯誤,建議您將封存盤或複製存放庫擷取到磁碟驅動器根附近的目錄。
步驟 3:您的應用程式已設定並準備好執行
我們已使用您 app 屬性的值來設定您的專案,並準備好執行。
注意
Enter_the_Supported_Account_Info_Here
其他相關資訊
本節提供登入使用者所需的程式碼概觀。 此概觀有助於瞭解程式代碼的運作方式、主要自變數是什麼,以及如何將登入新增至現有的 ASP.NET Core 應用程式。
範例的運作方式
啟動類別
Microsoft.AspNetCore.Authentication 中間件會使用Startup
裝載進程啟動時執行的類別:
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration.GetSection("AzureAd"));
services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});
services.AddRazorPages()
.AddMicrosoftIdentityUI();
}
方法 AddAuthentication()
會設定服務以新增 Cookie 型驗證。 此驗證用於瀏覽器案例,並將挑戰設定為OpenID連線。
包含的行會將 .AddMicrosoftIdentityWebApp
Microsoft 身分識別平台 驗證新增至您的應用程式。 然後,應用程式會設定為根據 appsettings.json組態檔區段中的下列資訊AzureAD
來登入使用者:
appsettings.json鍵 | 描述 |
---|---|
ClientId |
在 Azure 入口網站 中註冊之應用程式的應用程式(用戶端)標識碼。 |
Instance |
用戶要驗證的安全性令牌服務 (STS) 端點。 此值通常是 https://login.microsoftonline.com/ ,表示 Azure 公用雲端。 |
TenantId |
您的租用戶名稱或租使用者標識碼(GUID),或 common 以公司或學校帳戶或 Microsoft 個人帳戶登入使用者。 |
方法 Configure()
包含兩個重要的方法和 app.UseAuthentication()
app.UseAuthorization()
,可啟用其具名功能。 此外,在 方法中 Configure()
,您必須註冊 Microsoft Identity Web 路由,並至少呼叫 endpoints.MapControllerRoute()
或 呼叫 endpoints.MapControllers()
:
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
保護控制器或方法的屬性
您可以使用 屬性來保護控制器或控制器方法 [Authorize]
。 此屬性只允許已驗證的使用者,以限制對控制器或方法的存取。 然後,如果使用者未通過驗證,就可以啟動驗證挑戰來存取控制器。
說明與支援
如果您需要協助、想要回報問題,或想要了解支援選項,請參閱 開發人員的說明和支援。
下一步
包含此 ASP.NET Core 教學課程的 GitHub 存放庫包含指示和更多程式碼範例,示範如何:
- 將驗證新增至新的 ASP.NET Core Web 應用程式。
- 呼叫 Microsoft Graph、其他 Microsoft API 或您自己的 Web API。
- 新增授權。
- 使用國家雲端或社交身分識別登入使用者。