Sdílet prostřednictvím


Nastavení registrace a přihlášení pomocí Apple ID pomocí 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ší.

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ředpoklady

Vytvoření aplikace Apple ID

Pokud chcete uživatelům s Apple ID v Azure Active Directory B2C (Azure AD B2C) povolit přihlášení, musíte vytvořit aplikaci v https://developer.apple.com. Další informace najdete v tématu Přihlášení pomocí Společnosti Apple. Pokud ještě nemáte vývojářský účet Apple, můžete se zaregistrovat v programu Apple Developer Program.

  1. Přihlaste se k portálu Apple Developer Portal pomocí svých přihlašovacích údajů k účtu.
  2. V nabídce vyberte Certifikáty, ID, & Profily a pak vyberte (+).
  3. Pokud chcete zaregistrovat nový identifikátor, vyberte ID aplikací a pak vyberte Pokračovat.
  4. V části Vybrat typ vyberte aplikaci a pak vyberte Pokračovat.
  5. Pro registraci ID aplikace:
    1. Zadejte popis.
    2. Zadejte ID sady, například com.contoso.azure-ad-b2c.
    3. V části Možnosti vyberte v seznamu možností možnost Přihlásit se pomocí Společnosti Apple .
    4. Poznamenejte si ID týmu (předponu ID aplikace) z tohoto kroku. Budete ho totiž potřebovat později.
    5. Vyberte Pokračovat a pak se zaregistrujte.
  6. V nabídce vyberte Certifikáty, ID, & Profily a pak vyberte (+).
  7. Pro registraci nového identifikátoru vyberte ID služeb a pak vyberte Pokračovat.
  8. Pro registraci ID služeb:
    1. Zadejte popis. Popis se uživateli zobrazí na obrazovce souhlasu.
    2. Zadejte identifikátor, například com.consoto.azure-ad-b2c-service. Poznamenejte si identifikátor ID služby. Identifikátor je ID klienta pro tok OpenID Připojení.
    3. Vyberte Pokračovat a pak vyberte Zaregistrovat.
  9. V části Identifikátory vyberte identifikátor, který jste vytvořili.
  10. Vyberte Přihlásit se pomocí Apple a pak vyberte Konfigurovat.
    1. Vyberte PRIMÁRNÍ ID aplikace, pomocí kterého chcete nakonfigurovat přihlášení pomocí Apple.
    2. V doménách a subdoménách zadejte your-tenant-name.b2clogin.com. Nahraďte název vašeho tenanta názvem vašeho tenanta. Pokud používáte vlastní doménu, zadejte https://your-domain-name.
    3. Do návratových adres URL zadejte https://your-tenant-name.b2clogin.com/your-tenant-name.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-tenant-name názvem vašeho tenanta a your-domain-name vlastní doménou. Zpáteční adresa URL musí být ve všech malých písmenech.
    4. Vyberte Další a pak vyberte Hotovo.
    5. Po zavření automaticky otevíraných oken vyberte Pokračovat a pak vyberte Uložit.

Vytvoření tajného klíče klienta Apple

  1. V nabídce portálu Pro vývojáře Apple vyberte Klíče a pak vyberte (+).
  2. Pro registraci nového klíče:
    1. Zadejte název klíče.
    2. Vyberte Přihlásit se pomocí Apple a pak vyberte Konfigurovat.
    3. Jako ID primární aplikace vyberte aplikaci, kterou jste vytvořili dříve, a pak vyberte Uložit.
    4. Vyberte Konfigurovat a pak výběrem možnosti Zaregistrovat dokončete proces registrace klíče. Poznamenejte si ID klíče. Tento klíč se vyžaduje při konfiguraci toků uživatelů.
  3. Chcete-li stáhnout klíč, vyberte stáhnout soubor .p8, který obsahuje váš klíč.

