

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.

# Authentification des applications clientes des utilisateurs finaux pour la messagerie du SDK Amazon Chime
<a name="auth-client-apps"></a>

Vous pouvez également exécuter la messagerie du SDK Amazon Chime à partir des applications clientes des utilisateurs finaux. [Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime](call-from-backend.md)explique comment effectuer des appels d'API tels que create-channel, send-channel-message et list-channel-messages. Les applications clientes des utilisateurs finaux, telles que les navigateurs et les applications mobiles, effectuent ces mêmes appels d'API. Les applications clientes peuvent également se connecter WebSocket pour recevoir des mises à jour en temps réel sur les messages et les événements des canaux dont elles sont membres. Cette section explique comment attribuer des informations d'identification IAM à une application cliente limitée à un utilisateur d'instance d'application spécifique. Une fois que les utilisateurs finaux disposent de ces informations d'identification, ils peuvent effectuer les appels d'API indiqués dans[Effectuer des appels au SDK depuis un service principal pour la messagerie du SDK Amazon Chime](call-from-backend.md). Pour voir une démonstration complète d'une application cliente, voir [https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat). Pour plus d'informations sur la réception de messages en temps réel provenant des canaux auxquels appartient une application cliente, consultez[Utilisation WebSockets pour recevoir des messages dans la messagerie du SDK Amazon Chime](websockets.md).

## Fournir des informations d'identification IAM aux utilisateurs finaux
<a name="connect-id-provider"></a>

La messagerie du SDK Amazon Chime s'intègre nativement aux politiques AWS Identity and Access Management (IAM) pour authentifier les demandes entrantes. La politique IAM définit ce que chaque utilisateur peut faire. Les politiques IAM peuvent être conçues pour fournir des informations d'identification limitées et limitées pour votre cas d'utilisation. Pour plus d'informations sur la création de politiques pour les utilisateurs de messagerie du SDK Amazon Chime, consultez. [Exemples de rôles IAM pour la messagerie du SDK Amazon Chime](iam-roles.md)

Si vous avez déjà un fournisseur d'identité, vous disposez des options suivantes pour intégrer votre identité existante à la messagerie du SDK Amazon Chime.
+ Vous pouvez utiliser votre fournisseur d'identité existant pour authentifier les utilisateurs, puis intégrer le service d'authentification au AWS Security Token Service (STS) afin de créer votre propre service de vente d'informations d'identification pour les clients. STS fournit des API pour assumer des rôles IAM.
+ Si vous disposez déjà d'un fournisseur d'identité compatible SAML ou OpenID, nous vous recommandons d'utiliser les pools d'identité Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html), qui extraient les appels vers STS et. AWS [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) Amazon Cognito s'intègre à OpenID, au SAML et aux fournisseurs d'identité publics tels que Facebook, Login with Amazon, Google et Sign in with Apple.

Si vous n'avez pas de fournisseur d'identité, vous pouvez commencer à utiliser les groupes d'utilisateurs Amazon Cognito. Pour un exemple d'utilisation d'Amazon Cognito avec les fonctionnalités de messagerie du SDK Amazon Chime, [consultez Intégrer des fonctionnalités de chat dans votre application avec la messagerie du SDK Amazon Chime](https://aws.amazon.com/blogs/business-productivity/build-chat-features-into-your-application-with-amazon-chime-sdk-messaging/). 

Vous pouvez également utiliser le [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html)pour créer votre propre service de distribution automatique d'informations d'identification ou créer votre propre fournisseur d'identité.

