Sdílet prostřednictvím


Nastavení registrace a přihlášení pomocí obecného OpenID Connect v Azure Active Directory B2C

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

Přidejte zprostředkovatele identity

  1. Přihlaste se k webu Azure Portal pomocí účtu, který má alespoň oprávnění správce externího zprostředkovatele identity .
  2. 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á.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby , vyhledejte a vyberte Azure AD B2C.
  4. Vyberte zprostředkovatele identity a pak vyberte Nového zprostředkovatele OpenID Connect.
  5. 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.

  1. Otevřete TrustFrameworkExtensions.xml.

  2. Vyhledejte element ClaimsProviders . Pokud neexistuje, přidejte ho pod kořenový prvek.

  3. 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.

  1. Přihlaste se do Azure Portalu.

  2. 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é .

  3. 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.

  4. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.

  5. Na stránce Přehled vyberte Identity Experience Framework.

  6. Vyberte Klíče zásad a pak vyberte Přidat.

  7. V nabídce Možnosti zvolte Manual.

  8. Zadejte název klíče pro zásady. Například: ContosoSecret. Předpona B2C_1A_ se automaticky přidá do názvu klíče.

  9. V tajném kódu zadejte tajný klíč klienta, který jste předtím zaznamenali.

  10. V případě použití klíče vyberte Signature.

  11. Klikněte na Vytvořit.

  12. 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 codenebo 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 HTTP POST 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

  1. V tenantovi Azure AD B2C vyberte Toky uživatelů.
  2. Klikněte na tok uživatele, ke kterému chcete přidat zprostředkovatele identity.
  3. V části Zprostředkovatelé sociálních identit vyberte zprostředkovatele identity, který jste přidali. Například Contoso.
  4. Vyberte Uložit.

Testování toku uživatele

  1. Pokud chcete zásady otestovat, vyberte Spustit uživatelský průběh.
  2. 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.
  3. Vyberte tlačítko Spustit tok uživatele.
  4. 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.

  1. Otevřete souborTrustFrameworkBase.xml z úvodní sady.
  2. Najděte a zkopírujte celý obsah prvku UserJourney, který obsahuje Id="SignUpOrSignIn".
  3. Otevřete TrustFrameworkExtensions.xml a najděte element UserJourneys . Pokud prvek neexistuje, přidejte ho.
  4. Vložte celý obsah elementu UserJourney, který jste zkopírovali jako podřízený prvek elementu UserJourneys.
  5. 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.

  1. Najděte prvek kroku orchestrace, který zahrnuje Type="CombinedSignInAndSignUp"nebo Type="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.

  2. 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

  1. Přihlaste se do Azure Portalu.
  2. Na panelu nástrojů portálu vyberte ikonu Adresář a předplatné a pak vyberte adresář, který obsahuje vašeho tenanta Azure AD B2C.
  3. Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.
  4. V části Zásady vyberte Architekturu prostředí identit.
  5. 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říklad SignUpSignIn.xml.
  1. Vyberte zásady důvěřující strany, například B2C_1A_signup_signin.
  2. Pro aplikaci vyberte webovou aplikaci, kterou jste dříve zaregistrovali. Adresa URL odpovědi by se měla zobrazit https://jwt.ms.
  3. Vyberte tlačítko Spustit nyní.
  4. 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 .