Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Od Damien Bod
Azure Active Directory B2C (Azure AD B2C) je cloudové řešení správy identit pro webové a mobilní aplikace. Služba poskytuje ověřování pro aplikace hostované v cloudu a v místním prostředí. Typy ověřování zahrnují jednotlivé účty, účty sociálních sítí a federované podnikové účty. Azure AD B2C navíc může poskytovat vícefaktorové ověřování s minimální konfigurací.
Tip
Microsoft Entra ID, Microsoft Entra Externí ID a Azure AD B2C jsou samostatné nabídky produktů. Tenant Entra ID obecně představuje organizaci, zatímco tenant Azure AD B2C nebo Microsoft Entra Externí ID může představovat kolekci identit, které se mají použít s partnerskými aplikacemi. Další informace najdete v tématu Azure AD B2C: Nejčastější dotazy.
Tip
Externí ID Microsoft Entra pro zákazníky je nové řešení microsoftu pro správu identit a přístupu (CIAM).
V tomto kurzu se dozvíte, jak nakonfigurovat aplikaci ASP.NET Core pro ověřování pomocí Azure AD B2C.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- .NET SDK. Nainstalujte nejnovější sadu .NET SDK pro vaši platformu.
Příprava
Vytvořte novou aplikaci ASP.NET Core Pages Razor:
dotnet new razor -o azure-ad-b2cPředchozí příkaz vytvoří Razor aplikaci stránek v adresáři s názvem azure-ad-b2c.
Tip
K vytvoření aplikace můžete raději použít Visual Studio.
Vytvořte registraci webové aplikace v tenantovi. Jako URI přesměrování použijte
https://localhost:5001/signin-oidc. Nahraďte5001port používaný vaší aplikací při použití portů generovaných sadou Visual Studio.
Úprava aplikace
Přidejte balíčky
Microsoft.Identity.WebaMicrosoft.Identity.Web.UIdo projektu. Pokud používáte Visual Studio, můžete použít Správce balíčků NuGet.dotnet add package Microsoft.Identity.Web dotnet add package Microsoft.Identity.Web.UIV předchozím příkladu:
-
Microsoft.Identity.Webzahrnuje základní sadu závislostí pro ověřování pomocí platformy Microsoft Identity Platform. -
Microsoft.Identity.Web.UIzahrnuje funkce uživatelského rozhraní zapouzdřené v oblasti s názvemMicrosoftIdentity.
-
AzureADB2CPřidat objekt doappsettings.json.Poznámka:
Při používání toků uživatelů Azure B2C musíte nastavit instanci a ID zásad typu toku.
{ "AzureADB2C": { "Instance": "https://--your-domain--.b2clogin.com", "Domain": "[Enter the domain of your B2C tenant, e.g. contoso.onmicrosoft.com]", "TenantId": "[Enter 'common', or 'organizations' or the Tenant Id (Obtained from the Azure portal. Select 'Endpoints' from the 'App registrations' blade and use the GUID in any of the URLs), e.g. da41245a5-11b3-996c-00a8-4d99re19f292]", "ClientId": "[Enter the Client Id (Application ID obtained from the Azure portal), e.g. ba74781c2-53c2-442a-97c2-3d60re42f403]", // Use either a secret or a certificate. ClientCertificates are recommended. "ClientSecret": "[Copy the client secret added to the app from the Azure portal]", "ClientCertificates": [ ], // the following is required to handle Continuous Access Evaluation challenges "ClientCapabilities": [ "cp1" ], "CallbackPath": "/signin-oidc", // Add your policy here "SignUpSignInPolicyId": "B2C_1_signup_signin", "SignedOutCallbackPath": "/signout-callback-oidc" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*" }- Pro doménu použijte doménu vašeho tenanta Azure AD B2C.
- Pro ClientId použijte ID aplikace (klienta) z registrace aplikace, kterou jste vytvořili ve svém tenantovi.
- Například Instance použijte doménu vašeho tenanta Azure AD B2C.
- Pro SignUpSignInPolicyId použijte zásadu toku uživatele definovanou v tenantovi Azure B2C.
- Použijte konfiguraci ClientSecret nebo ClientCertificates. Doporučuje se certifikáty ClientCertificates.
- Všechny ostatní hodnoty nechte tak, jak jsou.
Ve složce Pages/Shared vytvořte soubor s názvem
_LoginPartial.cshtml. Zahrňte následující kód:@using System.Security.Principal <ul class="navbar-nav"> @if (User.Identity?.IsAuthenticated == true) { <span class="navbar-text text-dark">Hello @User.Identity?.Name!</span> <li class="nav-item"> <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignOut">Sign out</a> </li> } else { <li class="nav-item"> <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a> </li> } </ul>Předchozí kód:
- Zkontroluje, jestli je uživatel ověřený.
- Vykreslí odkaz pro odhlášení nebo přihlášení podle potřeby.
- Odkaz odkazuje na metodu akce na
Accountkontroleru vMicrosoftIdentityoblasti.
- Odkaz odkazuje na metodu akce na
V souboru Pages/Shared/_Layout.cshtml přidejte zvýrazněný řádek v elementu
<header>:<header> <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3"> <div class="container"> <a class="navbar-brand" asp-area="" asp-page="/Index">azure_ad_b2c</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="navbar-collapse collapse d-sm-inline-flex justify-content-between"> <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a> </li> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a> </li> </ul> <partial name="_LoginPartial" /> </div> </div> </nav> </header>Přidání
<partial name="_LoginPartial" />vykreslí_LoginPartial.cshtmlčástečné zobrazení v každém požadavku na stránku, který toto rozložení používá.V Program.cs proveďte následující změny:
Přidejte následující
usingdirektivy:using Microsoft.Identity.Web; using Microsoft.Identity.Web.UI; using Microsoft.AspNetCore.Authentication.OpenIdConnect;Předchozí kód vyřeší odkazy použité v dalších krocích.
builder.ServicesAktualizujte řádky následujícím kódem:builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme) .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureADB2C")); builder.Services.AddAuthorization(options => { // By default, all incoming requests will be authorized according to // the default policy options.FallbackPolicy = options.DefaultPolicy; }); builder.Services.AddRazorPages(options => { options.Conventions.AllowAnonymousToPage("/Index"); }) .AddMvcOptions(options => { }) .AddMicrosoftIdentityUI();V předchozím kódu:
- Volání metod
AddAuthenticationaAddMicrosoftIdentityWebAppkonfigurují aplikaci tak, aby používala Open ID Connect, konkrétně nakonfigurovanou pro platformu Microsoft Identity Platform. -
AddAuthorizationinicializuje autorizaci ASP.NET Core. - Volání
AddRazorPagesnakonfiguruje aplikaci tak, aby anonymní prohlížeče mohly zobrazit indexovou stránku. Všechny ostatní požadavky vyžadují ověření. -
AddMvcOptionsaAddMicrosoftIdentityUIpřidejte požadované komponenty uživatelského rozhraní pro přesměrování do a z Azure AD B2C.
- Volání metod
Aktualizujte zvýrazněnou čáru na metodu
Configure:app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapRazorPages();Předchozí kód umožňuje ověřování v ASP.NET Core.
Spustit aplikaci
Poznámka:
Použijte profil, který odpovídá registraci aplikace Azure identifikátorům URI pro přesměrování.
Spustit aplikaci.
dotnet run --launch-profile httpsPřejděte do zabezpečeného koncového bodu aplikace, například
https://localhost:5001/.- Stránka Index se vykreslí bez autentizační výzvy.
- Záhlaví obsahuje odkaz pro přihlášení , protože nejste ověřeni.
Vyberte odkaz Privacy.
- Prohlížeč se přesměruje na nakonfigurovanou metodu ověřování vašeho tenanta.
- Po přihlášení se v záhlaví zobrazí uvítací zpráva a odkaz Pro odhlášení .
Další kroky
V tomto kurzu jste zjistili, jak nakonfigurovat aplikaci ASP.NET Core pro ověřování pomocí Azure AD B2C.
Teď, když je aplikace ASP.NET Core nakonfigurovaná tak, aby k ověřování používala Azure AD B2C, můžete k zabezpečení aplikace použít atribut Authorize. Pokračujte v vývoji aplikace tím, že se naučíte:
- Přizpůsobení uživatelského rozhraní Azure AD B2C
- Konfigurace požadavků na složitost hesel
- Povolte vícefaktorové ověřování.
- Nakonfigurujte další zprostředkovatele identity, jako jsou Microsoft, Facebook, Google, Amazon, Twittera další.
- Pomocí rozhraní Microsoft Graph API načtěte další informace o uživateli, jako je členství ve skupinách, z tenanta Azure AD B2C.
- Jak zabezpečit webové rozhraní API vytvořené pomocí ASP.NET Core pomocí Azure AD B2C.
- Kurz: Udělení přístupu k webovému rozhraní API ASP.NET pomocí Azure Active Directory B2C