Configurer l’inscription et la connexion avec un ID Apple à l’aide d’Azure Active Directory B2C

Avant de commencer, utilisez le sélecteur Choisir un type de stratégie pour choisir le type de stratégie que vous configurez. Azure Active Directory B2C offre deux possibilités pour définir la façon dont les utilisateurs interagissent avec vos applications : via des flux utilisateurs prédéfinis ou via des stratégies personnalisées entièrement configurables. La procédure donnée dans cet article est différente pour chaque méthode.

Notes

Dans Active Directory B2C, les stratégies personnalisées sont principalement conçues pour gérer des scénarios complexes. Pour la plupart des scénarios, nous vous recommandons de recourir à des flux d’utilisateurs intégrés. Si vous ne l’avez pas fait, découvrez le Pack de démarrage de stratégie personnalisée dans Prise en main des stratégies personnalisées dans Active Directory B2C.

Prérequis

Créer une application ID Apple

Pour permettre la connexion des utilisateurs avec un ID Apple dans Azure Active Directory B2C (Azure AD B2C), vous devez créer une application dans https://developer.apple.com. Pour en savoir plus, consultez Se connecter avec Apple. Si vous ne disposez pas encore d’un compte de développeur Apple, vous pouvez vous inscrire au programme Apple Developer Program.

  1. Connectez-vous au Portail des développeurs Apple avec les informations d’identification de votre compte.
  2. Dans le menu, sélectionnez Certificates, IDs, & Profiles (Certificats, ID et profils), puis sélectionnez (+).
  3. Pour Inscrire un nouvel identificateur, sélectionnez ID d’application, puis sélectionnez Continuer.
  4. Pour Sélectionner un type, sélectionnez Application, puis cliquez sur Continuer.
  5. Pour Inscrire un ID d’application :
    1. Entrez une Description.
    2. Entrer l’ID d’offre groupée, par exemple com.contoso.azure-ad-b2c.
    3. Pour les Fonctionnalités, sélectionnez Se connecter avec Apple dans la liste des fonctionnalités.
    4. Notez votre ID d’équipe (préfixe d’ID d’application) à cette étape. Vous en aurez besoin ultérieurement.
    5. Sélectionnez Continue, puis Register.
  6. Dans le menu, sélectionnez Certificates, IDs, & Profiles (Certificats, ID et profils), puis sélectionnez (+).
  7. Pour Inscrire un nouvel identificateur, sélectionnez ID de services, puis sélectionnez Continuer.
  8. Pour Inscrire un ID de services :
    1. Entrez une Description. La description s’affiche pour l’utilisateur sur l’écran de consentement.
    2. Entrez l’Identificateur, par exemple com.consoto.azure-ad-b2c-service. Prenez note de votre identificateur ID de service. L’identificateur est votre ID client pour le flux OpenID Connect.
    3. Sélectionnez Continuer, puis sélectionnez S’inscrire.
  9. Dans Identificateurs, sélectionnez l’identificateur que vous avez créé.
  10. Sélectionnez Se connecter avec Apple, puis sélectionnez Configurer.
    1. Sélectionnez l’ID de l’application principale pour laquelle vous souhaitez configurer la connexion avec Apple.
    2. Dans Domaines et sous-domaines, entrez your-tenant-name.b2clogin.com. Remplacez your-tenant-name par le nom de votre locataire. Si vous utilisez un domaine personnalisé, entrez https://your-domain-name.
    3. Dans URL de retour, entrez https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. Si vous utilisez un domaine personnalisé, entrez https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Remplacez your-tenant-name par le nom de votre locataire et your-domain-name par le nom de votre domaine personnalisé. L’URL Retour doit être en lettres minuscules.
    4. Sélectionnez Suivant, puis sélectionnez Terminé.
    5. Quand la fenêtre contextuelle est fermée, sélectionnez Continuer, puis sélectionnez Enregistrer.

Création d’une clé secrète client Apple

  1. Dans le menu du portail des développeurs Apple, sélectionnez Clés, puis sélectionnez (+) .
  2. Pour Inscrire une nouvelle clé :
    1. Tapez un Nom de clé.
    2. Sélectionnez Se connecter avec Apple, puis sélectionnez Configurer.
    3. Pour l’ID d’application principale, sélectionnez l’application que vous avez créée précédemment, puis sélectionnez Enregistrer.
    4. Sélectionnez Configurer, puis sélectionnez S’inscrire pour terminer le processus d’inscription de la clé. Notez l’ID de clé. Cette clé est requise lorsque vous configurez des flux d’utilisateur.
  3. Pour Télécharger votre clé, sélectionnez Télécharger pour télécharger un fichier .p8 qui contient votre clé.

Configurer Apple en tant que fournisseur d’identité

  1. Connectez-vous au portail Azure en tant qu’administrateur général de votre locataire Azure AD B2C.
  2. Si vous avez accès à plusieurs locataires, sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre locataire Azure AD B2C à partir du menu Annuaires + abonnements.
  3. Sous Services Azure, sélectionnez Azure AD B2C. Vous pouvez également utiliser la zone de recherche pour rechercher et sélectionner Azure AD B2C.
  4. Sélectionnez Fournisseurs d’identité, puis Apple.
  5. Pour le nom, entrez Se connecter avec Apple.
  6. Entrez l’ID de développeur Apple (ID d’équipe) .
  7. Entrez l’ID de service Apple (ID client) .
  8. Entrez l’ID de clé Apple de l’étape Création d’une clé secrète client Apple.
  9. Sélectionnez et chargez les Données de certificat Apple.
  10. Sélectionnez Enregistrer.

Important

  • En cas de connexion avec Apple, l’administrateur doit renouveler sa clé secrète client tous les 6 mois.
  • La clé secrète client Apple sera automatiquement renouvelée lorsqu’elle expirera. Si vous devez renouveler la clé secrète manuellement, ouvrez Azure AD B2C dans le portail Azure, accédez à Fournisseurs d’identité>Apple et sélectionnez Renouveler le secret.
  • Suivez les instructions pour proposer le bouton Se connecter avec Apple.

Ajouter le fournisseur d’identité Apple à un flux d’utilisateur

Pour permettre aux utilisateurs de se connecter à l’aide d’un ID Apple, vous devez ajouter le fournisseur d’identité Apple à un flux d’utilisateur. La connexion avec Apple peut être configurée uniquement pour la version recommandée des flux d’utilisateurs. Pour ajouter le fournisseur d’identité Apple à un flux d’utilisateur :

  1. Dans votre locataire Azure AD B2C, sélectionnez Flux d’utilisateur.
  2. Sélectionnez un flux d’utilisateur auquel vous souhaitez ajouter le fournisseur d’identité Apple.
  3. Sous Fournisseurs d’identité sociale, sélectionnez Apple.
  4. Sélectionnez Enregistrer.
  5. Pour tester votre stratégie, sélectionnez Exécuter le flux d’utilisateur.
  6. Pour Application, sélectionnez l’application web testapp1 que vous avez précédemment inscrite. L’URL de réponse doit être https://jwt.ms.
  7. Sélectionnez le bouton Exécuter le flux d’utilisateur.
  8. Dans la page d’inscription ou de connexion, sélectionnez Apple pour vous connecter avec l’ID Apple.

Si le processus de connexion réussit, votre navigateur est redirigé vers https://jwt.ms, qui affiche le contenu du jeton retourné par Azure AD B2C.

Signature de la clé secrète client

Utilisez le fichier .p8 téléchargé précédemment pour signer la clé secrète client dans un jeton JWT. De nombreuses bibliothèques peuvent créer et signer le JWT pour vous. Utilisez la fonction Azure qui crée un jeton pour vous.

  1. Créez une fonction Azure.

  2. Sous Développeur, sélectionnez Code + test.

  3. Copiez le contenu du fichier run.csx, puis collez-le dans l’éditeur.

  4. Sélectionnez Enregistrer.

  5. Effectuez une requête HTTP POST et fournissez les informations suivantes :

    • appleTeamId : votre ID d’équipe de développeurs Apple
    • appleServiceId : ID de service Apple (ID client)
    • appleKeyId : Identifiant de clé à 10 chiffres stocké dans l’en-tête JWT (requis par Apple)
    • p8key : clé au format PEM. Vous pouvez obtenir la clé en ouvrant le fichier .p8 dans un éditeur de texte et en copiant tout ce qui se trouve entre -----BEGIN PRIVATE KEY----- et -----END PRIVATE KEY-----, sans sauts de ligne.

Le code JSON suivant est un exemple d’appel de la fonction Azure :

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

La fonction Azure répond avec un jeton JWT de secret client correctement mis en forme et signé dans une réponse, par exemple :

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

Création d’une clé de stratégie

Vous devez stocker la clé secrète client que vous avez enregistrée dans votre locataire Azure AD B2C.

  1. Connectez-vous au portail Azure.
  2. Si vous avez accès à plusieurs locataires, sélectionnez l’icône Paramètres dans le menu supérieur pour basculer vers votre locataire Azure AD B2C à partir du menu Annuaires + abonnements.
  3. Sous Services Azure, sélectionnez Azure AD B2C. Vous pouvez également utiliser la zone de recherche pour rechercher et sélectionner Azure AD B2C.
  4. Dans la page de présentation, sélectionnez Identity Experience Framework.
  5. Sélectionnez Clés de stratégie, puis Ajouter.
  6. Dans Options, choisissez Manuel.
  7. Entrez un nom pour la clé de stratégie. Par exemple « AppleSecret ». Le préfixe « B2C_1A_ » est ajouté automatiquement au nom de votre clé.
  8. Dans Secret, entrez la valeur d’un jeton retourné par la fonction Azure (jeton JWT).
  9. Pour Utilisation de la clé, sélectionnez Signature.
  10. Sélectionnez Create (Créer).

Important

  • En cas de connexion avec Apple, l’administrateur doit renouveler sa clé secrète client tous les 6 mois.
  • Vous devrez renouveler manuellement la clé secrète client Apple si elle expire et stocker la nouvelle valeur dans la clé de stratégie.
  • Nous vous recommandons de définir votre propre rappel dans les 6 mois pour générer une nouvelle clé secrète client.
  • Suivez les instructions pour proposer le bouton Se connecter avec Apple.

Configurer Apple en tant que fournisseur d’identité

Pour permettre aux utilisateurs de se connecter avec un ID Apple, vous devez définir le compte comme fournisseur de revendications avec lequel Azure AD B2C peut communiquer via un point de terminaison. Le point de terminaison fournit un ensemble de revendications utilisées par Azure AD B2C pour vérifier qu’un utilisateur spécifique est authentifié.

Vous pouvez définir un ID Apple en tant que fournisseur de revendications en l’ajoutant à l’élément ClaimsProviders dans le fichier d’extension de votre stratégie.

  1. Ouvrez le fichier TrustFrameworkExtensions.xml.

  2. Recherchez l’élément ClaimsProviders. S’il n’existe pas, ajoutez-le sous l’élément racine.

  3. Ajoutez un nouveau ClaimsProvider comme suit :

    <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. Définissez client_id sur l’identificateur de service. Par exemple : com.consoto.azure-ad-b2c-service.

  5. Enregistrez le fichier .

Ajouter un parcours utilisateur

À ce stade, le fournisseur d’identité a été configuré, mais il n’est encore disponible dans aucune des pages de connexion. Si vous n’avez pas votre propre parcours utilisateur personnalisé, créez un doublon d’un modèle de parcours utilisateur existant ; sinon, passez à l’étape suivante.

  1. Ouvrez le fichier TrustFrameworkBase.xml à partir du pack de démarrage.
  2. Recherchez et copiez l’intégralité du contenu de l’élément UserJourney comprenant Id="SignUpOrSignIn".
  3. Ouvrez le fichier TrustFrameworkExtensions.xml, puis recherchez l’élément UserJourneys. Si l’élément n’existe pas, ajoutez-en un.
  4. Collez l’intégralité du contenu de l’élément UserJourney que vous avez copié en tant qu’enfant de l’élément UserJourneys.
  5. Renommez l’ID du parcours utilisateur. Par exemple : Id="CustomSignUpSignIn".

Ajoutez le fournisseur d’identité à un parcours utilisateur

Maintenant que vous disposez d’un parcours utilisateur, ajoutez-y le nouveau fournisseur d’identité. Vous ajoutez d’abord un bouton de connexion, puis vous liez le bouton à une action. L’action représente le profil technique que vous avez créé plus haut.

  1. Recherchez l’élément d’étape d’orchestration comprenant Type="CombinedSignInAndSignUp" ou Type="ClaimsProviderSelection" dans le parcours utilisateur. Il s’agit généralement de la première étape d’orchestration. L’élément ClaimsProviderSelections contient une liste de fournisseurs d’identité auxquels un utilisateur peut se connecter. L’ordre des éléments détermine l’ordre des boutons de connexion présentés à l’utilisateur. Ajoutez un élément XML ClaimsProviderSelection. Définissez la valeur TargetClaimsExchangeId sur un nom convivial.

  2. À la prochaine étape d’orchestration, ajoutez un élément ClaimsExchange. Définissez ID sur la valeur de l’ID d’échange des revendications cible. Mettez à jour la valeur de TechnicalProfileReferenceId sur l’ID du profil technique que vous avez créé précédemment.

Le code XML suivant montre les deux premières étapes d’orchestration d’un parcours utilisateur avec le fournisseur d’identité :

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

Configurer la stratégie de partie de confiance

La stratégie de partie de confiance, par exemple SignUpSignIn.xml, spécifie le parcours utilisateur à partir duquel Azure AD B2C s’exécutera. Recherchez l’élément DefaultUserJourney dans la partie de confiance. Mettez à jour la valeur ReferenceId afin qu’elle corresponde à l’ID du parcours utilisateur auquel vous avez ajouté le fournisseur d'identité.

Dans l’exemple suivant, pour le parcours utilisateur CustomSignUpSignIn, la valeur ReferenceId est définie sur CustomSignUpSignIn :

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Téléchargez la stratégie personnalisée

  1. Connectez-vous au portail Azure.
  2. Sélectionnez l’icône Annuaire et abonnement dans la barre d’outils du portail, puis sélectionnez l’annuaire qui contient votre locataire Azure AD B2C.
  3. Dans la Portail Azure, recherchez et sélectionnez Azure AD B2C.
  4. Sous Stratégies, sélectionnez Identity Experience Framework.
  5. Sélectionnez Charger une stratégie personnalisée, puis chargez les deux fichiers de stratégie que vous avez modifiés, dans l’ordre suivant : la stratégie d’extension, par exemple TrustFrameworkExtensions.xml, puis la stratégie de la partie de confiance, par exemple SignUpSignIn.xml.

Tester votre stratégie personnalisée

  1. Sélectionnez votre stratégie de partie de confiance, par exemple B2C_1A_signup_signin.
  2. Pour Application, sélectionnez une application web que vous avez précédemment inscrite. L’URL de réponse doit être https://jwt.ms.
  3. Sélectionnez le bouton Exécuter maintenant.
  4. Dans la page d’inscription ou de connexion, sélectionnez Apple pour vous connecter avec l’ID Apple.

Si le processus de connexion réussit, votre navigateur est redirigé vers https://jwt.ms, qui affiche le contenu du jeton retourné par Azure AD B2C.

Personnaliser votre interface utilisateur

Suivez les instructions pour proposer l’option Se connecter avec Apple. Apple fournit plusieurs boutons Se connecter avec Apple que vous pouvez utiliser pour permettre aux utilisateurs de configurer un compte et de se connecter. Si nécessaire, créez un bouton personnalisé pour proposer l’option Se connecter avec Apple. Découvrez comment afficher un bouton Se connecter avec Apple.

Pour vous conformer aux instructions de l’interface utilisateur d’Apple :