Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Damien Bod által
Azure Active Directory B2C (Azure AD B2C) egy felhőalapú identitáskezelési megoldás webes és mobilalkalmazásokhoz. A szolgáltatás hitelesítést biztosít a felhőben és a helyszínen üzemeltetett alkalmazásokhoz. A hitelesítési típusok közé tartoznak az egyéni fiókok, a közösségi hálózati fiókok és az összevont vállalati fiókok. Az Azure AD B2C emellett minimális konfigurációval többtényezős hitelesítést is biztosít.
Borravaló
A Microsoft Entra ID, a Microsoft Entra External ID és az Azure AD B2C különálló termékajánlatok. Az Entra ID-bérlők általában egy szervezetet képviselnek, míg az Azure AD B2C-bérlő vagy a Microsoft Entra külső azonosító bérlője a függő entitások alkalmazásaival használandó identitások gyűjteményét képviselheti. További információ: Azure AD B2C: Gyakori kérdések (GYIK).
Borravaló
Microsoft Entra külső azonosító az ügyfelek a Microsoft új ügyfélidentitás- és hozzáférés-kezelési (CIAM) megoldása.
Ebben az oktatóanyagban megtudhatja, hogyan konfigurálhat egy ASP.NET Core-alkalmazást az Azure AD B2C-vel való hitelesítéshez.
Előfeltételek
- Aktív előfizetéssel rendelkező Azure-fiók. Fiók létrehozása ingyenes.
- .NET SDK. Telepítse a legújabb .NET SDK-t a saját platformjára.
Előkészítés
Hozzon létre egy új ASP.NET Core Razor-lapalkalmazást:
dotnet new razor -o azure-ad-b2cAz előző parancs létrehoz egy Razor oldalakat tartalmazó alkalmazást egy azure-ad-b2cnevű könyvtárban.
Borravaló
Érdemes lehet a Visual Studióval létrehozni az alkalmazás.
Webalkalmazás-regisztráció létrehozása a bérlő-ben. Átirányítási URIesetén használja a
https://localhost:5001/signin-oidc. Cserélje le5001az alkalmazás által a Visual Studio által létrehozott portok használatakor használt portra.
Az alkalmazás módosítása
Adja hozzá a
Microsoft.Identity.WebésMicrosoft.Identity.Web.UIcsomagokat a projekthez. Ha Visual Studiót használ, használhatja NuGet Package Manager.dotnet add package Microsoft.Identity.Web dotnet add package Microsoft.Identity.Web.UIAz előzőben:
-
Microsoft.Identity.Webtartalmazza a Microsoft identitásplatformon való hitelesítéshez szükséges alapvető függőségeket. -
Microsoft.Identity.Web.UIMicrosoftIdentitynevű területen beágyazott felhasználói felületi funkciókat tartalmaz.
-
Adj hozzá egy
AzureADB2Cobjektumot aappsettings.json-hez.Jegyzet
Az Azure B2C felhasználói folyamatait használva be kell állítania a Instance és a folyamattípus PolicyId azonosítóját.
{ "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": "*" }- Tartományszámára használja az Azure AD B2C bérlő tartományát.
- ClientIdesetében használja a tenantban létrehozott alkalmazásregisztráció Alkalmazás (ügyfél) azonosítóját.
- Példányesetében használja az Azure AD B2C-bérlő tartományát.
- A SignUpSignInPolicyIdesetében használja az Azure B2C-bérlőben definiált felhasználói folyamatszabályzatot
- Használja a ClientSecret vagy a ClientCertificates konfigurációt. A ClientCertificates használata ajánlott.
- Hagyja meg az összes többi értéket változatlanul.
A Lapok/Megosztottlapon hozzon létre egy
_LoginPartial.cshtmlnevű fájlt. Adja meg a következő kódot:@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>Az előző kód:
- Ellenőrzi, hogy a felhasználó hitelesítése megtörtént-e.
- Megjeleníti a Kijelentkezés vagy Bejelentkezés hivatkozást, ha szükséges.
- A hivatkozás egy műveletmetódusra mutat a
Accountterületen találhatóMicrosoftIdentityvezérlőn.
- A hivatkozás egy műveletmetódusra mutat a
A Pages/Shared/_Layout.cshtmlelemben adja hozzá a kiemelt sort a
<header>elemhez:<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>A
<partial name="_LoginPartial" />hozzáadása a_LoginPartial.cshtmlrészleges nézetet jeleníti meg minden olyan lapkérelemben, amely ezt az elrendezést használja.A Program.csvégezze el a következő módosításokat:
Adja hozzá a következő
usingirányelveket:using Microsoft.Identity.Web; using Microsoft.Identity.Web.UI; using Microsoft.AspNetCore.Authentication.OpenIdConnect;Az előző kód feloldja a következő lépésekben használt hivatkozásokat.
Frissítse a
builder.Servicessorokat a következő kóddal: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();Az előző kódban:
- A
AddAuthenticationésAddMicrosoftIdentityWebAppmetódusok hívásai konfigurálják az alkalmazást az Open ID Connect használatára, amely kifejezetten a Microsoft identitásplatformhoz van konfigurálva. -
AddAuthorizationinicializálja ASP.NET Core-hitelesítést. - A
AddRazorPageshívás konfigurálja az alkalmazást, hogy a névtelen böngészők megtekinthassék az Index oldalt. Minden más kéréshez hitelesítés szükséges. -
AddMvcOptionsésAddMicrosoftIdentityUIadja hozzá az Azure AD B2C-be vagy onnan való átirányításhoz szükséges felhasználói felületi összetevőket.
- A
Frissítse a kiemelt sort a
Configuremódszerre:app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.MapRazorPages();Az előző kód engedélyezi a hitelesítést ASP.NET Core-ban.
Az alkalmazás futtatása
Jegyzet
Használja azt a profilt, amely megfelel az Azure alkalmazásregisztrációs átirányítási URI-k értékeinek.
Futtassa az alkalmazást.
dotnet run --launch-profile httpsKeresse meg az alkalmazás biztonságos végpontját, például
https://localhost:5001/.- Az Index lap hitelesítési kihívás nélkül jelenik meg.
- A fejléc tartalmaz egy Bejelentkezés hivatkozást, mert nincs hitelesítve.
Válassza a Privacy hivatkozást.
- A rendszer átirányítja a böngészőt a bérlő konfigurált hitelesítési módszerére.
- Bejelentkezés után a fejléc egy üdvözlő üzenetet és egy Kijelentkezés hivatkozást jelenít meg.
Következő lépések
Ebben az oktatóanyagban megtanulta, hogyan konfigurálhat egy ASP.NET Core-alkalmazást az Azure AD B2C-vel való hitelesítéshez.
Most, hogy a ASP.NET Core-alkalmazás úgy van konfigurálva, hogy az Azure AD B2C-t használja a hitelesítéshez, az Engedélyezés attribútum használható az alkalmazás védelméhez. Fejleszd tovább az alkalmazásodat, tanuld meg a következőket:
- Az Azure AD B2C felhasználói felületének testreszabása.
- Jelszó összetettségi követelményeinek konfigurálása.
- Többtényezős hitelesítés engedélyezése.
- Konfiguráljon további identitásszolgáltatókat, például Microsoft, Facebook, Google, Amazon, Twitterstb.
- A Microsoft Graph API használatával további felhasználói adatokat, például csoporttagságokat kérhet le az Azure AD B2C-bérlőről.
- A ASP.NET Core használatával készült webes API védelme az Azure AD B2Chasználatával.
- oktatóanyag: Hozzáférés biztosítása ASP.NET webes API-hoz az Azure Active Directory B2Chasználatával.