Konfigurace ověřování v ukázkové webové aplikaci pomocí Azure AD B2C

Tento článek používá ukázkovou ASP.NET webovou aplikaci, která ukazuje, jak do webových aplikací přidat ověřování Azure Active Directory B2C (Azure AD B2C).

Důležité

Ukázkovou ASP.NET webovou aplikaci, na kterou odkazuje tento článek, nejde použít k volání rozhraní REST API, protože vrací token ID, nikoli přístupový token. Informace o webové aplikaci, která může volat rozhraní REST API, najdete v tématu Zabezpečení webového rozhraní API vytvořeného pomocí ASP.NET Core pomocí Azure AD B2C.

Přehled

OpenID Připojení (OIDC) je ověřovací protokol založený na OAuth 2.0. Pomocí OIDC můžete bezpečně přihlásit uživatele k aplikaci. Tato ukázka webové aplikace používá web Microsoft Identity Web. Microsoft Identity Web je sada knihoven ASP.NET Core, které zjednodušují přidávání podpory ověřování a autorizace do webových aplikací.

Tok přihlášení zahrnuje následující kroky:

  1. Uživatelé přejdou do webové aplikace a vyberou Přihlášení.
  2. Aplikace zahájí žádost o ověření a přesměruje uživatele do Azure AD B2C.
  3. Uživatelé se zaregistrují nebo přihlásí a resetují heslo. Případně se můžou přihlásit pomocí účtu sociální sítě.
  4. Jakmile se uživatelé úspěšně přihlásí, Azure AD B2C vrátí do aplikace token ID.
  5. Aplikace ověří token ID, přečte deklarace identity a vrátí uživatelům zabezpečenou stránku.

Když vypršela platnost tokenu ID nebo je relace aplikace neplatná, aplikace zahájí novou žádost o ověření a přesměruje uživatele do Azure AD B2C. Pokud je aktivní relace jednotného přihlašování Azure AD B2C, Azure AD B2C vydá přístupový token bez výzvy, aby se uživatelé znovu přihlásili. Pokud platnost relace Azure AD B2C vyprší nebo je neplatná, zobrazí se uživatelům výzva k opětovnému přihlášení.

Odhlásit

Tok odhlášení zahrnuje následující kroky:

  1. Z aplikace se uživatelé odhlásí.
  2. Aplikace vymaže objekty relace a knihovna ověřování vymaže mezipaměť tokenů.
  3. Aplikace přesáhne uživatele do koncového bodu pro odhlášení z Azure AD B2C, aby ukončila relaci Azure AD B2C.
  4. Uživatelé se přesměrují zpět do aplikace.

Předpoklady

Počítač, na kterém běží některý z následujících způsobů:

Krok 1: Konfigurace toku uživatele

Když se uživatelé pokusí přihlásit k aplikaci, aplikace spustí žádost o ověření do koncového bodu autorizace prostřednictvím toku uživatele. Tok uživatele definuje a řídí uživatelské prostředí. Jakmile uživatelé dokončí tok uživatele, Azure AD B2C vygeneruje token a pak přesměruje uživatele zpět do vaší aplikace.

Pokud jste to ještě neudělali, vytvořte tok uživatele nebo vlastní zásadu. Opakujte kroky pro vytvoření tří samostatných toků uživatelů následujícím způsobem:

  • Kombinovaný tok přihlášení a registrace uživatele, například susi. Tento tok uživatele podporuje také zapomenuté heslo .
  • Profil upravuje tok uživatele, například edit_profile.
  • Tok uživatele resetování hesla, například reset_password.

Předzálohuje B2C_1_ Azure AD B2C na název toku uživatele. Například z susi se stane B2C_1_susi.

Krok 2: Registrace webové aplikace

Pokud chcete aplikaci povolit přihlášení pomocí Azure AD B2C, zaregistrujte aplikaci v adresáři Azure AD B2C. Registrace aplikace vytvoří vztah důvěryhodnosti mezi aplikací a Azure AD B2C.

Během registrace aplikace zadáte identifikátor URI přesměrování. Identifikátor URI přesměrování je koncový bod, na který jsou uživatelé přesměrováni službou Azure AD B2C po ověření pomocí Azure AD B2C. Proces registrace aplikace vygeneruje ID aplikace označované také jako ID klienta, které jednoznačně identifikuje vaši aplikaci. Po registraci aplikace azure AD B2C použije ID aplikace i identifikátor URI pro přesměrování k vytvoření žádostí o ověření.

