Nastavení registrace a přihlášení pomocí účtu Azure AD B2C z jiného tenanta Azure AD 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ší.

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

Přehled

Tento článek popisuje, jak nastavit federaci s jiným tenantem Azure AD B2C. Když jsou vaše aplikace chráněné pomocí Azure AD B2C, umožníte uživatelům z jiných azure AD B2C přihlášení pomocí stávajících účtů. V následujícím diagramu se uživatelé můžou přihlásit k aplikaci chráněné Službou Azure AD B2C společnosti Contoso pomocí účtu spravovaného tenantem Azure AD B2C společnosti Fabrikam. V tomto případě musí být uživatelský účet v tenantovi společnosti Fabrikam, aby se aplikace chráněná službou Azure AD B2C společnosti Contoso pokusila přihlásit.

Azure AD B2C federation with another Azure AD B2C tenant

Předpoklady

Ověření domény vydavatele aplikace

Od listopadu 2020 se nové registrace aplikací zobrazí jako neověřené v výzvě k vyjádření souhlasu uživatele, pokud není ověřenadoména vydavatele aplikace a identita společnosti byla ověřena pomocí programu Microsoft Partner Network a přidružená k aplikaci. (Další informace o této změně.) Všimněte si, že pro toky uživatelů Azure AD B2C se doména vydavatele zobrazí pouze při použití účtu Microsoft nebo jiného tenanta Microsoft Entra jako zprostředkovatele identity. Pokud chcete splnit tyto nové požadavky, postupujte takto:

  1. Pomocí účtu MPN (Microsoft Partner Network) ověřte svou firemní identitu. Tento proces ověří informace o vaší společnosti a primárním kontaktu vaší společnosti.
  2. Dokončete proces ověření vydavatele a přidružte svůj účet MPN k registraci aplikace pomocí jedné z následujících možností:

Vytvoření aplikace Azure AD B2C

Pokud chcete uživatelům povolit přihlášení pomocí účtu z jiného tenanta Azure AD B2C (například Fabrikam), ve službě Azure AD B2C (například Contoso):

  1. Vytvořte tok uživatele nebo vlastní zásadu.
  2. Pak v Azure AD B2C vytvořte aplikaci, jak je popsáno v této části.

Vytvoření aplikace

  1. Přihlaste se k portálu Azure.

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

  3. Na webu Azure Portal vyhledejte a vyberte Azure AD B2C.

  4. Vyberte Registrace aplikací a pak vyberte Nová registrace.

  5. Zadejte název aplikace. Například ContosoApp.

  6. V sekci Podporované typy účtů vyberte Účty u libovolného zprostředkovatele identity nebo organizačního adresáře (pro ověřování uživatelů pomocí toků uživatelů).

  7. V části Identifikátor URI pro přesměrování vyberte web a potom zadejte následující adresu URL ve všech malých písmenech, kde your-B2C-tenant-name se nahradí názvem vašeho tenanta Azure AD B2C (například Contoso).

    https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp
    

    Například, https://contoso.b2clogin.com/contoso.onmicrosoft.com/oauth2/authresp.

    Pokud používáte vlastní doménu, zadejte https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Nahraďte your-domain-name vlastní doménou a your-tenant-name názvem vašeho tenanta.

  8. V části Oprávnění zaškrtněte políčko Udělit správci souhlas s openid a offline_access oprávnění .

  9. Vyberte Zaregistrovat.

  10. Na stránce Azure AD B2C – Registrace aplikací vyberte aplikaci, kterou jste vytvořili, například ContosoApp.

  11. Poznamenejte si ID aplikace (klienta) zobrazené na stránce Přehled aplikace. Budete ho potřebovat, když v další části nakonfigurujete zprostředkovatele identity.

  12. V nabídce vlevo v části Spravovat vyberte Tajné kódy certifikátů&.

  13. Vyberte Nový tajný klíč klienta.

  14. Do pole Popis zadejte popis tajného klíče klienta. Například klientiecret1.

  15. V části Konec platnosti vyberte dobu, po kterou je tajný klíč platný, a pak vyberte Přidat.

  16. Poznamenejte si hodnotu tajného kódu. Budete ho potřebovat, když v další části nakonfigurujete zprostředkovatele identity.

