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.
Důležité
Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.
Tento článek používá ukázkovou ASP.NET webovou aplikaci, která volá webové rozhraní API, a ukazuje, jak do webových aplikací přidat ověřování Azure Active Directory B2C (Azure AD B2C).
Důležité
Ukázková ASP.NET webová aplikace, na kterou odkazuje tento článek, se používá k volání webového rozhraní API s nosným tokenem. Informace o webové aplikaci, která nevolá webové rozhraní API, najdete v tématu Konfigurace ověřování v ukázkové webové aplikaci pomocí Azure AD B2C.
Přehled
OpenID Connect (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 ASP.NET základních knihoven, které zjednodušují přidávání podpory ověřování a autorizace do webových aplikací, které můžou volat zabezpečené webové rozhraní API.
Tok přihlášení zahrnuje následující kroky:
Uživatelé přejdou do webové aplikace a vyberou Přihlášení.
Aplikace zahájí žádost o ověření a přesměruje uživatele do Azure AD B2C.
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ě.
Po přihlášení uživatelů azure AD B2C vrátí autorizační kód do aplikace.
Aplikace pak provede následující:
a. Autorizační kód se vymění s tokenem ID, přístupovým tokenem a obnovovacím tokenem.
b) Načte deklarace identity tokenu ID a zachová soubor cookie autorizace aplikace.
c) Uloží obnovovací token do mezipaměti v paměti pro pozdější použití.
Přehled registrace aplikací
Pokud chcete aplikaci povolit přihlášení pomocí Azure AD B2C a volat webové rozhraní API, zaregistrujete dvě aplikace v adresáři Azure AD B2C.
Registrace webové aplikace umožňuje vaší aplikaci přihlásit se pomocí Azure AD B2C. Během registrace 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 dokončení ověřování pomocí Azure AD B2C. Proces registrace aplikace vygeneruje ID aplikace, označované také jako ID klienta, které jednoznačně identifikuje vaši aplikaci. Vytvoříte také tajný klíč klienta, který vaše aplikace používá k bezpečnému získání tokenů.
Registrace webového rozhraní API umožňuje vaší aplikaci volat zabezpečené webové rozhraní API. Registrace zahrnuje rozsahy webového rozhraní API. Obory poskytují způsob, jak spravovat oprávnění k chráněným prostředkům, jako je například webové rozhraní API. Oprávnění webové aplikace udělíte rozsahům webového rozhraní API. Při vyžádání přístupového tokenu aplikace určuje požadovaná oprávnění v parametru oboru požadavku.
Architektura a registrace aplikací jsou znázorněny v následujícím diagramu:
Volání na webové API
Po dokončení ověřování uživatelé komunikují s aplikací, která vyvolá chráněné webové rozhraní API. Webové rozhraní API používá ověřování prostřednictvím nosného tokenu. Nosný token je přístupový token, který aplikace získala z Azure AD B2C. Aplikace předá token v autorizační hlavičce požadavku HTTPS.
Authorization: Bearer <access token>
Pokud obor přístupového tokenu neodpovídá oborům webového rozhraní API, knihovna ověřování získá nový přístupový token se správnými obory.
Odhlášení
Tok odhlášení zahrnuje následující kroky:
- Z aplikace se uživatelé odhlásí.
- Aplikace vymaže objekty relace a knihovna ověřování vymaže mezipaměť tokenů.
- Aplikace přenese uživatele do koncového bodu pro odhlášení z Azure AD B2C, aby ukončila relaci Azure AD B2C.
- Uživatelé se přesměrují zpět do aplikace.
Požadavky
Počítač, na kterém běží:
- Visual Studio 2022 17.0 nebo novější s úlohou vývoje pro ASP.NET a web
- Sada .NET 6.0 SDK
Krok 1: Konfigurace toku uživatele
Když se uživatelé pokusí přihlásit k vaší aplikaci, aplikace prostřednictvím toku uživatele spustí žádost o ověření ke koncovému bodu autorizace. 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 uživatelský tok nebo vlastní pravidlo. Opakujte kroky pro vytvoření tří samostatných toků uživatelů následujícím způsobem:
- Kombinovaný uživatelský tok přihlášení a registrace, například
susi. Tento tok uživatele podporuje také proces zapomenutého hesla. -
Upravování profilu uživatelského procesu, například
edit_profile. - Tok resetování hesla uživatele, například
reset_password.
Azure AD B2C přidává na začátek B2C_1_ k názvu uživatelského toku. Například susi se stane B2C_1_susi.
Krok 2: Registrace webových aplikací
V tomto kroku vytvoříte webovou aplikaci a registraci aplikace webového rozhraní API a určíte rozsahy webového rozhraní API.
Krok 2.1: Registrace aplikace webového rozhraní API
Pokud chcete vytvořit registraci aplikace webového rozhraní API (ID aplikace: 2), postupujte takto:
Přihlaste se do Azure Portalu.
Ujistěte se, že používáte adresář, který obsahuje vašeho tenanta Azure AD B2C. Na panelu nástrojů portálu vyberte ikonu Adresáře a předplatná .
Na stránce Nastavení portálu | Adresáře + předplatná vyhledejte adresář Azure AD B2C v seznamu Název adresáře a pak vyberte Přepnout.
Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
Vyberte Registrace aplikacía pak vyberte Nová registrace.
Jako Název zadejte název aplikace (například my-api1). Ponechte výchozí hodnoty pro identifikátor URI přesměrování a podporované typy účtů.
Vyberte Zaregistrovat.
Po dokončení registrace aplikace vyberte Přehled.
Poznamenejte si hodnotu ID aplikace (klienta) pro pozdější použití při konfiguraci webové aplikace.
Krok 2.2: Konfigurace oborů aplikací webového rozhraní API
Výběrem aplikace my-api1, kterou jste vytvořili (ID aplikace: 2), otevřete její stránku Přehled.
V části Spravovat vyberte Zveřejnit rozhraní API.
Vedle URI ID aplikace vyberte odkaz Nastavit. Nahraďte výchozí hodnotu (GUID) jedinečným názvem (například tasks-api) a pak vyberte Uložit.
Když vaše webová aplikace požádá o přístupový token pro webové rozhraní API, měl by tento identifikátor URI přidat jako předponu pro každý obor, který definujete pro rozhraní API.
V části Obory definované tímto rozhraním API vyberte Přidat obor.
Chcete-li vytvořit obor, který definuje přístup pro čtení k rozhraní API:
- Jako název oboru zadejte tasks.read.
- Jako zobrazovaný název souhlasu pro správce zadejte přístup ke čtení k API úloh.
- Jako popis souhlasu správce zadejte Umožňuje přístup pro čtení k rozhraní API pro úlohy.
Vyberte Přidat rozsah.
Vyberte Přidat obor a pak přidejte obor, který definuje přístup k zápisu do rozhraní API:
- Jako název oboru zadejte tasks.write.
- Jako zobrazovaný název souhlasu správce zadejte přístup pro zápis k rozhraní API úloh.
- Jako popis souhlasu správce zadejte umožňuje zápis do rozhraní API pro úlohy.
Vyberte Přidat rozsah.
Krok 2.3: Registrace webové aplikace
Pokud chcete vytvořit registraci webové aplikace, postupujte takto:
Vyberte Registrace aplikacía pak vyberte Nová registrace.
V části Název zadejte název aplikace (například webapp1).
V části Podporované typy účtůvyberte Účty v určitém poskytovateli identity nebo organizačním adresáři (pro ověřování uživatelů s uživatelskými procesy).
V sekci Identifikátor URI pro přesměrování vyberte Web a potom do textového pole pro URL zadejte
https://localhost:5000/signin-oidc.V části Oprávnění zaškrtněte políčko Udělit správní souhlas s oprávněními openid a offline přístupu.
Vyberte Zaregistrovat.
Po dokončení registrace aplikace vyberte Přehled.
Poznamenejte si ID aplikace (klienta) pro pozdější použití při konfiguraci webové aplikace.
Krok 2.4: Vytvoření tajného klíče klienta webové aplikace
Vytvořte tajný klíč klienta pro registrovanou webovou aplikaci. Webová aplikace používá tajný klíč klienta k prokázání své identity při žádosti o tokeny.
- V části Spravovat vyberte Certifikáty a tajné kódy.
- Vyberte Nový tajný klíč klienta.
- Do pole Popis zadejte popis tajného klíče klienta (například klientiecret1).
- V části Konec platnosti vyberte dobu, po kterou je tajný klíč platný, a pak vyberte Přidat.
- Poznamenejte si hodnotu tajného kódu. Tuto hodnotu použijete pro konfiguraci v pozdějším kroku.
Krok 2.5: Udělení oprávnění webové aplikace pro webové rozhraní API
Pokud chcete aplikaci udělit oprávnění (ID aplikace: 1), postupujte takto:
Vyberte Registrace aplikací a pak vyberte aplikaci, kterou jste vytvořili (ID aplikace: 1).
V části Spravovat vyberte oprávnění rozhraní API.
V části Nakonfigurovaná oprávnění vyberte Přidat oprávnění.
Vyberte kartu Moje rozhraní API.
Vyberte rozhraní API (ID aplikace: 2), ke kterému má mít webová aplikace udělený přístup. Zadejte například my-api1.
V části Oprávnění rozbalte úkoly a vyberte obory, které jste definovali dříve (například tasks.read a tasks.write).
Vyberte Přidat oprávnění.
Vyberte Udělit souhlas správce pro <název vašeho tenanta>.
Vyberte Ano.
Vyberte Aktualizovat a potom ověřte, že se pod Status pro oba obory zobrazuje Uděleno pro ....
V seznamu Nakonfigurovaná oprávnění vyberte obor a zkopírujte celý název oboru.
Krok 3: Získání ukázky webové aplikace
Stáhněte si soubor ZIP nebo spuštěním následujícího příkazu Bash 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ého webového rozhraní API
Ve složce s ukázkou ve složce 4-WebApp-your-API/4-2-B2C/TodoListService otevřete projekt TodoListService.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. Aplikace webového rozhraní API tyto informace používá k ověření přístupového tokenu, který webová aplikace předává jako nosný token. Aktualizujte následující vlastnosti nastavení aplikace:
| Oddíl | Klíč | Hodnota |
|---|---|---|
| AzureAdB2C | Případ | První část názvu tenanta Azure AD B2C Například: https://contoso.b2clogin.com. |
| AzureAdB2C | Domain (Doména) | Úplný název tenanta Azure AD B2C Například: contoso.onmicrosoft.com. |
| AzureAdB2C | ClientId | ID aplikace webového rozhraní API z kroku 2.1. |
| AzureAdB2C | IdentifikátorZásadyRegistracePřihlášení | 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í soubor JSON:
{
"AzureAdB2C": {
"Instance": "https://contoso.b2clogin.com",
"Domain": "contoso.onmicrosoft.com",
"ClientId": "<web-api-app-application-id>",
"SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
"SignUpSignInPolicyId": "<your-sign-up-in-policy>"
},
// More settings here
}
Krok 4.1: Nastavení zásad oprávnění
Webové rozhraní API ověřuje, že se uživatel ověřil pomocí nosné tokenu, a nosný token má nakonfigurované akceptované obory. Pokud nosný token nemá žádný z těchto akceptovaných oborů, webové rozhraní API vrátí stavový kód HTTP 403 (Zakázáno) a zapíše do textu odpovědi zprávu s informací, které obory se v tokenu očekávají.
Pokud chcete nakonfigurovat akceptované obory, otevřete Controller/TodoListController.cs třídu a nastavte název oboru bez úplného identifikátoru URI.
[RequiredScope("tasks.read")]
Krok 4.2: Spuštění ukázkové webové aplikace API
Pokud chcete webové aplikaci povolit volání ukázky webového rozhraní API, spusťte webové rozhraní API následujícím způsobem:
- Pokud se o to žádáte, obnovte závislosti.
- Sestavte a spusťte projekt.
- Po sestavení projektu spustí Visual Studio nebo Visual Studio Code webové rozhraní API v prohlížečích s následující adresou: https://localhost:44332.
Krok 5: Konfigurace ukázkové webové aplikace
V ukázkové složce ve 4-WebApp-your-API/4-2-B2C/Client složce otevřete projekt TodoListClient.csproj pomocí sady Visual Studio nebo editoru Visual Studio Code.
V kořenové složce projektu otevřete appsettings.json soubor. Tento soubor obsahuje informace o vašem zprostředkovateli identity Azure AD B2C. Tato webová aplikace používá tyto informace k vytvoření vztahu důvěryhodnosti s Azure AD B2C, přihlášení a odhlášení uživatelů, získání tokenů a jejich ověření. Aktualizujte následující vlastnosti nastavení aplikace:
| Oddíl | Klíč | Hodnota |
|---|---|---|
| AzureAdB2C | Případ | První část názvu klienta Azure AD B2C (například https://contoso.b2clogin.com). |
| AzureAdB2C | Domain (Doména) | Úplný název tenanta Azure AD B2C (například contoso.onmicrosoft.com). |
| AzureAdB2C | ClientId | ID webové aplikace z kroku 2.3. |
| AzureAdB2C | Tajný klíč klienta | Tajný kód webové aplikace z kroku 2.4. |
| AzureAdB2C | IdentifikátorZásadyRegistracePřihlášení | Toky uživatelů nebo vlastní zásady, které jste vytvořili v kroku 1. |
| Seznam úkolů | Rozsah úkolů | Obory webového rozhraní API, které jste vytvořili v kroku 2.5. |
| Seznam úkolů | TodoListBaseAddress | Základní identifikátor URI vašeho webového rozhraní API (například https://localhost:44332). |
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>",
"ClientSecret": "<web-app-application-secret>",
"SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
"SignUpSignInPolicyId": "<your-sign-up-in-policy>"
},
"TodoList": {
"TodoListScope": "https://contoso.onmicrosoft.com/api/demo.read",
"TodoListBaseAddress": "https://localhost:44332"
}
}
Krok 6: Spuštění ukázkové webové aplikace
- Sestavte a spusťte projekt.
- Přejděte na
https://localhost:5000. - Dokončete proces registrace nebo přihlášení.
Po úspěšném ověření se na navigačním panelu zobrazí zobrazované jméno. Pokud chcete zobrazit deklarace identity, které token Azure AD B2C vrátí do vaší aplikace, vyberte TodoList.
Nasazení aplikace
V produkční aplikaci je identifikátor URI přesměrování registrace aplikace obvykle veřejně přístupný koncový bod, 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 přesměrovací URI 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.
Mezipaměť tokenů pro webovou aplikaci
Ukázka webové aplikace používá serializaci mezipaměti tokenů v paměti. Tato implementace je skvělá v ukázkách. Je také dobré v produkčních aplikacích za předpokladu, že nevadí, pokud dojde ke ztrátě mezipaměti tokenů při restartování webové aplikace.
Pro produkční prostředí doporučujeme použít distribuovanou mezipaměť paměti. Například mezipaměť Redis, NCache nebo mezipaměť SQL Serveru. Podrobnosti o implementacích mezipaměti distribuované paměti naleznete v tématu Serializace mezipaměti tokenů.
Další kroky
- Přečtěte si další informace o ukázce kódu.
- Zjistěte, jak povolit ověřování ve vlastní webové aplikaci pomocí Azure AD B2C.
- Zjistěte, jak povolit ověřování ve vlastním webovém rozhraní API.