Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Av Damien Bod
Azure Active Directory B2C (Azure AD B2C) är en lösning för molnidentitetshantering för webb- och mobilappar. Tjänsten tillhandahåller autentisering för appar som finns i molnet och lokalt. Autentiseringstyper inkluderar enskilda konton, konton för sociala nätverk och federerade företagskonton. Dessutom kan Azure AD B2C tillhandahålla multifaktorautentisering med minimal konfiguration.
Tips/Råd
Microsoft Entra ID, Microsoft Entra External ID och Azure AD B2C är separata produkterbjudanden. En Entra ID-klientorganisation representerar vanligtvis en organisation, medan en Azure AD B2C-klientorganisation eller en extern Microsoft Entra-ID-klientorganisation kan representera en samling identiteter som ska användas med förlitande partprogram. Mer information finns i Azure AD B2C: Vanliga frågor och svar.
Tips/Råd
Microsoft Entra Externt ID för kunder är Microsofts nya lösning för kundidentitets- och åtkomsthantering (CIAM).
I den här självstudien får du lära dig hur du konfigurerar en ASP.NET Core-app för autentisering med Azure AD B2C.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- .NET SDK. Installera den senaste .NET SDK :t för din plattform.
Förberedelse
- Skapa en ny ASP.NET Core Razor Pages-app: - dotnet new razor -o azure-ad-b2c- Föregående kommando skapar en Razor Pages-app i en katalog med namnet azure-ad-b2c. - Tips/Råd - Du kanske föredrar att använda Visual Studio för att skapa din app. 
- Skapa en webbappregistrering i tenanten. För omdirigerings-URI använder du - https://localhost:5001/signin-oidc. Ersätt- 5001med den port som används av din app när du använder Visual Studio-genererade portar.
Ändra appen
- Lägg till paketen - Microsoft.Identity.Weboch- Microsoft.Identity.Web.UIi projektet. Om du använder Visual Studio kan du använda NuGet Package Manager.- dotnet add package Microsoft.Identity.Web dotnet add package Microsoft.Identity.Web.UI- I det föregående: - 
              Microsoft.Identity.Webinnehåller den grundläggande uppsättningen beroenden för autentisering med Microsofts identitetsplattform.
- 
              Microsoft.Identity.Web.UIinnehåller UI-funktioner inkapslade i ett område med namnetMicrosoftIdentity.
 
- 
              
- Lägg till ett - AzureADB2Cobjekt i- appsettings.json.- Anmärkning - När du använder Azure B2C-användarflöden måste du ange instansen och PolicyId för typen av flöde. - { "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": "*" }- För Domän använder du domänen för din Azure AD B2C-klientorganisation.
- För ClientId använder du Program (klient) ID från appregistreringen som du skapade i din klient.
- Använd till exempel domänen för din Azure AD B2C-klientorganisation.
- För SignUpSignInPolicyId använder du användarflödesprincipen som definierats i Azure B2C-klientorganisationen
- Använd antingen ClientSecret - eller ClientCertificates-konfigurationen . Klientcertifikat rekommenderas.
- Lämna alla andra värden som de är.
 
- Skapa en fil med namnet - _LoginPartial.cshtmli Sidor/Delad. Inkludera följande kod:- @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>- Föregående kod: - Kontrollerar om användaren är autentiserad.
- Visar en utloggningslänk eller inloggningslänk efter behov.
- Länken pekar på en åtgärdsmetod på kontrollanten Accounti områdetMicrosoftIdentity.
 
- Länken pekar på en åtgärdsmetod på kontrollanten 
 
- Lägg till den markerade raden i elementet - <header>i Pages/Shared/_Layout.cshtml:- <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>- Om du lägger till - <partial name="_LoginPartial" />återges den- _LoginPartial.cshtmlpartiella vyn i varje sidbegäran som använder den här layouten.
- I Program.cs gör du följande ändringar: - Lägg till följande - usingdirektiv:- using Microsoft.Identity.Web; using Microsoft.Identity.Web.UI; using Microsoft.AspNetCore.Authentication.OpenIdConnect;- Koden ovan matchar referenser som används i nästa steg. 
- Uppdatera raderna - builder.Servicesmed följande kod:- 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();- I koden ovan: - Anrop till AddAuthenticationmetoderna ochAddMicrosoftIdentityWebAppkonfigurerar appen för att använda Open ID Connect, som är specifikt konfigurerat för Microsofts identitetsplattform.
- 
              AddAuthorizationinitierar ASP.NET Core-auktorisering.
- Anropet AddRazorPageskonfigurerar appen så att anonyma webbläsare kan visa sidan Index. Alla andra begäranden kräver autentisering.
- 
              AddMvcOptionsochAddMicrosoftIdentityUIlägg till nödvändiga gränssnittskomponenter för omdirigering till/från Azure AD B2C.
 
- Anrop till 
- Uppdatera den markerade raden till - Configuremetoden:- app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapRazorPages();- Föregående kod aktiverar autentisering i ASP.NET Core. 
 
Kör appen
Anmärkning
Använd profilen som matchar Omdirigerings-URI:er för Azure-appregistrering
- Kör appen. - dotnet run --launch-profile https
- Bläddra till appens säkra slutpunkt, - https://localhost:5001/till exempel .- Sidan Index renderas utan autentiseringsutmaning.
- Rubriken innehåller en inloggningslänk eftersom du inte är autentiserad.
 
- Välj länken Privacy . - Webbläsaren omdirigeras till klientens konfigurerade autentiseringsmetod.
- När du har loggat in visar rubriken ett välkomstmeddelande och en utloggningslänk .
 
Nästa steg
I den här självstudien har du lärt dig hur du konfigurerar en ASP.NET Core-app för autentisering med Azure AD B2C.
Nu när ASP.NET Core-appen har konfigurerats för att använda Azure AD B2C för autentisering kan attributet Auktorisera användas för att skydda din app. Fortsätt att utveckla din app genom att lära dig att:
- Anpassa Användargränssnittet för Azure AD B2C.
- Konfigurera krav på lösenordskomplexitet.
- Aktivera multifaktorautentisering.
- Konfigurera ytterligare identitetsprovidrar, till exempel Microsoft, Facebook, Google, Amazon, Twitter och andra.
- Använd Microsoft Graph API för att hämta ytterligare användarinformation, till exempel gruppmedlemskap, från Azure AD B2C-klientorganisationen.
- Så här skyddar du ett webb-API som skapats med ASP.NET Core med hjälp av Azure AD B2C.
- Självstudie: Bevilja åtkomst till ett ASP.NET webb-API med hjälp av Azure Active Directory B2C.
ASP.NET Core