Konfigurace Apple jako zprostředkovatele identity

  1. Přihlaste se k webu Azure Portal jako globální správce tenanta Azure AD B2C.
  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 části Služby Azure vyberte Azure AD B2C. Nebo pomocí vyhledávacího pole vyhledejte a vyberte Azure AD B2C.
  4. Vyberte zprostředkovatele identity a pak vyberte Apple.
  5. Jako název zadejte Přihlásit se pomocí Apple.
  6. Zadejte Apple Developer ID (Team ID).
  7. Zadejte Apple Service ID (ID klienta).
  8. Zadejte Id klíče Apple z kroku Vytvoření tajného klíče klienta Apple.
  9. Vyberte a nahrajte data certifikátu Apple.
  10. Zvolte Uložit.

Důležité

  • Přihlaste se přes Apple, aby Správa obnovovaly tajný klíč klienta každých 6 měsíců.
  • Tajný klíč klienta Apple se po vypršení platnosti automaticky obnoví. Pokud potřebujete tajný kód obnovit ručně, otevřete Azure AD B2C na webu Azure Portal, přejděte do zprostředkovatelů>identity Apple a vyberte Obnovit tajný klíč.
  • Postupujte podle pokynů, jak nabídnout tlačítko Přihlásit se pomocí Apple.

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

Pokud chcete uživatelům povolit přihlášení pomocí Apple ID, musíte do toku uživatele přidat zprostředkovatele identity Apple. Přihlášení pomocí Apple je možné nakonfigurovat jenom pro doporučenou verzi toků uživatelů. Přidání zprostředkovatele identity Apple do toku uživatele:

  1. V tenantovi Azure AD B2C vyberte Toky uživatelů.
  2. Vyberte tok uživatele, pro který chcete přidat zprostředkovatele identity Apple.
  3. V části Zprostředkovatelé sociálních identit vyberte Apple.
  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 Apple , abyste se přihlásili pomocí Apple ID.

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.

Podepsání tajného klíče klienta

Pomocí souboru .p8, který jste si stáhli dříve, podepište tajný kód klienta do tokenu JWT. Existuje mnoho knihoven, které vám můžou vytvořit a podepsat JWT. Použijte funkci Azure Functions, která za vás vytvoří token.

  1. Vytvořte funkci Azure Functions.

  2. V části Vývojář vyberte Kód + Test.

  3. Zkopírujte obsah souboru run.csx a vložte ho do editoru.

  4. Zvolte Uložit.

  5. Vytvořte požadavek HTTP POST a zadejte následující informace:

    • appleTeamId: ID týmu pro vývojáře Apple
    • appleServiceId: Apple Service ID (ID klienta)
    • appleKeyId: 10místné ID klíče uložené v hlavičce JWT (povinné apple)
    • p8key: Klíč formátu PEM. Můžete to získat otevřením souboru .p8 v textovém editoru a zkopírováním všeho mezi -----BEGIN PRIVATE KEY----- a -----END PRIVATE KEY----- bez konců řádků.

Následující json je příkladem volání funkce Azure:

{
    "appleTeamId": "ABC123DEFG",
    "appleServiceId": "com.yourcompany.app1",
    "appleKeyId": "URKEYID001",
    "p8key": "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg+s07NiAcuGEu8rxsJBG7ttupF6FRe3bXdHxEipuyK82gCgYIKoZIzj0DAQehRANCAAQnR1W/KbbaihTQayXH3tuAXA8Aei7u7Ij5OdRy6clOgBeRBPy1miObKYVx3ki1msjjG2uGqRbrc1LvjLHINWRD"
}

Funkce Azure reaguje správně naformátovaným a podepsaným tajným kódem klienta JWT v odpovědi, například:

