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.
Než začnete, pomocí selektoru Zvolit typ zásady v horní části této stránky zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.
Tok udělení přihlašovacích údajů klienta OAuth 2.0 umožňuje aplikaci (důvěrnému klientovi) používat vlastní přihlašovací údaje místo zosobnění uživatele k ověření při volání webového prostředku, jako je rozhraní REST API. Tento typ udělení se běžně používá pro interakce mezi servery, které musí běžet na pozadí bez okamžité interakce s uživatelem. Tyto typy aplikací se často označují jako démony nebo účty služeb.
V toku přihlašovacích údajů klienta jsou oprávnění udělena přímo samotné aplikaci správcem. Když aplikace předá token prostředku, prostředek zajistí, že aplikace samotná má oprávnění k provedení akce, protože při ověřování není zapojen žádný uživatel. Tento článek popisuje kroky potřebné k autorizaci aplikace pro volání rozhraní API a získání tokenů potřebných k volání tohoto rozhraní API.
Poznámka:
Tato funkce je ve verzi Public Preview.
Přehled registrace aplikací
Pokud chcete aplikaci povolit přihlášení pomocí přihlašovacích údajů klienta, pak zavoláte webové rozhraní API, zaregistrujete dvě aplikace v adresáři Azure AD B2C.
Registrace aplikace umožňuje aplikaci přihlásit se 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. Pak aplikaci udělíte oprávnění k oborům webového rozhraní API. Při vyžádání přístupového tokenu vaše aplikace určuje
.defaultparametr oboru požadavku. Azure AD B2C vrátí obory webového rozhraní API udělené vaší aplikaci.
Architektura a registrace aplikací jsou znázorněny v následujícím diagramu:
Krok 1: Registrace aplikace webového rozhraní API
V tomto kroku zaregistrujete webové rozhraní API (App 2) s jeho obory. Později aplikaci (aplikace 1) udělíte oprávnění k těmto oborům. Pokud už takovou registraci aplikace máte, přeskočte tento krok a přejděte k dalšímu kroku 1.1 Definování rolí webového rozhraní API (oborů).
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 1.1 Definování rolí webového rozhraní API (oborů)
V tomto kroku nakonfigurujete identifikátor URI ID aplikace webového rozhraní API a pak definujete role aplikace.
Role aplikace používané obory OAuth 2.0 a definované při registraci aplikace představující vaše rozhraní API. Vaše aplikace používá URI identifikátor ID aplikace s rozsahem .default. Pokud chcete definovat role aplikací, postupujte takto:
Vyberte webové rozhraní API, které jste vytvořili, například my-api1.
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 api) a pak vyberte Uložit.
Zkopírujte URI identifikátor aplikace. Následující snímek obrazovky ukazuje, jak zkopírovat identifikátor URI ID aplikace.
V části Spravovat vyberte Manifest a otevřete editor manifestu aplikace. V editoru vyhledejte nastavení
appRolesa definujte role aplikací, které jsou zaměřené naapplications. Každá definice role aplikace musí mít pro svouidhodnotu globální jedinečný identifikátor (GUID). Vygenerujte nový identifikátor GUID spuštěnímnew-guidpříkazu v Microsoft PowerShellu nebo online generátoru GUID. Vlastnostvaluekaždé definice role aplikace se zobrazí v rámci, nárokuscp. Vlastnostvaluenemůže obsahovat mezery. Následující příklad ukazuje dvě role aplikace, čtení a zápis:"appRoles": [ { "allowedMemberTypes": ["Application"], "displayName": "Read", "id": "d6a15e20-f83c-4264-8e61-5082688e14c8", "isEnabled": true, "description": "Readers have the ability to read tasks.", "value": "app.read" }, { "allowedMemberTypes": ["Application"], "displayName": "Write", "id": "204dc4ab-51e1-439f-8c7f-31a1ebf3c7b9", "isEnabled": true, "description": "Writers have the ability to create tasks.", "value": "app.write" }],V horní části stránky vyberte Uložit a uložte změny manifestu.
Krok 2: Registrace aplikace
Pokud chcete aplikaci povolit přihlášení pomocí Azure AD B2C pomocí toku přihlašovacích údajů klienta, můžete použít existující aplikaci nebo zaregistrovat novou aplikaci (aplikace 1).
Pokud používáte existující aplikaci, ujistěte se, že je aplikace accessTokenAcceptedVersion nastavená na 2:
- Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
- Vyberte registrace aplikací a pak ze seznamu vyberte existující aplikaci.
- V nabídce vlevo v části Spravovat vyberte Manifest a otevřete editor manifestu.
-
accessTokenAcceptedVersionVyhledejte prvek a nastavte jeho hodnotu na2. - V horní části stránky vyberte Uložit a uložte změny.
Pokud chcete vytvořit novou registraci webové aplikace, postupujte takto:
Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
Vyberte Registrace aplikacía pak vyberte Nová registrace.
Zadejte název aplikace. Například ClientCredentials_app.
Ponechte ostatní hodnoty tak, jak jsou, a pak vyberte Zaregistrovat.
Poznamenejte si ID aplikace (klienta) pro použití v pozdějším kroku.
Krok 2.1 Vytvoření tajného klíče klienta
Vytvořte tajný klíč klienta pro zaregistrovanou aplikaci. Vaše 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.2 Udělení oprávnění aplikace pro webové rozhraní API
Pokud chcete aplikaci udělit oprávnění (aplikace 1), postupujte takto:
Vyberte Registrace aplikací a pak vyberte aplikaci, kterou jste vytvořili (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 (Aplikace 2), ke kterému má mít webová aplikace udělený přístup. Zadejte například my-api1.
Vyberte oprávnění aplikace.
V části Oprávnění rozbalte aplikaci a vyberte obory, které jste definovali dříve (například app.read a app.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 ....
Krok 3: Získání přístupového tokenu
Neexistují žádné konkrétní akce pro povolení přihlašovacích údajů klienta pro uživatelské toky nebo vlastní zásady. Toky uživatelů Azure AD B2C i vlastní zásady podporují tok přihlašovacích údajů klienta. Pokud jste to ještě neudělali, vytvořte uživatelský tok nebo vlastní politiku. Pak pomocí oblíbené vývojové aplikace API vygenerujte žádost o autorizaci. Vytvořte volání podobné tomuto příkladu s následujícími informacemi jako text požadavku POST:
https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy>/oauth2/v2.0/token
- Nahraďte
<tenant-name>názvem vašeho tenanta Azure AD B2C. Například:contoso.b2clogin.com. - Nahraďte
<policy>úplným názvem toku uživatele nebo vlastní politikou. Všimněte si, že všechny typy toků uživatelů a vlastních zásad podporují tok přihlašovacích údajů klienta. Můžete použít libovolný tok uživatele nebo vlastní zásady, které máte, nebo vytvořit nový, například registraci nebo přihlášení.
| Klíč | Hodnota |
|---|---|
| typ_grantu | client_credentials |
| client_id (identifikátor klienta) | ID klienta z kroku 2 Zaregistrujte aplikaci. |
| tajný klíč klienta | Hodnota tajného klíče klienta z kroku 2.1 Vytvořte tajný klíč klienta. |
| obor |
Identifikátor URI ID aplikace z kroku 1.1 Definujte role webového rozhraní API (obory) a .default. Například https://contoso.onmicrosoft.com/api/.default, nebo https://contoso.onmicrosoft.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/.default. |
Skutečný požadavek POST vypadá jako v následujícím příkladu:
Žádost:
POST /<tenant-name>.onmicrosoft.com/B2C_1A_SUSI/oauth2/v2.0/token HTTP/1.1
Host: <tenant-name>.b2clogin.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=11112222-bbbb-3333-cccc-4444dddd5555
&client_secret=FyX7Q~DuPJ...
&scope=https%3A%2F%2Fcontoso.onmicrosoft.com%2Fapi%2F.default
Odpověď:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlBFcG5OZDlnUkNWWUc2dUs...",
"token_type": "Bearer",
"not_before": 1645172292,
"expires_in": 3600,
"expires_on": 1645175892,
"resource": "11112222-bbbb-3333-cccc-4444dddd5555"
}
Přečtěte si o nárocích na vrácení přístupového tokenu. Následující tabulka uvádí nároky, které souvisejí s tokem klientských přihlašovacích údajů.
| Požadavek | Popis | Hodnota |
|---|---|---|
aud |
Identifikuje zamýšlený příjemce tokenu. | ID klienta rozhraní API. |
sub |
Služební hlavní spojené s aplikací, která iniciovala požadavek. | Jedná se o klíčový objekt služby client_id žádosti o autorizaci. |
azp |
Autorizovaná strana – strana, pro kterou byl přístupový token vystaven. |
ID klienta aplikace, která iniciovala požadavek. Je to stejná hodnota, jakou jste zadali v client_id žádosti o autorizaci. |
scp |
Sada oborů vystavených rozhraním API vaší aplikace (oddělovač mezer). | V toku přihlašovacích údajů klienta se žádost o autorizaci zeptá na .default obor, zatímco token obsahuje seznam vystavených oborů (a odsouhlasený správcem aplikace) rozhraním API. Například: app.read app.write. |
Krok 3.1 Získání přístupového tokenu pomocí skriptu
K otestování konfigurace použijte následující skript PowerShellu:
$appId = "<client ID>"
$secret = "<client secret>"
$endpoint = "https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy>/oauth2/v2.0/token"
$scope = "<Your API id uri>/.default"
$body = "grant_type=client_credentials&scope=" + $scope + "&client_id=" + $appId + "&client_secret=" + $secret
$token = Invoke-RestMethod -Method Post -Uri $endpoint -Body $body
K otestování konfigurace použijte následující skript cURL:
curl --location --request POST 'https://<your-tenant>.b2clogin.com/<your-tenant>.onmicrosoft.com/<policy>/oauth2/v2.0/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--form 'grant_type="client_credentials"' \
--form 'client_id="<client ID>"' \
--form 'client_secret="<client secret>"' \
--form 'scope="<Your API id uri>/.default"'
Krok 4: Přizpůsobení tokenu
Tato funkce je dostupná pouze pro vlastní zásady. Ve krocích nastavení vyberte vlastní politika v předchozím výběru.
Vlastní zásady poskytují způsob, jak rozšířit proces vystavování tokenů. Pokud chcete přizpůsobit cestu uživatele s přihlašovacími údaji klienta OAuth 2.0, postupujte podle pokynů ke konfiguraci cesty uživatele s přihlašovacími údaji klienta. Potom v technickém JwtIssuer profilu přidejte ClientCredentialsUserJourneyId metadata s odkazem na cestu uživatele, kterou jste vytvořili.
Následující příklad ukazuje, jak přidat do technického profilu vystavitele tokenu ClientCredentialsUserJourneyId .
<TechnicalProfile Id="JwtIssuer">
<Metadata>
<Item Key="ClientCredentialsUserJourneyId">ClientCredentialsJourney</Item>
</Metadata>
</TechnicalProfile>
Následující příklad ukazuje cestu uživatele s přihlašovacími údaji klienta. První a poslední kroky orchestrace jsou povinné.
<UserJourneys>
<UserJourney Id="ClientCredentialsJourney">
<OrchestrationSteps>
<!-- [Required] Do the client credentials -->
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="ClientCredSetupExchange" TechnicalProfileReferenceId="ClientCredentials_Setup" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- [Optional] Call a REST API or claims transformation -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="TokenAugmentation" TechnicalProfileReferenceId="TokenAugmentation" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- [Required] Issue the access token -->
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
</UserJourneys>