快速入門:透過 Microsoft 將登入新增至 ASP.NET Core Web 應用程式
歡迎! 這可能不是您預期的頁面。 當我們處理修正程式時,此連結應會將您導向至正確的文章:
當我們努力解決問題時,也對您的不便深感抱歉,並感謝您的耐心等候。
在本快速入門中,您會下載並執行範例程式碼,該範例會示範 ASP.NET Core Web 應用程式如何從任何 Microsoft Entra 組織登入使用者。
步驟 1:在 Azure 入口網站中設定您的應用程式
若要讓此快速入門中的程式碼範例正常運作:
- 針對 [重新導向 URI],輸入 https://localhost:44321/ 和 https://localhost:44321/signin-oidc。
- 針對 [從前端通道登出 URL],輸入 https://localhost:44321/signout-oidc。
授權端點會發出識別碼權杖的要求。
您的應用程式已使用這些屬性進行設定。
步驟 2:下載 ASP.NET Core 專案
執行專案。
提示
為了避免 Windows 中路徑長度限制所造成的錯誤,建議您將封存解壓縮或將存放庫複製到磁碟機根目錄附近的目錄中。
步驟 3:您的應用程式已設定並準備好執行
我們已使用您的應用程式屬性值來設定您的專案,且專案已可供執行。
注意
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 Connect。
包含 .AddMicrosoftIdentityWebApp
的程式碼行會將 Microsoft 身分識別驗證新增至您的應用程式。 然後,應用程式會根據 appsettings.json 組態檔的 AzureAD
區段中的下列資訊,設定為登入使用者:
appsettings.json 金鑰 | 描述 |
---|---|
ClientId |
於 Azure 入口網站中註冊的應用程式的應用程式 (用戶端) 識別碼。 |
Instance |
使用者進行驗證的 Security Token Service (STS) 端點。 此值通常為 https://login.microsoftonline.com/ ,代表 Azure 公用雲端。 |
TenantId |
租用戶名稱或其租用戶識別碼 (即 GUID),或 common (使用公司或學校帳戶或 Microsoft 個人帳戶來登入使用者)。 |
Configure()
方法包含兩個重要方法:app.UseAuthentication()
和 app.UseAuthorization()
,可啟用其各自的具名功能。 此外,在 Configure()
方法中,您必須使用至少一個 endpoints.MapControllerRoute()
呼叫或 endpoints.MapControllers()
呼叫來註冊 Microsoft Identity Web 的路由:
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。
- 新增授權。
- 以國家雲端或社交身分識別登入使用者。