Pokud chcete vytvořit registraci webové aplikace, postupujte následovně:

  1. Přihlaste se k portálu Azure.

  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.

  3. Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.

  4. Vyberte Registrace aplikací a pak vyberte Nová registrace.

  5. V části Název zadejte název aplikace (například webapp1).

  6. V sekci Podporované typy účtů vyberte Účty u libovolného zprostředkovatele identity nebo organizačního adresáře (pro ověřování uživatelů pomocí toků uživatelů).

  7. V části Identifikátor URI přesměrování vyberte Web a potom do pole adresa URL zadejte https://localhost:44316/signin-oidc.

  8. V části Ověřování přejděte do části Implicitní udělení a hybridní toky a zaškrtněte políčko Tokeny ID (používané pro implicitní a hybridní toky).

  9. V části Oprávnění zaškrtněte políčko Udělit souhlas správce s otevřenými a offline přístupy.

  10. Vyberte Zaregistrovat.

  11. Vyberte Přehled.

  12. Poznamenejte si ID aplikace (klienta) pro pozdější použití při konfiguraci webové aplikace.

    Screenshot of the web app Overview page for recording your web application ID.

Krok 3: Získání ukázky webové aplikace

Stáhněte si soubor ZIP nebo naklonujte ukázkovou webovou aplikaci z GitHubu.

git clone https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2

Extrahujte ukázkový soubor do složky, kde celková délka cesty je 260 nebo méně znaků.

Krok 4: Konfigurace ukázkové webové aplikace

V ukázkové složce ve složce 1-WebApp-OIDC/1-5-B2C/ otevřete projekt WebApp-OpenID Připojení-DotNet.csproj pomocí sady Visual Studio nebo Visual Studio Code.

V kořenové složce projektu otevřete soubor appsettings.json . Tento soubor obsahuje informace o vašem zprostředkovateli identity Azure AD B2C. Aktualizujte následující vlastnosti nastavení aplikace:

Oddíl Key Hodnota
AzureAdB2C Instance První část názvu tenanta Azure AD B2C (napříkladhttps://contoso.b2clogin.com).
AzureAdB2C Doména Úplný název tenanta Azure AD B2C (například contoso.onmicrosoft.com).
AzureAdB2C ClientId ID aplikace webové aplikace (klienta) z kroku 2.
AzureAdB2C SignUpSignInPolicyId Toky uživatelů nebo vlastní zásady, které jste vytvořili v kroku 1.

Konečný konfigurační soubor by měl vypadat jako následující JSON:

"AzureAdB2C": {
  "Instance": "https://contoso.b2clogin.com",
  "Domain": "contoso.onmicrosoft.com",
  "ClientId": "<web-app-application-id>",
  "SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
  "SignUpSignInPolicyId": "<your-sign-up-in-policy>"
}

Krok 5: Spuštění ukázkové webové aplikace

  1. Sestavte a spusťte projekt.

  2. Umožňuje přejít na https://localhost:44316.

  3. Vyberte Zaregistrovat/in.

    Screenshot of the sign in and sign up button on the project Welcome page.

  4. Dokončete proces registrace nebo přihlášení.

Po úspěšném ověření se na navigačním panelu zobrazí vaše zobrazované jméno. Pokud chcete zobrazit deklarace identity, které se token Azure AD B2C vrátí do vaší aplikace, vyberte Deklarace identity.

Screenshot of the web app token claims.

Nasazení aplikace

V produkční aplikaci je identifikátor URI přesměrování registrace aplikace obvykle veřejně přístupným koncovým bodem, ve kterém je vaše aplikace spuštěná, například https://contoso.com/signin-oidc.

Identifikátory URI pro přesměrování můžete v registrovaných aplikacích kdykoli přidávat a upravovat. Pro identifikátory URI přesměrování platí následující omezení:

  • Adresa URL odpovědi musí začínat schématem https.
  • V adrese URL odpovědi se rozlišují malá a velká písmena. Jeho případ se musí shodovat s případem cesty URL spuštěné aplikace.

Další kroky