Předání přístupového tokenu zprostředkovatele identity do aplikace v Azure Active Directory B2C
Než začnete, pomocí selektoru Zvolit typ zásady 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 uživatele v Azure Active Directory B2C (Azure AD B2C) poskytuje uživatelům vaší aplikace příležitost k registraci nebo přihlášení pomocí zprostředkovatele identity. Když se cesta spustí, Azure AD B2C obdrží přístupový token od zprostředkovatele identity. Azure AD B2C používá tento token k načtení informací o uživateli. V toku uživatele povolíte deklaraci identity tak, aby předávala token aplikacím, které zaregistrujete v Azure AD B2C.
Azure AD B2C podporuje předávání přístupového tokenu zprostředkovatelů identity OAuth 2.0 , mezi které patří Facebook a Google. Pro všechny ostatní zprostředkovatele identity se deklarace identity vrátí prázdná.
Azure AD B2C podporuje předávání přístupového tokenu OAuth 2.0 a OpenID Připojení zprostředkovatelů identity. Pro všechny ostatní zprostředkovatele identity se deklarace identity vrátí prázdná. Další podrobnosti najdete v ukázce federace zprostředkovatelů identity Live.
Následující diagram znázorňuje, jak se token zprostředkovatele identity vrací do vaší aplikace:
Předpoklady
- Vytvořte tok uživatele, aby se uživatelé mohli zaregistrovat a přihlásit k vaší aplikaci.
- Zaregistrujte webovou aplikaci.
Povolení deklarace identity
Přihlaste se k webu Azure Portal jako globální správce vašeho tenanta Azure AD B2C.
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.
Zvolte Všechny služby v levém horním rohu portálu Azure Portal a vyhledejte a vyberte Azure AD B2C.
Vyberte Toky uživatelů (zásady) a pak vyberte tok uživatele. Například B2C_1_signupsignin1.
Vyberte Deklarace identit aplikace.
Povolte deklaraci identity přístupového tokenu zprostředkovatele identity.
Kliknutím na Uložit uložíte tok uživatele.
Testování toku uživatele
Při testování aplikací v Azure AD B2C může být užitečné, aby se token Azure AD B2C vrátil ke https://jwt.ms
kontrole deklarací identity.
Na stránce Přehled toku uživatele vyberte Spustit tok uživatele.
V případě aplikace vyberte aplikaci, kterou jste předtím zaregistrovali. Pokud chcete zobrazit token v následujícím příkladu, měla by se zobrazit
https://jwt.ms
adresa URL odpovědi .Klikněte na Spustit tok uživatele a přihlaste se pomocí přihlašovacích údajů k účtu. V deklaraci identity idp_access_token by se měl zobrazit přístupový token zprostředkovatele identity.
Měli byste vidět něco podobného jako v následujícím příkladu:
Přidání elementů deklarace identity
Otevřete soubor TrustframeworkExtensions.xml a přidejte následující element ClaimType s identifikátorem
identityProviderAccessToken
elementu ClaimsSchema :<BuildingBlocks> <ClaimsSchema> <ClaimType Id="identityProviderAccessToken"> <DisplayName>Identity Provider Access Token</DisplayName> <DataType>string</DataType> <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText> </ClaimType> ... </ClaimsSchema> </BuildingBlocks>
Přidejte element OutputClaim do elementu TechnicalProfile pro každého zprostředkovatele identity OAuth 2.0, pro kterého chcete přístupový token použít. Následující příklad ukazuje prvek přidaný do technického profilu Facebooku:
<ClaimsProvider> <DisplayName>Facebook</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Facebook-OAUTH"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" /> </OutputClaims> ... </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Uložte soubor TrustframeworkExtensions.xml.
Otevřete soubor zásad předávající strany, například SignUpOrSignIn.xml, a přidejte do souboru TechnicalProfile element OutputClaim:
<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <TechnicalProfile Id="PolicyProfile"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/> </OutputClaims> ... </TechnicalProfile> </RelyingParty>
Uložte soubor zásad.
Testování zásad
Při testování aplikací v Azure AD B2C může být užitečné, aby se token Azure AD B2C vrátil https://jwt.ms
, aby mohl zkontrolovat deklarace identity.
Nahrání souborů
- Přihlaste se k portálu Azure.
- 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.
- V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
- Vyberte Architekturu prostředí identit.
- Na stránce Vlastní zásady klikněte na Nahrát zásadu.
- Vyberte Přepsat zásadu, pokud existuje, a pak vyhledejte a vyberte soubor TrustframeworkExtensions.xml .
- Vyberte Odeslat.
- Opakujte kroky 5 až 7 pro soubor předávající strany, například SignUpOrSignIn.xml.
Spuštění zásad
Otevřete zásadu, kterou jste změnili. Například B2C_1A_signup_signin.
V případě aplikace vyberte aplikaci, kterou jste předtím zaregistrovali. Pokud chcete zobrazit token v následujícím příkladu, měla by se zobrazit
https://jwt.ms
adresa URL odpovědi .Vyberte Spustit.
Měli byste vidět něco podobného jako v následujícím příkladu:
Předání obnovovacího tokenu ZDP (volitelné)
Přístupový token, který zprostředkovatel identity vrátí, je platný po krátkou dobu. Někteří zprostředkovatelé identity také vydávají obnovovací token spolu s přístupovým tokenem. Klientská aplikace pak může v případě potřeby vyměnit obnovovací token zprostředkovatele identity za nový přístupový token.
Vlastní zásady Azure AD B2C podporují předávání obnovovacího tokenu zprostředkovatelů identity OAuth 2.0, mezi které patří Facebook, Google a GitHub.
Pokud chcete předat obnovovací token zprostředkovatele identity, postupujte takto:
Otevřete soubor TrustframeworkExtensions.xml a přidejte následující prvek ClaimType s identifikátorem
identityProviderRefreshToken
pro ClaimsSchema elementu.<ClaimType Id="identityProviderRefreshToken"> <DisplayName>Identity provider refresh token</DisplayName> <DataType>string</DataType> </ClaimType>
Přidejte element OutputClaim do elementu TechnicalProfile pro každého zprostředkovatele identity OAuth 2.0, pro kterého chcete obnovovací token použít. Následující příklad ukazuje prvek přidaný do technického profilu Facebooku:
<ClaimsProvider> <DisplayName>Facebook</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Facebook-OAUTH"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" /> </OutputClaims> ... </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Někteří zprostředkovatelé identity vyžadují, abyste do technického profilu zprostředkovatele identity zahrnuli metadata nebo obory.
Pro zprostředkovatele identity Google přidejte dva typy
access_type
deklarací identity aprompt
. Pak do technického profilu zprostředkovatele identity přidejte následující vstupní deklarace identity:<InputClaims> <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" /> <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token. To fix this issue we add the prompt=consent query string parameter to the authorization request--> <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" /> </InputClaims>
Jiní zprostředkovatelé identity můžou mít různé metody vydávání obnovovacího tokenu. Sledujte cílovou skupinu zprostředkovatele identity a přidejte potřebné prvky do technického profilu zprostředkovatele identity.
Uložte změny provedené v souboru TrustframeworkExtensions.xml .
Otevřete soubor zásad předávající strany, například SignUpOrSignIn.xml, a přidejte do souboru TechnicalProfile element OutputClaim:
<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <TechnicalProfile Id="PolicyProfile"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/> </OutputClaims> ... </TechnicalProfile> </RelyingParty>
Uložte změny provedené v souboru zásad předávající strany.
Nahrajte soubor TrustframeworkExtensions.xml a pak soubor zásad předávající strany.
Další kroky
Další informace najdete v přehledu tokenů Azure AD B2C.