Konfigurace Azure AD B2C jako zprostředkovatele identity

  1. Přihlaste se k portálu Azure.

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

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

  4. Vyberte zprostředkovatele identity a pak vyberte Nový zprostředkovatele OpenID Připojení.

  5. Zadejte Název. Zadejte například Fabrikam.

  6. Jako adresu URL metadat zadejte následující adresu URL a nahraďte {tenant} název domény vašeho tenanta Azure AD B2C (například Fabrikam). {policy} Nahraďte názvem zásady, který nakonfigurujete v druhém tenantovi:

    https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration
    

    Například, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.

  7. Jako ID klienta zadejte ID aplikace, které jste si předtím poznamenali.

  8. Jako tajný klíč klienta zadejte tajný klíč klienta, který jste si předtím poznamenali.

  9. Pro obor zadejte .openid

  10. Ponechte výchozí hodnoty pro typ odpovědi a režim odpovědi.

  11. (Volitelné) Jako nápovědu k doméně zadejte název domény, který chcete použít pro přímé přihlášení. Například fabrikam.com.

  12. V části Mapování deklarací identity vyberte následující deklarace identity:

    • ID uživatele: sub
    • Zobrazovaný název: název
    • Jméno: given_name
    • Příjmení: family_name
    • E-mail: e-mail
  13. Zvolte Uložit.

Přidání zprostředkovatele identity Azure AD B2C do toku uživatele

  1. V tenantovi Azure AD B2C vyberte Toky uživatelů.
  2. Klikněte na tok uživatele, který chcete přidat zprostředkovatele identity Azure AD B2C.
  3. V části Zprostředkovatelé sociálních identit vyberte Fabrikam.
  4. Zvolte Uložit.
  5. Pokud chcete zásady otestovat, vyberte Spustit tok uživatele.
  6. 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.
  7. Vyberte tlačítko Spustit tok uživatele.
  8. Na registrační nebo přihlašovací stránce vyberte Fabrikam a přihlaste se pomocí jiného tenanta Azure AD B2C.

Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.msobsah tokenu vráceného službou Azure AD B2C.

Vytvoření klíče zásad

Musíte uložit klíč aplikace, který jste vytvořili dříve v tenantovi Azure AD B2C.

  1. 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.
  2. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  3. V části Zásady vyberte Architekturu prostředí identit.
  4. Vyberte Klíče zásad a pak vyberte Přidat.
  5. V nabídce Možnosti zvolte Manual.
  6. Zadejte název klíče zásady. Například, FabrikamAppSecret. Předpona B2C_1A_ se automaticky přidá k názvu klíče při jeho vytvoření, takže jeho odkaz v kódu XML v následující části je B2C_1A_FabrikamAppSecret.
  7. V části Tajný kód zadejte tajný klíč klienta, který jste si poznamenali dříve.
  8. V případě použití klíče vyberte Signature.
  9. Vyberte Vytvořit.

Konfigurace Azure AD B2C jako zprostředkovatele identity

Pokud chcete uživatelům umožnit přihlášení pomocí účtu z jiného tenanta Azure AD B2C (Fabrikam), musíte definovat ostatní Azure AD B2C jako zprostředkovatele deklarací identity, se kterým může Azure AD B2C komunikovat prostřednictvím koncového bodu. Koncový bod poskytuje sadu deklarací identity, které Azure AD B2C používá k ověření ověření konkrétního uživatele.

