Authentification des applications clientes des utilisateurs finaux - Amazon Chime SDK

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

Vous pouvez également exécuter la SDK messagerie Amazon Chime à partir d'applications clientes destinées aux utilisateurs finaux. Passer SDK des appels depuis un service principalexplique comment passer des API appels 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 API appels. 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 donner des IAM informations d'identification à une application cliente délimitée à un utilisateur d'instance d'application spécifique. Une fois que les utilisateurs finaux disposent de ces informations d'identification, ils peuvent passer les API appels indiqués dansPasser SDK des appels depuis un service principal. Pour voir une démonstration complète d'une application cliente, consultez 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, consultezUtilisation WebSockets pour recevoir des messages.

Fournir des IAM informations d'identification aux utilisateurs finaux

La SDK messagerie Amazon Chime s'intègre nativement aux politiques AWS Identity and Access Management (IAM) pour authentifier les demandes entrantes. La IAM politique définit ce que peut faire un utilisateur individuel. IAMles politiques 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 la SDK messagerie Amazon Chime, consultez. Exemples de IAM rôles

Si vous avez déjà un fournisseur d'identité, vous disposez des options suivantes pour intégrer votre identité existante à la messagerie Amazon ChimeSDK.

  • Vous pouvez utiliser votre fournisseur d'identité existant pour authentifier les utilisateurs, puis intégrer le service d'authentification à AWS Security Token Service (STS) afin de créer votre propre service de vente d'informations d'identification pour les clients. STSpermet APIs d'assumer IAM des rôles.

  • Si vous avez déjà un fournisseur SAML d'identité compatible avec OpenID, nous vous recommandons d'utiliser Amazon Cognito Identity Pools, qui extraient les appels vers AWS STS AssumeRoleWithSAML et AssumeRoleWithWebIdentity. Amazon Cognito s'intègre à OpenID et à des fournisseurs d'identité publics tels que FacebookSAML, 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 Amazon SDK Chime, consultez Intégrer des fonctionnalités de chat dans votre application avec la messagerie Amazon Chime. SDK

Vous pouvez également utiliser le AWS STSpour créer votre propre service de distribution automatique d'informations d'identification ou créer votre propre fournisseur d'identité.

Utilisation STS pour vendre des informations d'identification

Si vous disposez déjà d'un IDP tel ActiveDirectory LDAP système et que vous souhaitez mettre en place un service de distribution automatique d'informations d'identification personnalisé ou accorder l'accès au chat aux participants non authentifiés à une réunion, vous pouvez utiliser le AWS STS AssumeRole API. Pour ce faire, vous devez d'abord créer un rôle de SDK messagerie 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 IAM utilisateur.

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

{ "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": [ "{chime_app_instance_arn}/user/${aws:PrincipalTag/my_applications_user_id}", "{chime_app_instance_arn}/channel/*" ] } ] }

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

Notez le tag de session dans la ChimeMessagingSampleAppUserRolepolitique ${my_application_user_id} de la ARN ressource utilisateur. Ce tag de session est paramétré dans AssumeRoleAPIappel pour limiter les informations d'identification renvoyées aux autorisations pour un seul utilisateur.

L'interface AssumeRole et TagSessionAPIssont appelés à l'aide d'une IAM entité déjà accréditée, telle qu'un IAM utilisateur. Ils APIs peuvent également être appelés par un IAM rôle différent, tel qu'un rôle d'AWS Lambda exécution. Cette IAM identité doit être autorisée à appeler AssumeRole et à TagSession utiliser le ChimeMessagingSampleAppUserRole.

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

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

Vous devez configurer le ChimeMessagingSampleAppUserRole avec une politique de confiance qui permet ChimeMessagingSampleAppServerRole d'appeler le STS AssumeRole APIdessus. Pour plus d'informations sur l'utilisation des politiques de confiance avec IAM les rôles, voir Comment utiliser les politiques de confiance avec IAM les rôles. Vous pouvez utiliser la AWS IAM console Roles pour ajouter cette politique auChimeMessagingSampleAppUserRole. L'exemple suivant illustre une relation de confiance typique.

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

Dans un exemple de déploiement, une EC2 instance Amazon ou une instance AWS Lambda est lancée avec leChimeMessagingSampleAppServerRole. Le serveur :

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

  2. Appelle STS AssumeRoleChimeMessagingSampleAppUserRole, avec une balise paramétrant le. ${aws:PrincipalTag/my_applications_user_id}

  3. Transfère les informations d'identification renvoyées lors de l'AssumeRoleappel à l'utilisateur.

L'exemple suivant montre la CLI commande permettant d'assumer un rôle à 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