Se connecter avec Apple (Groupes d'identités) - Amazon Cognito

Se connecter avec Apple (Groupes 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.

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 adéquat pour votre application. Ensuite, choisissez 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.

  1. Choisissez Manage Identity Pools (Gérer les groupes d'identité) dans la page d'accueil de la console Amazon Cognito.

  2. Choisissez le nom du groupe d'identités dans lequel vous souhaitez activer Apple comme fournisseur externe.

  3. Dans l'angle supérieur droit du tableau de bord, choisissez Edit identity groupe (Modifier groupe d'identités).

  4. Faites défiler l'affichage vers le bas et choisissez Authentication providers (Fournisseurs d'authentification) pour développer cette option.

  5. Choisissez l'onglet Apple.

  6. Saisissez l'ID de solution groupée que vous avez obtenu de https://developer.apple.com. Ensuite, choisissez Save Changes (Enregistrer les modifications).

  7. Si vous utilisez Se connecter avec Apple par le biais d'applications iOS natives, saisissez le BundleID que vous avez obtenu à partir de developer.apple.com. Si vous utilisez la fonctionnalité Se connecter avec Apple avec des applications web ou autres, saisissez l'ID de service. Ensuite, choisissez Save Changes (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, consultez get-credentials-for-identity (obtenir-informations d'identification-pour-identité)

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!] } }

Utiliser Se connecter avec Apple : JavaScript

Apple ne fournit pas de SDK compatible avec la connexion avec Apple pour 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);