Azure AD B2C můžete definovat jako zprostředkovatele deklarací identity přidáním Azure AD B2C do elementu ClaimsProvider v souboru s příponou vaší zásady.

  1. Otevřete soubor 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>fabrikam.com</Domain>
      <DisplayName>Federation with Fabrikam tenant</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="AzureADB2CFabrikam-OpenIdConnect">
        <DisplayName>Fabrikam</DisplayName>
        <Protocol Name="OpenIdConnect"/>
        <Metadata>
          <!-- Update the Client ID below to the Application ID -->
          <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
          <!-- Update the metadata URL with the other Azure AD B2C tenant name and policy name -->
          <Item Key="METADATA">https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration</Item>
          <Item Key="UsePolicyInRedirectUri">false</Item>
          <Item Key="response_types">code</Item>
          <Item Key="scope">openid</Item>
          <Item Key="response_mode">form_post</Item>
          <Item Key="HttpBinding">POST</Item>
        </Metadata>
        <CryptographicKeys>
          <Key Id="client_secret" StorageReferenceId="B2C_1A_FabrikamAppSecret"/>
        </CryptographicKeys>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
          <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
          <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" />
          <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
          <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
          <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss"  />
          <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
          <OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails"/>    
        </OutputClaims>
        <OutputClaimsTransformations>
          <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
          <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
        </OutputClaimsTransformations>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
      </TechnicalProfile>
     </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Aktualizujte následující elementy XML odpovídající hodnotou:

    Prvek XML Hodnota
    ClaimsProvider\Domain Název domény, který se používá pro přímé přihlašování. Zadejte název domény, který chcete použít v přímém přihlašování. Například fabrikam.com.
    TechnicalProfile\DisplayName Tato hodnota se zobrazí na přihlašovací obrazovce na tlačítku pro přihlášení. Například Fabrikam.
    Metadata\client_id Identifikátor aplikace zprostředkovatele identity. Aktualizujte ID klienta pomocí ID aplikace, které jste vytvořili dříve v jiném tenantovi Azure AD B2C.
    Metadata\METADATA Adresa URL, která odkazuje na konfigurační dokument zprostředkovatele identity OpenID Připojení, který se označuje také jako známý koncový bod konfigurace OpenID. Zadejte následující adresu URL a nahraďte {tenant} názvem domény druhého tenanta Azure AD B2C (Fabrikam). {tenant} Nahraďte názvem zásady, který nakonfigurujete v druhém tenantovi, a {policy] názvem zásady: https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{policy}/v2.0/.well-known/openid-configuration. Například, https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/B2C_1_susi/v2.0/.well-known/openid-configuration.
    Kryptografické klíče Aktualizujte hodnotu StorageReferenceId na název klíče zásady, který jste vytvořili dříve. Například, B2C_1A_FabrikamAppSecret.

Přidání cesty uživatele

V tuto chvíli je zprostředkovatele identity nastavený, ale zatím není k dispozici na žádné přihlašovací stránce. 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 soubor TrustFrameworkBase.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 UserJourneys .
  5. Přejmenujte ID cesty uživatele. Například, Id="CustomSignUpSignIn".

Přidání zprostředkovatele identity do cesty uživatele

Teď, když máte cestu uživatele, přidejte do cesty uživatele nového zprostředkovatele identity. Nejdřív přidáte tlačítko pro přihlášení a pak tlačítko propočítá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" na cestě uživatelem. 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 element XML ClaimsProviderSelection. Nastavte hodnotu TargetClaimsExchangeId na popisný 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="AzureADB2CFabrikamExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AzureADB2CFabrikamExchange" TechnicalProfileReferenceId="AzureADB2CFabrikam-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurace zásad předávající strany

Zásady předávající strany, například SignUpSignIn.xml, určují cestu uživatele, kterou azure AD B2C spustí. Najděte element DefaultUserJourney v rámci předávající strany. Aktualizujte ID reference tak, aby odpovídalo ID cesty uživatele, do kterého 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>

Nahrání vlastních zásad

  1. Přihlaste se k portálu Azure.
  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ásady a potom nahrajte dva soubory zásad, které jste změnili, v následujícím pořadí: zásady rozšíření, například TrustFrameworkExtensions.xml, pak zásady předávající strany, například SignUpSignIn.xml.

Testování vlastních zásad

  1. Vyberte například zásadu B2C_1A_signup_signinpředávající strany.
  2. V části Aplikace vyberte webovou aplikaci, kterou jste předtím zaregistrovali. Adresa URL odpovědi by se měla zobrazit https://jwt.ms.
  3. Vyberte tlačítko Spustit hned.
  4. Na registrační nebo přihlašovací stránce vyberte Fabrikam a přihlaste se pomocí jiného tenanta Azure AD B2C.

Pokud je proces přihlášení úspěšný, prohlížeč se přesměruje na https://jwt.msobsah tokenu vráceného službou Azure AD B2C.

Další kroky

Zjistěte, jak předat ostatním tokenům Azure AD B2C do vaší aplikace.