{
    "token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjb20ueW91cmNvbXBhbnkuYXBwMSIsIm5iZiI6MTU2MDI2OTY3NSwiZXhwIjoxNTYwMzU2MDc1LCJpc3MiOiJBQkMxMjNERUZHIiwiYXVkIjoiaHR0cHM6Ly9hcHBsZWlkLmFwcGxlLmNvbSJ9.Dt9qA9NmJ_mk6tOqbsuTmfBrQLFqc9BnSVKR6A-bf9TcTft2XmhWaVODr7Q9w1PP3QOYShFXAnNql5OdNebB4g"
}

Vytvoření klíče zásad

Musíte uložit tajný klíč klienta, který jste předtím zaznamenali ve svém tenantovi Azure AD B2C.

  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 části Služby Azure vyberte Azure AD B2C. Nebo pomocí vyhledávacího pole vyhledejte a vyberte Azure AD B2C.
  4. Na stránce Přehled vyberte rozhraní Identity Experience Framework.
  5. Vyberte Klíče zásad a pak vyberte Přidat.
  6. V nabídce Možnosti zvolte Ručně.
  7. Zadejte název klíče zásady. Například "AppleSecret". Předpona "B2C_1A_" se automaticky přidá do názvu klíče.
  8. V tajném kódu zadejte hodnotu tokenu vráceného funkcí Azure (token JWT).
  9. V případě použití klíče vyberte Podpis.
  10. Vyberte Vytvořit.

Důležité

  • Přihlaste se přes Apple, aby Správa obnovovaly tajný klíč klienta každých 6 měsíců.
  • Pokud vyprší platnost tajného klíče klienta Apple, budete muset ručně obnovit a uložit novou hodnotu do klíče zásady.
  • Doporučujeme nastavit vlastní připomenutí do 6 měsíců, aby se vygeneroval nový tajný klíč klienta.
  • Postupujte podle pokynů, jak nabídnout tlačítko Přihlásit se pomocí Apple.

Konfigurace Apple jako zprostředkovatele identity

Pokud chcete uživatelům umožnit přihlášení pomocí Apple ID, musíte účet definovat 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.

Apple ID můžete definovat jako zprostředkovatele deklarací tak, že ho přidáte do elementu ClaimsProviders 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>apple.com</Domain>
      <DisplayName>Apple</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Apple-OIDC">
          <DisplayName>Sign in with Apple</DisplayName>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="ProviderName">apple</Item>
            <Item Key="authorization_endpoint">https://appleid.apple.com/auth/authorize</Item>
            <Item Key="AccessTokenEndpoint">https://appleid.apple.com/auth/token</Item>
            <Item Key="JWKS">https://appleid.apple.com/auth/keys</Item>
            <Item Key="issuer">https://appleid.apple.com</Item>
            <Item Key="scope">name email openid</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="response_types">code</Item>
            <Item Key="external_user_identity_claim_id">sub</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="ReadBodyClaimsOnIdpRedirect">user.name.firstName user.name.lastName user.email</Item>
            <Item Key="client_id">You Apple ID</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_AppleSecret"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="https://appleid.apple.com" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="user.name.firstName"/>
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="user.name.lastName"/>
            <OutputClaim ClaimTypeReferenceId="email" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Nastavte client_id na identifikátor služby. Například, com.consoto.azure-ad-b2c-service.

  5. Soubor uložte.

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="AppleExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AppleExchange" TechnicalProfileReferenceId="Apple-OIDC" />
  </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 Apple , abyste se přihlásili pomocí Apple ID.

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.

Přizpůsobení uživatelského rozhraní

Postupujte podle pokynů, jak nabídnout přihlášení pomocí Společnosti Apple. Apple nabízí několik tlačítek pro přihlášení pomocí Apple , pomocí které můžete umožnit uživatelům nastavit účet a přihlásit se. V případě potřeby vytvořte vlastní tlačítko pro nabídku Přihlásit se pomocí Apple. Přečtěte si, jak zobrazit tlačítko Přihlásit se pomocí Apple.

Sladění s pokyny pro uživatelské rozhraní Apple: