Configuration de la connexion avec Apple en tant qu'IdP du pool d'identités - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration de la connexion avec Apple en tant qu'IdP du pool d'identités

Amazon Cognito s'intègre avec Sign in with Apple pour fournir une authentification fédérée pour les utilisateurs de votre application mobile et de votre application web. Cette section explique comment enregistrer et configurer votre application avec la fonctionnalité Se connecter avec Apple comme fournisseur d'identité.

Pour ajouter la fonctionnalité Se connecter avec Apple en tant que fournisseur d'authentification à un groupe d'identités, vous devez mener à bien deux procédures. Tout d'abord, intégrez la fonctionnalité Se connecter avec Apple dans une application, puis configurez Se connecter avec Apple dans les groupes d'identités. Pour en up-to-date savoir plus sur la configuration de Sign in with Apple, consultez la section Configuration de votre environnement pour Sign in with Apple dans la documentation destinée aux développeurs Apple.

Configurer Se connecter avec Apple

Pour configurer la fonctionnalité Se connecter avec Apple en tant que fournisseur d'identité, enregistrez votre application auprès d'Apple pour recevoir un ID client.

  1. Créez un compte développeur Apple.

  2. Connectez-vous avec vos informations d'identification Apple.

  3. Dans le volet de navigation de gauche, choisissez Certificates, IDs & Profiles (Certificats, ID et profils).

  4. Dans le volet de navigation de gauche, choisissez Identifiants.

  5. Dans la page Identifiants, choisissez l'icône +.

  6. Dans la page Register a New Identifier (Enregistrer un nouvel identifiant), choisissez App IDs (ID application), puis Continue (Continuer).

  7. Dans la page Register an App ID (Enregistrer un ID d'application), procédez comme suit :

    1. Dans Description, saisissez une description.

    2. Sous Bundle ID (ID de solution groupée), tapez un identifiant. Notez cet ID de solution groupée, car vous aurez besoin de cette valeur pour configurer Apple en tant que fournisseur dans le groupe d'identités.

    3. Sous Capabilities (Capacités), choisissez Sign In with Apple (Connexion avec Apple), puis Edit (Modifier).

    4. Sur la page Se connecter avec Apple : configuration de l'ID d'application, sélectionnez le paramètre approprié pour votre application. Ensuite, choisissez Save (Enregistrer).

    5. Choisissez Continuer.

  8. Dans la page Confirm your App ID (Confirmer votre ID d'application), choisissez Register (Inscrire).

  9. Passez à l'étape 10 si vous souhaitez intégrer Sign in with Apple avec une application iOS native. L'étape 11 concerne les applications auxquelles vous souhaitez intégrer la connexion avec Apple JS.

  10. Dans la page Identifiants, choisissez le menu ID d'application, puis ID de services. Choisissez l'icône +.

  11. Dans la page Register a New Identifier (Enregistrer un nouvel identifiant), choisissez Services IDs (ID de service), puis Continue (Continuer).

  12. Dans la page Register an App ID (Enregistrer un ID d'application), procédez comme suit :

    1. Dans Description, saisissez une description.

    2. Sous Identifier (Identifiant), saisissez un identifiant. Notez cet ID de services, car vous aurez besoin de cette valeur pour configurer Apple en tant que fournisseur dans votre groupe d'identités.

    3. Sélectionnez Sign In with Apple (Connexion avec Apple), puis choisissez Configure (Configurer).

    4. Dans la page Web Authentication Configuration (Configuration de l'authentification web), choisissez un Primary App ID (ID d'application principale). Sous URL de site web, choisissez l'icône +. Pour Domains and Subdomains(Domaines et Sous-domaines), saisissez le nom de domaine de votre application. Dans URL de retour, saisissez l'URL de rappel vers laquelle l'autorisation redirige l'utilisateur après son authentification via la fonctionnalité Se connecter avec Apple.

    5. Choisissez Suivant.

    6. Choisissez Continue (Continuer), puis Register (Enregistrer).

  13. Dans le volet de navigation de gauche, choisissez Keys (Clés).

  14. Dans la page Keys (Clés), choisissez l'icône +.

  15. Dans la page Register a New Key (Enregistrer une nouvelle clé), procédez comme suit :

    1. Sous Key Name (Nom de clé), saisissez un nom de clé.

    2. Sélectionnez Sign In with Apple (Connexion avec Apple), puis choisissez Configure (Configurer).

    3. Dans la page Configure Key (Configurer la clé), choisissez un Primary App ID (ID d'application principal), puis Save (Enregistrer).

    4. Choisissez Continue (Continuer), puis Register (Enregistrer).

Note

Pour intégrer la connexion avec Apple à l'aide d'une application iOS native, consulter Implementing User Authentication with Sign in with Apple (Mise en place de l'authentification utilisateur à l'aide de la connexion avec Apple).

Pour intégrer la connexion avec Apple dans une plateforme native non iOS, consultez Sign in with Apple JS (Connexion avec Apple JS).

Configurer le fournisseur externe dans la console Identités fédérées Amazon Cognito

Utilisez la procédure suivante pour configurer votre fournisseur externe.

Pour ajouter un fournisseur d'identité (IdP) Se connecter avec Apple
  1. Choisissez Groupes d'identités dans la console Amazon Cognito. Sélectionnez une réserve d'identités.

  2. Choisissez l'onglet Accès utilisateur.

  3. Sélectionnez Ajouter un fournisseur d'identité.

  4. Choisissez Se connecter avec Apple.

  5. Saisissez l'ID des services du projet OAuth que vous avez créé avec Apple Developer. Pour plus d'informations, consultez Authentification des utilisateurs avec Se connecter avec Apple (langue française non garantie) dans la documentation de Se connecter avec Apple.

  6. Pour définir le rôle demandé par Amazon Cognito lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez Paramètres de rôle.

    1. Vous pouvez attribuer aux utilisateurs de ce fournisseur d'identité le rôle par défaut que vous avez configuré lorsque vous avez configuré votre rôle authentifié, ou vous pouvez sélectionner Choisir un rôle avec des règles.

      1. Si vous avez choisi Choisir un rôle avec des règles, saisissez la demande source issue de l'authentification de votre utilisateur, l'opérateur avec lequel vous souhaitez comparer ce champ standard, la valeur qui entraînera une correspondance avec ce choix de rôle et le rôle que vous souhaitez attribuer si l'attribution de rôle correspond. Sélectionnez Ajouter un autre pour créer une règle supplémentaire basée sur une condition différente.

      2. Choisissez une résolution de rôle. Lorsque les champs standard de votre utilisateur ne correspondent pas à vos règles, vous pouvez refuser les informations d'identification ou émettre des informations d'identification pour votre rôle authentifié.

  7. Pour modifier les balises de principal qu'Amazon Cognito attribue lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez Attributs de contrôle d'accès.

    1. Pour n'appliquer aucune balise de principal, choisissez Inactif.

    2. Pour appliquer les balises de principal en fonction des champs standard sub et aud, choisissez Utiliser les mappages par défaut.

    3. Pour créer votre propre schéma personnalisé d'attributs pour les balises de principal, choisissez Utiliser des mappages personnalisés. Saisissez ensuite une clé de balise que vous souhaitez obtenir à partir de chaque demande que vous souhaitez représenter dans une balise.

  8. Sélectionnez Enregistrer les modifications.

Exemples CLI d'utilisation de Sign in with Apple en tant que fournisseur dans les Identités fédérées Amazon Cognito

Cet exemple crée un groupe d'identités nommé MyIdentityPool avec la fonctionnalité Se connecter avec Apple comme fournisseur d'identité.

aws cognito-identity create-identity-pool --identity-pool-name MyIdentityPool --supported-login-providers appleid.apple.com="sameple.apple.clientid"

Pour plus d'informations, consultez Create identity pool (Créer un groupe d'identités)

Générer un ID d'identité Amazon Cognito

Cet exemple génère (ou extrait) un ID Amazon Cognito. Il s'agit d'une API publique, vous n'avez donc pas besoin d'informations d'identification pour appeler cette API.

aws cognito-identity get-id --identity-pool-id SampleIdentityPoolId --logins appleid.apple.com="SignInWithAppleIdToken"

Pour plus d'informations, consultez get-id.(obtenir-id)

Obtenir des informations d'identification pour un ID d'identité Amazon Cognito

Cet exemple renvoie les informations d'identification pour l'ID d'identité fourni et la connexion avec un identifiant Apple. Il s'agit d'une API publique, vous n'avez donc pas besoin d'informations d'identification pour appeler cette API.

aws cognito-identity get-credentials-for-identity --identity-id SampleIdentityId --logins appleid.apple.com="SignInWithAppleIdToken"

Pour plus d'informations, voir get-credentials-for-identity

Utiliser Se connecter avec Apple : Android

Apple ne fournit pas de SDK compatible avec la connexion avec Apple pour Android. Vous pouvez utiliser le flux Web dans une vue Web à la place.

Sign in with Apple utilise un objet session pour suivre son état. Amazon Cognito utilise le jeton d'identification de cet objet session pour authentifier l'utilisateur, générer l'identifiant unique et, si nécessaire, autoriser l'utilisateur à accéder à d'autres ressources AWS.

@Override public void onSuccess(Bundle response) { String token = response.getString("id_token"); Map<String, String> logins = new HashMap<String, String>(); logins.put("appleid.apple.com", token); credentialsProvider.setLogins(logins); }

Utiliser Se connecter avec Apple : iOS - Objective-C

Apple a fourni la prise en charge de SDK pour Se connecter avec Apple dans les applications iOS natives. Pour mettre en place l'authentification utilisateur par le biais de la connexion avec Apple dans les appareils iOS natifs, veuillez consulter Implementing User Authentication with Sign in with Apple (Mettre en place l'authentification de l'utilisateur par le biais de la connexion avec Apple) dans la documentation Apple.

Amazon Cognito utilise le jeton d'identification pour authentifier l'utilisateur, générer l'identifiant unique et, si nécessaire, autoriser l'utilisateur à accéder à d'autres ressources AWS.

(void)finishedWithAuth: (ASAuthorizationAppleIDCredential *)auth error: (NSError *) error { NSString *idToken = [ASAuthorizationAppleIDCredential objectForKey:@"identityToken"]; credentialsProvider.logins = @{ "appleid.apple.com": idToken }; }

Utiliser Se connecter avec Apple : iOS - Swift

Apple a fourni la prise en charge de SDK pour Se connecter avec Apple dans les applications iOS natives. Pour mettre en place l'authentification utilisateur par le biais de la connexion avec Apple dans les appareils iOS natifs, veuillez consulter Implementing User Authentication with Sign in with Apple (Mettre en place l'authentification de l'utilisateur par le biais de la connexion avec Apple) dans la documentation Apple.

Amazon Cognito utilise le jeton d'identification pour authentifier l'utilisateur, générer l'identifiant unique et, si nécessaire, autoriser l'utilisateur à accéder à d'autres ressources AWS.

Pour plus d'informations sur la configuration de la fonctionnalité Se connecter avec Apple dans iOS, consultez les instructions de configuration de la fonctionnalité Se connecter avec Apple

func finishedWithAuth(auth: ASAuthorizationAppleIDCredential!, error: NSError!) { if error != nil { print(error.localizedDescription) } else { let idToken = auth.identityToken, credentialsProvider.logins = ["appleid.apple.com": idToken!] } }

Utilisez Se connecter avec Apple : JavaScript

Apple ne fournit pas de SDK compatible avec Sign in with Apple for JavaScript. Vous pouvez utiliser le flux Web dans une vue Web à la place.

Sign in with Apple utilise un objet session pour suivre son état. Amazon Cognito utilise le jeton d'identification de cet objet session pour authentifier l'utilisateur, générer l'identifiant unique et, si nécessaire, autoriser l'utilisateur à accéder à d'autres ressources AWS.

function signinCallback(authResult) { // Add the apple's id token to the Amazon Cognito credentials login map. AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'IDENTITY_POOL_ID', Logins: { 'appleid.apple.com': authResult['id_token'] } }); // Obtain AWS credentials AWS.config.credentials.get(function(){ // Access AWS resources here. }); }

Utiliser Se connecter avec Apple : Xamarin

Nous n'avons pas de SDK compatible avec la connexion avec Apple pour Xamarin. Vous pouvez utiliser le flux Web dans une vue Web à la place.

Sign in with Apple utilise un objet session pour suivre son état. Amazon Cognito utilise le jeton d'identification de cet objet session pour authentifier l'utilisateur, générer l'identifiant unique et, si nécessaire, autoriser l'utilisateur à accéder à d'autres ressources AWS.

Une fois que vous avez ce jeton, vous pouvez le définir dans CognitoAWSCredentials :

credentials.AddLogin("appleid.apple.com", token);