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ší.
OpenID Connect je ověřovací protokol založený na OAuth 2.0, který se dá použít pro zabezpečené přihlašování uživatelů. Většina zprostředkovatelů identity, kteří tento protokol používají, se podporuje v Azure AD B2C.
Tento článek vysvětluje, jak do toků uživatelů přidat vlastní zprostředkovatele identity OpenID Connect.
Důležité
Vaše koncové body musí splňovat požadavky na zabezpečení Azure AD B2C. Starší verze protokolu TLS a šifry jsou zastaralé. Další informace najdete v tématu požadavky na protokol TLS a šifrovací sadu Azure AD B2C.
Požadavky
- Vytvořte tok uživatele, aby se uživatelé mohli zaregistrovat a přihlásit k vaší aplikaci.
- Zaregistrujte webovou aplikaci.
- Dokončete kroky v Začněte s vlastními zásadami ve službě Azure Active Directory B2C. V tomto kurzu se dozvíte, jak aktualizovat soubory vlastních zásad tak, aby používaly konfiguraci tenanta Azure AD B2C.
- Zaregistrujte webovou aplikaci.
Přidejte zprostředkovatele identity
- Přihlaste se k webu Azure Portal pomocí účtu, který má alespoň oprávnění správce externího zprostředkovatele identity .
- Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
- V levém horním rohu webu Azure Portal zvolte Všechny služby , vyhledejte a vyberte Azure AD B2C.
- Vyberte zprostředkovatele identity a pak vyberte Nového zprostředkovatele OpenID Connect.
- Zadejte Název. Zadejte například Contoso.
Definujte zprostředkovatele identity OpenId Connect tak, že ho přidáte do elementu ClaimsProviders v souboru s příponou vaší zásady.
Otevřete TrustFrameworkExtensions.xml.
Vyhledejte element ClaimsProviders . Pokud neexistuje, přidejte ho pod kořenový prvek.
Přidejte nový ClaimsProvider následujícím způsobem:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Login with Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-OpenIdConnect"> <DisplayName>Contoso</DisplayName> <Description>Login with your Contoso account</Description> <Protocol Name="OpenIdConnect"/> <Metadata> <Item Key="METADATA">https://your-identity-provider.com/.well-known/openid-configuration</Item> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> </Metadata> <!-- <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys> --> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Konfigurace zprostředkovatele identity
Každý zprostředkovatel identity OpenID Connect popisuje dokument metadat, který obsahuje většinu informací potřebných k přihlášení. Dokument metadat obsahuje informace, jako jsou adresy URL, které se mají použít, a umístění veřejných podpisových klíčů služby. Dokument metadat OpenID Connect se vždy nachází v koncovém bodu, který končí na .well-known/openid-configuration
. Pro zprostředkovatele identity OpenID Connect, kterého chcete přidat, zadejte adresu URL jeho metadat.
Do pole Metadata URL zadejte URL adresu dokumentu metadat OpenID Connect.
Do metadat technického <Item Key="METADATA">
profilu zadejte adresu URL dokumentu metadat OpenID Connect.
ID klienta a tajný klíč
Aby se uživatelé mohli přihlásit, poskytovatel identity vyžaduje, aby vývojáři zaregistrovali aplikaci ve své službě. Tato aplikace má ID, které se označuje jako ID klienta a tajný klíč klienta.
Tajný klíč klienta je volitelný. Je však nutné zadat tajný klíč klienta, pokud je code
, který používá tajný klíč k výměně kódu pro token.
Pokud chcete přidat ID klienta a tajný klíč klienta, zkopírujte tyto hodnoty zprostředkovatele identity a zadejte je do odpovídajících polí.
Do metadat technického <Item Key="client_id">
profilu zadejte ID klienta.
Vytvořte klíč zásad
Pokud se vyžaduje tajný klíč klienta, uložte tajný klíč klienta, který jste si předtím poznamenali ve svém tenantovi Azure AD B2C.
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 filtr Adresář 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.
V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
Na stránce Přehled vyberte Identity Experience Framework.
Vyberte Klíče zásad a pak vyberte Přidat.
V nabídce Možnosti zvolte
Manual
.Zadejte název klíče pro zásady. Například:
ContosoSecret
. PředponaB2C_1A_
se automaticky přidá do názvu klíče.V tajném kódu zadejte tajný klíč klienta, který jste předtím zaznamenali.
V případě použití klíče vyberte
Signature
.Klikněte na Vytvořit.
Do elementu
CryptographicKeys
XML přidejte následující prvek:<CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys>
Rozsah
Rozsah definuje informace a přístupová oprávnění, která chcete shromáždit od zprostředkovatele identity, například openid profile
. Aby bylo možné získat identifikační token od poskytovatele identity, je nutné zadat openid
obor.
Bez tokenu ID se uživatelé nemůžou přihlásit k Azure AD B2C pomocí vlastního zprostředkovatele identity. Další rozsahy lze připojit oddělené mezerou. Informace o tom, jaké další rozsahy mohou být dostupné, najdete v dokumentaci poskytovatele vlastní identity.
V rozsahu zadejte rozsahy od poskytovatele identity. Například: openid profile
.
Do metadat technického <Item Key="scope">
profilu zadejte obory od zprostředkovatele identity. Například: openid profile
.
Typ odpovědi
Typ odpovědi popisuje, jaký druh informací se vrací v počátečním volání vlastního poskytovatele identit authorization_endpoint
. Můžete použít následující typy odpovědí:
-
code
: Podle toku autorizačního kódu se kód vrátí zpět do Azure AD B2C. Azure AD B2C pokračuje tím, že volátoken_endpoint
, aby vyměnil kód za token. -
id_token
: Token ID se vrátí zpět do Azure AD B2C z vlastního zprostředkovatele identity.
V typu odpovědi vyberte code
, nebo id_token
, podle nastavení zprostředkovatele identity.
V metadatech technického <Item Key="response_types">
profilu vyberte code
nebo id_token
podle nastavení zprostředkovatele identity.
Režim odpovědi
Režim odpovědi definuje metodu, která se má použít k odeslání dat zpět z vlastního zprostředkovatele identity do Azure AD B2C. Můžete použít následující režimy odezvy:
-
form_post
: Tento režim odpovědi se doporučuje pro zajištění nejlepšího zabezpečení. Odpověď se přenáší prostřednictvím metody HTTPPOST
s kódem nebo tokenem kódovaným v těle pomocíapplication/x-www-form-urlencoded
formátu. -
query
: Kód nebo token se vrátí jako parametr dotazu.
V režimu odezvy vyberte form_post
, nebo query
, podle nastavení vašeho zprostředkovatele identity.
V metadatech technického profilu <Item Key="response_mode">
vyberte možnost form_post
nebo query
podle nastavení vašeho zprostředkovatele identity.
Nápověda k doméně
Nápovědu k doméně je možné použít k přeskočení procesu a přechodu přímo na přihlašovací stránku zadaného poskytovatele identity, místo toho, aby si uživatel musel vybírat z dostupných poskytovatelů identity.
Pokud chcete tento druh chování povolit, zadejte hodnotu nápovědy k doméně. Pokud chcete přejít na vlastního zprostředkovatele identity, připojte parametr domain_hint=<domain hint value>
na konec požadavku při volání Azure AD B2C pro přihlášení.
V nápovědě k doméně zadejte název domény použitý v nápovědě k doméně.
V elementu XML technického <Domain>contoso.com</Domain>
profilu zadejte název domény použitý v nápovědě k doméně. Například: contoso.com
.
Mapování deklarací
Jakmile vlastní zprostředkovatel identity odešle token ID zpět do Azure AD B2C, musí být Azure AD B2C schopný namapovat deklarace identity z přijatého tokenu na deklarace identity, které Azure AD B2C rozpozná a používá. Pro každé z následujících mapování se podívejte do dokumentace vlastního zprostředkovatele identity a seznamte se s deklaracemi, které se vrátí zpět v tokenech zprostředkovatele identity:
- ID uživatele: Zadejte deklaraci identity, která poskytuje jedinečný identifikátor přihlášeného uživatele.
- Zobrazovaný název: Zadejte deklaraci identity, která uživateli poskytne zobrazované jméno nebo celé jméno .
- Dané jméno: Zadejte deklaraci identity, která poskytuje křestní jméno uživatele.
- Příjmení: Zadejte deklaraci identity, která poskytuje příjmení uživatele.
- E-mail: Zadejte deklaraci identity, která poskytuje e-mailovou adresu uživatele.
Element OutputClaims
obsahuje seznam nároků vrácených vaším poskytovatelem identity. Přiřaďte název nároku definovaného ve vaší zásadě k názvu definovanému u poskytovatele identity. Pod elementem <OutputClaims>
nakonfigurujte atribut PartnerClaimType
odpovídajícím názvem deklarace identity definovaným vaším zprostředkovatelem identity.
IdentifikátorReferenceTypuŽádosti | TypNárokuPartnera |
---|---|
issuerUserId |
Zadejte deklaraci identity, která poskytuje jedinečný identifikátor přihlášeného uživatele. |
displayName |
Zadejte deklaraci identity, která uživateli poskytne zobrazované jméno nebo celé jméno . |
givenName |
Zadejte deklaraci identity, která obsahuje jméno uživatele. |
surName |
Zadejte deklaraci identity, která obsahuje příjmení uživatele. |
email |
Zadejte deklaraci identity, která poskytuje e-mailovou adresu uživatele. |
identityProvider |
Zadejte tvrzení, které poskytuje název vystavitele tokenu. Například: iss . Pokud zprostředkovatel identity neobsahuje deklaraci vydavatele v tokenu, nastavte atribut DefaultValue na jedinečný identifikátor vašeho zprostředkovatele identity. Například: DefaultValue="contoso.com" . |
Přidání zprostředkovatele identity do uživatelského toku
- V tenantovi Azure AD B2C vyberte Toky uživatelů.
- Klikněte na tok uživatele, ke kterému chcete přidat zprostředkovatele identity.
- V části Zprostředkovatelé sociálních identit vyberte zprostředkovatele identity, který jste přidali. Například Contoso.
- Vyberte Uložit.
Testování toku uživatele
- Pokud chcete zásady otestovat, vyberte Spustit uživatelský průběh.
- V části Aplikace vyberte webovou aplikaci s názvem testapp1 , kterou jste předtím zaregistrovali. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms
. - Vyberte tlačítko Spustit tok uživatele.
- Na registrační nebo přihlašovací stránce vyberte zprostředkovatele identity, kterého chcete přihlásit. Například Contoso.
Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.ms
, který zobrazí obsah tokenu vráceného službou Azure AD B2C.
Přidat cestu uživatele
V tuto chvíli je poskytovatel identity nastaven, ale zatím není k dispozici na žádné z přihlašovacích stránek. Pokud nemáte vlastní cestu uživatele, vytvořte duplikát existující cesty uživatele šablony, jinak pokračujte dalším krokem.
- Otevřete souborTrustFrameworkBase.xml z úvodní sady.
- Najděte a zkopírujte celý obsah prvku UserJourney, který obsahuje
Id="SignUpOrSignIn"
. - Otevřete TrustFrameworkExtensions.xml a najděte element UserJourneys . Pokud prvek neexistuje, přidejte ho.
- Vložte celý obsah elementu UserJourney, který jste zkopírovali jako podřízený prvek elementu UserJourneys.
- Přejmenujte ID cesty uživatele. Například:
Id="CustomSignUpSignIn"
.
Přidání poskytovatele identity do cesty uživatele
Teď, když máte cestu uživatele, přidejte do cesty uživatele nového zprostředkovatele identity. Nejdříve přidáte tlačítko pro přihlášení, a pak tlačítko propojíte s akcí. Akce je technický profil, který jste vytvořili dříve.
Najděte prvek kroku orchestrace, který zahrnuje
Type="CombinedSignInAndSignUp"
neboType="ClaimsProviderSelection"
v uživatelské cestě. Obvykle se jedná o první krok orchestrace. Element ClaimsProviderSelections obsahuje seznam zprostředkovatelů identity, se kterými se uživatel může přihlásit. Pořadí prvků řídí pořadí tlačítek pro přihlášení, která jsou uživateli prezentována. Přidejte XML element ClaimsProviderSelection Nastavte hodnotu TargetClaimsExchangeId na snadno zapamatovatelný název.V dalším kroku orchestrace přidejte element ClaimsExchange . Nastavte ID na hodnotu ID cílové výměny deklarací identity. Aktualizujte hodnotu TechnicalProfileReferenceId na ID technického profilu, který jste vytvořili dříve.
Následující KÓD XML ukazuje první dva kroky orchestrace cesty uživatele se zprostředkovatelem identity:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Konfigurujte zásady důvěřující strany
Zásady předávající strany, například SignUpSignIn.xml, určují cestu uživatele, kterou Azure AD B2C provede. Najděte element DefaultUserJourney ve spoléhající se straně. Aktualizujte ReferenceId tak, aby odpovídalo ID cesty uživatele, do které jste přidali zprostředkovatele identity.
V následujícím příkladu CustomSignUpSignIn
je pro cestu uživatele nastavena hodnota ReferenceId na CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Nahrajte vlastní zásadu
- Přihlaste se do Azure Portalu.
- Na panelu nástrojů portálu vyberte ikonu Adresář a předplatné a pak vyberte adresář, který obsahuje vašeho tenanta Azure AD B2C.
- Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
- V části Zásady vyberte Architekturu prostředí identit.
- Vyberte Nahrát vlastní zásadya potom nahrajte dva soubory zásad, které jste změnili, v následujícím pořadí: nejprve zásady rozšíření, například
TrustFrameworkExtensions.xml
, a poté zásady spoléhající strany, napříkladSignUpSignIn.xml
.
- Vyberte zásady důvěřující strany, například
B2C_1A_signup_signin
. - Pro aplikaci vyberte webovou aplikaci, kterou jste dříve zaregistrovali. Adresa URL odpovědi by se měla zobrazit
https://jwt.ms
. - Vyberte tlačítko Spustit nyní.
- Na registrační nebo přihlašovací stránce vyberte Contoso , abyste se přihlásili pomocí účtu Google.
Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.ms
, který zobrazí obsah tokenu vráceného službou Azure AD B2C.
Známé problémy
- Azure AD B2C nepodporuje JWE (JSON Web Encryption) pro výměnu šifrovaných tokenů pomocí zprostředkovatelů identity OpenID Connect.
Další kroky
Další informace najdete v referenční příručce k technickému profilu OpenId Connect .