**Utilisation de STS pour vendre des informations d'identification**  
[Si vous disposez déjà d'un IDP tel que ActiveDirectory LDAP et que vous souhaitez implémenter un service de vente d'informations d'identification personnalisé ou autoriser l'accès au chat aux participants à une réunion non authentifiés, vous pouvez utiliser l'API STS.AWSAssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) Pour ce faire, vous devez d'abord créer un rôle SDK de messagerie dans le SDK Amazon Chime. Pour plus d'informations sur la création de ce rôle, consultez la section [Création d'un rôle pour déléguer des autorisations à un utilisateur IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

Le rôle IAM serait autorisé à accéder à l'action de messagerie du SDK Amazon Chime que votre application utiliserait, comme suit :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chime:GetMessagingSessionEndpoint"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "chime:SendChannelMessage",
                "chime:ListChannelMessages",
                "chime:CreateChannelMembership",
                "chime:ListChannelMemberships",
                "chime:DeleteChannelMembership",
                "chime:CreateChannelModerator",
                "chime:ListChannelModerators",
                "chime:DescribeChannelModerator",
                "chime:CreateChannel",
                "chime:DescribeChannel",
                "chime:ListChannels",
                "chime:DeleteChannel",
                "chime:RedactChannelMessage",
                "chime:UpdateChannelMessage",
                "chime:Connect",
                "chime:ListChannelBans",
                "chime:CreateChannelBan",
                "chime:DeleteChannelBan",
                "chime:ListChannelMembershipsForAppInstanceUser",
                "chime:AssociateChannelFlow",
                "chime:DisassociateChannelFlow",
                "chime:GetChannelMessageStatus"
            ],
            "Resource": [
            "arn:aws:chime:{{us-east-1}}:{{123456789012}}:app-instance/{{app_instance_id}}/user/my_applications_user_id",
            "arn:aws:chime:{{us-east-1}}:{{123456789012}}:app-instance/{{app_instance_id}}/channel/*"
    ]
        }
    ]
}
```

------

Dans cet exemple, appelez ce rôle le *ChimeMessagingSampleAppUserRole*.

Notez le tag de session dans la *ChimeMessagingSampleAppUserRole*politique de `${my_application_user_id}` la ressource ARN de l'utilisateur. Cette balise de session est paramétrée dans l'appel d'[https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API afin de limiter les informations d'identification renvoyées aux autorisations pour un seul utilisateur.

Les [https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html)API [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)et sont appelées à l'aide d'une entité IAM déjà accréditée, telle qu'un utilisateur IAM. Les API peuvent également être appelées par un rôle IAM différent, tel qu'un rôle d'[AWS Lambda exécution](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). Cette identité IAM doit être autorisée à appeler `AssumeRole` et à utiliser `TagSession` le *ChimeMessagingSampleAppUserRole*. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
         {
            "Effect": "Allow",
            "Action": [ 
                "sts:AssumeRole",
                "sts:TagSession"
                ],
            "Resource": "arn:aws:iam::{{123456789012}}:role/{{ChimeMessagingSampleAppUserRole}}"
        }
    ]
}
```

------

 Dans cet exemple, appelez ce rôle le *ChimeSampleAppServerRole*.

Vous devez le configurer `ChimeMessagingSampleAppUserRole` avec une politique de confiance qui permet `ChimeMessagingSampleAppServerRole` d'appeler l'[AssumeRoleAPI STS](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) dessus. Pour plus d'informations sur l'utilisation des politiques de confiance avec les rôles IAM, voir [Comment utiliser les politiques de confiance avec les rôles IAM](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/). Vous pouvez utiliser la console AWS IAM Roles pour ajouter cette politique au`ChimeMessagingSampleAppUserRole`. L'exemple suivant illustre une relation de confiance typique.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{123456789012}}:role/{{ChimeMessagingSampleAppServerRole}}"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

 Dans un exemple de déploiement, une instance [Amazon EC2](https://aws.amazon.com/ec2/) ou une instance AWS Lambda est lancée avec le. `ChimeMessagingSampleAppServerRole` Le serveur :

1. Exécute toute autorisation spécifique à une application sur les demandes d'un client pour recevoir des informations d'identification.

1. Active STS `AssumeRole``ChimeMessagingSampleAppUserRole`, avec une balise paramétrant le. `${aws:PrincipalTag/my_applications_user_id}`

1. Transfère les informations d'identification renvoyées lors de l'`AssumeRole`appel à l'utilisateur.

L'exemple suivant montre la commande CLI permettant d'assumer un rôle pour l'étape 2 :

`aws sts assume-role --role-arn arn:aws:iam::{{my_aws_account_id}}:role/{{ChimeMessagingSampleAppUserRole}} --role-session-name demo --tags Key={{my_applications_user_id}},Value={{123456789}} ` 