

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.

# Intégration de l'authentification et de l'autorisation Amazon Cognito avec des applications Web et mobiles
<a name="cognito-integrate-apps"></a>

La mise en œuvre d'Amazon Cognito repose sur une combinaison d'outils AWS Management Console d'administration du AWS SDK et de bibliothèques de SDK dans les applications. La console Amazon Cognito est l'interface visuelle permettant de configurer et de gérer vos groupes d'utilisateurs et réserves d'identités Amazon Cognito.

[L'intégration la plus simple que vous puissiez créer avec les groupes d'utilisateurs Amazon Cognito est la connexion gérée.](cognito-terms.md#terms-managedlogin) Managed Login est une application de connexion ready-to-use Web permettant de tester et de déployer rapidement des groupes d'utilisateurs Amazon Cognito. L'authentification du groupe d'utilisateurs avec connexion gérée nécessite des bibliothèques OpenID Connect (OIDC) qui dirigent les utilisateurs vers des pages de connexion hébergées. Dans cette série de points de terminaison Web interactifs avec l'utilisateur et de redirection, Amazon Cognito gère le flux d'authentification, y compris la connexion par un tiers, l'authentification multifactorielle (MFA) et le choix d'un flux d'authentification. Votre application doit uniquement traiter le résultat de l'authentification renvoyé par Amazon Cognito dans la réponse.

Vous pouvez également ajouter un AWS SDK à votre application, créer des interfaces d'authentification personnalisées et invoquer des opérations d'API pour authentifier et autoriser vos utilisateurs. [AWS Amplify](https://docs.amplify.aws/)permet de créer Service AWS des applications complètes, avec l'authentification Amazon Cognito en arrière-plan.

Par exemple, votre application peut invoquer la connexion gérée pour la connexion des utilisateurs, puis appeler le point de terminaison du jeton à partir du code de votre application pour échanger le code d'autorisation de votre utilisateur contre des jetons. Votre application doit ensuite interpréter et stocker les jetons de vos utilisateurs, puis les présenter dans le contexte approprié pour l'authentification et l'autorisation. Amplify ajoute des outils d'intégration guidée avec des fonctions intégrées pour ces processus.

Vous pouvez également créer vos ressources Amazon Cognito entièrement en code. Les pools d'identités ne disposent pas des mêmes options d'authentification gérées que les groupes d'utilisateurs. Pour accéder aux AWS informations d'identification dans vos applications, implémentez les opérations des pools d'identités dans les modules SDK importés. Pour commencer à utiliser votre propre code d'application personnalisé, consultez les exemples de code Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html) pour. [AWS SDKs](https://aws.amazon.com/developer/tools/) Pour l'intégration à Amazon Cognito en tant que fournisseur d'identité OpenID Connect, utilisez les [Outils de développement OpenID Connect](https://openid.net/certified-open-id-developer-tools/).

Avant d'utiliser l'authentification et l'autorisation Amazon Cognito, choisissez une plateforme d'application et préparez votre code pour l'intégrer au service. Pour connaître les plateformes disponibles pour AWS SDKs, voir[Authentification avec AWS SDKs](#amazon-cognito-authentication-with-sdks). AWS CLI Il s'agit d'un SDK en ligne de commande pour Amazon Cognito et d'autres applications. Il constitue un Services AWS excellent point de départ pour vous familiariser avec les opérations de l'API Amazon Cognito et leur syntaxe.

**Note**  
Certains composants d'Amazon Cognito ne peuvent être configurés qu'avec cette API. Par exemple, vous ne pouvez définir un déclencheur Lambda d'[expéditeur de SMS ou d'e-mail personnalisé](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-custom-sender-triggers.html) pour un groupe d'utilisateurs qu'avec une demande qui met à jour la `LambdaConfig` propriété de la [UserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UserPoolType.html)classe dans une demande d'[UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)ou d'API.

L'API des groupes d'utilisateurs Amazon Cognito partage son espace de nommage avec plusieurs classes d'opérations d'API. Une classe configure les groupes d'utilisateurs et leurs processus, les fournisseurs d'identité et les utilisateurs. Une autre inclut des opérations non authentifiées permettant à vos utilisateurs d'un client public de se connecter, de se déconnecter et de gérer leurs profils. La dernière classe d'opérations d'API effectue des opérations utilisateur que vous autorisez avec vos propres AWS informations d'identification dans un client confidentiel côté serveur. Vous devez connaître l'architecture de votre application prévue avant de commencer à implémenter le code de l'application. Pour de plus amples informations, veuillez consulter [Comprendre l'API, l'OIDC et l'authentification par pages de connexion gérées](authentication-flows-public-server-side.md#user-pools-API-operations).

**Topics**
+ [Authentification avec AWS Amplify](#cognito-integrate-apps-amplify)
+ [Authentification avec AWS SDKs](#amazon-cognito-authentication-with-sdks)
+ [Comment fonctionne l'authentification avec Amazon Cognito](cognito-how-to-authenticate.md)
+ [Utilisation de ce service avec un AWS SDK](sdk-general-information-section.md)
+ [Autorisation avec Amazon Verified Permissions](amazon-cognito-authorization-with-avp.md)

## Authentification avec AWS Amplify
<a name="cognito-integrate-apps-amplify"></a>

AWS Amplify est une solution complète pour créer des applications Web et mobiles. Avec Amplify, vous pouvez vous connecter à des ressources existantes à l'aide des bibliothèques Amplify, ou vous pouvez créer et configurer de nouvelles ressources à l'aide de l'interface de ligne de commande (CLI) d'Amplify. Amplify possède également des composants d'interface utilisateur connectés tels que [Authenticator](https://ui.docs.amplify.aws/react/connected-components/authenticator) pour configurer et personnaliser l'expérience de connexion et d'inscription dans votre application.

Pour utiliser les fonctionnalités d'authentification Amplify dans votre application front-end, consultez la documentation suivante par plateforme.
+ [Amplifier l'authentification pour React](https://docs.amplify.aws/react/start/)
+ [Amplifier l'authentification pour React Native](https://docs.amplify.aws/react-native/start/)
+ [Amplifier l'authentification pour Swift (iOS)](https://docs.amplify.aws/swift/start/)
+ [Authentification Amplify pour Android](https://docs.amplify.aws/android/start/)
+ [Authentification Amplify pour Flutter](https://docs.amplify.aws/flutter/start/) (langue française non garantie)

Les bibliothèques Amplify sont open source et sont disponibles sur. [GitHub](https://github.com/aws-amplify) Pour en savoir plus sur la façon dont Amplify Auth implémente l'authentification Amazon Cognito, consultez les bibliothèques suivantes.
+ [amplify-js](https://github.com/aws-amplify/amplify-js/tree/main/packages/auth)
+ [amplify-swift](https://github.com/aws-amplify/amplify-swift/tree/main/Amplify/Categories/Auth)
+ [amplify-flutter](https://github.com/aws-amplify/amplify-flutter/tree/main/packages/auth)
+ [amplify-android](https://github.com/aws-amplify/amplify-android/tree/main/aws-auth-cognito)

### Créer une interface utilisateur (UI) avec Amplify
<a name="cognito-integrate-apps-amplify-ui"></a>

[Connexion gérée par le groupe d'utilisateurs](cognito-user-pools-managed-login.md)peut répondre aux besoins essentiels d'une interface d'authentification pour une application Web ou mobile. Pour personnaliser votre interface utilisateur (UI) au-delà des paramètres pris en charge par la connexion gérée, créez une application sur mesure. L'[interface utilisateur Amplify](https://ui.docs.amplify.aws/) est une collection personnalisable de composants front-end dans différentes langues.

![Capture d'écran d'un exemple d'application Amplify Authenticator.](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/amplify-authenticator-ui.png)


Pour commencer à utiliser votre composant d'authentification personnalisé, consultez la documentation suivante relative au composant Authenticator.
+ [Authenticator for Android](https://ui.docs.amplify.aws/android/connected-components/authenticator)
+ [Authenticator for Angular](https://ui.docs.amplify.aws/angular/connected-components/authenticator)
+ [Authenticator for Flutter](https://ui.docs.amplify.aws/flutter/connected-components/authenticator)
+ [Authenticator for React](https://ui.docs.amplify.aws/react/connected-components/authenticator)
+ [Authenticator for React Native](https://ui.docs.amplify.aws/react-native/connected-components/authenticator)
+ [Authenticator for Swift](https://ui.docs.amplify.aws/swift/connected-components/authenticator)
+ [Authenticator for Vue](https://ui.docs.amplify.aws/vue/connected-components/authenticator)

## Authentification avec AWS SDKs
<a name="amazon-cognito-authentication-with-sdks"></a>

Pour utiliser un backend sécurisé afin de créer votre propre microservice d'identité qui interagit avec AWS Amazon Cognito, connectez-vous aux groupes d'utilisateurs Amazon Cognito et à l'API des groupes d'identités Amazon Cognito à l'aide d'un SDK dans la langue de votre choix.

Pour plus d'informations sur chaque opération d'API, consultez les documents [Référence d'API des groupes d'utilisateurs Amazon Cognito](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_Operations.html) et [Référence d'API Amazon Cognito](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/Welcome.html). Ces documents contiennent des sections ([https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#API_InitiateAuth_SeeAlso](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html#API_InitiateAuth_SeeAlso)) contenant des ressources pour l'utilisation de diverses plateformes prises SDKs en charge.
+ [Interface de ligne de commande AWS](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/index.html#cli-aws-cognito-idp)
+ [AWS SDK pour .NET](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CognitoIdentityProvider/TCognitoIdentityProviderClient.html)
+ [AWS SDK pour C\+\+](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-cognito-idp/html/class_aws_1_1_cognito_identity_provider_1_1_cognito_identity_provider_client.html)
+ [AWS SDK pour Go](https://docs.aws.amazon.com/sdk-for-go/api/service/cognitoidentityprovider/#CognitoIdentityProvider)
+ [AWS SDK pour Java V2](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/cognitoidentityprovider/CognitoIdentityProviderClient.html)
+ [AWS SDK pour JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html)
+ [AWS SDK pour PHP V3](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.CognitoIdentityProvider.CognitoIdentityProviderClient.html)
+ [AWS SDK pour Python](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/cognito-idp.html)
+ [AWS SDK pour Ruby V3](https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/CognitoIdentityProvider/Client.html)