Autenticación de las aplicaciones cliente de los usuarios finales - Amazon Chime SDK

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Autenticación de las aplicaciones cliente de los usuarios finales

También puede ejecutar la mensajería del SDK de Amazon Chime desde aplicaciones cliente de usuario final. Realizar llamadas al SDK desde un servicio de back-endexplica cómo realizar llamadas a la API, como create-channel, y. send-channel-message list-channel-messages Las aplicaciones cliente para usuarios finales, como los navegadores y las aplicaciones móviles, realizan estas mismas llamadas a la API. Las aplicaciones cliente también pueden conectarse WebSocket para recibir actualizaciones en tiempo real sobre los mensajes y eventos en los canales de los que son miembros. En esta sección se explica cómo proporcionar credenciales de IAM a una aplicación cliente destinada a un usuario de instancia de aplicación específico. Una vez que los usuarios finales tengan estas credenciales, podrán realizar las llamadas a la API que se muestran en Realizar llamadas al SDK desde un servicio de back-end. Para ver una demostración completa de una aplicación cliente, consulte https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat. Para obtener más información sobre la recepción de mensajes en tiempo real desde los canales a los que pertenece una aplicación cliente, consulte Se utiliza WebSockets para recibir mensajes.

Proporcionar credenciales de IAM a los usuarios finales

La mensajería del SDK de Amazon Chime se integra de forma nativa con las políticas de AWS Identity and Access Management (IAM) (IAM) para autenticar las solicitudes entrantes. La política de IAM define lo que puede hacer un usuario individual. Las políticas de IAM se pueden diseñar para proporcionar credenciales limitadas y con un alcance limitado para su caso de uso. Para obtener más información acerca de la creación de políticas para los usuarios de mensajería de Amazon Chime SDK, consulte Ejemplos de roles de IAM.

Si ya tiene un proveedor de identidad, tiene las siguientes opciones para integrar su identidad actual con la mensajería de Amazon Chime SDK.

  • Puede utilizar su proveedor de identidad actual para autenticar a los usuarios y, a continuación, integrar el servicio de autenticación con el AWS Security Token Service (STS) para crear su propio servicio de venta de credenciales para los clientes. STS proporciona API para asumir los roles de IAM.

  • Si ya tiene un proveedor de identidad compatible con SAML o OpenID, le recomendamos que utilice los grupos de identidades de Amazon Cognito, que eliminan las llamadas a STS y. AWS AssumeRoleWithSAMLAssumeRoleWithWebIdentity Amazon Cognito se integra con OpenID, SAML y los proveedores de identidad pública, como Facebook, Login with Amazon, Google y Inicio de sesión con Apple.

Si no tiene un proveedor de identidad, puede empezar a utilizar los grupos de usuarios de Amazon Cognito. Para ver un ejemplo de cómo usar Amazon Cognito con las características de mensajería de Amazon Chime SDK, consulte Crear características de chat en su aplicación con la mensajería de Amazon Chime SDK.

Como alternativa, puede utilizar AWS STS para crear su propio servicio de venta de credenciales o crear su propio proveedor de identidad.

Uso de STS para vender credenciales

Si ya tiene un IDP como ActiveDirectory LDAP y desea implementar un servicio de venta de credenciales personalizado o conceder acceso al chat a los asistentes a la reunión no autenticados, puede utilizar la API de STS.AWSAssumeRole Para ello, primero debe crear un rol de SDK de mensajería del SDK de Amazon Chime. Para obtener más información acerca de cómo crear ese rol, consulte Crear un rol para delegar permisos a un usuario de IAM.

La función de IAM tendría permisos para la acción de mensajería del SDK de Amazon Chime que utilizaría su aplicación, de forma similar a la siguiente:

{ "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/*" ] } ] }

En este ejemplo, llame a este rol el. ChimeMessagingSampleAppUserRole

Anote la etiqueta de sesión en la ChimeMessagingSampleAppUserRolepolítica ${my_application_user_id} del recurso ARN del usuario. Esta etiqueta de sesión está parametrizada en la llamada a la AssumeRoleAPI para limitar las credenciales devueltas a los permisos de un solo usuario.

TagSessionLas API AssumeRoley se llaman mediante una entidad de IAM ya acreditada, como un usuario de IAM. También se puede llamar a las API mediante una función de IAM diferente, como una función de ejecución.AWS Lambda Esa identidad de IAM debe tener permisos para realizar llamadas AssumeRole y activarse TagSession en. ChimeMessagingSampleAppUserRole

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

En este ejemplo, llame a este rol ChimeSampleAppServerrol.

Debe configurarlo ChimeMessagingSampleAppUserRole con una política de confianza que le permita llamar ChimeMessagingSampleAppServerRole a la AssumeRoleAPI STS que contiene. Para obtener más información sobre el uso de políticas de confianza con roles de IAM, consulte Cómo usar las políticas de confianza con roles de IAM. Puede utilizar la consola de roles de AWS IAM para añadir esta política a. ChimeMessagingSampleAppUserRole El siguiente ejemplo muestra una relación de confianza típica.

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

En una implementación de muestra, se lanza una instancia de Amazon EC2 o AWS Lambda una con. ChimeMessagingSampleAppServerRole A continuación, el servidor:

  1. Realiza cualquier autorización específica de la aplicación en relación con las solicitudes de un cliente para recibir credenciales.

  2. Llama a STS AssumeRole en ChimeMessagingSampleAppUserRole, con una etiqueta que parametriza el ${aws:PrincipalTag/my_applications_user_id}.

  3. Reenvía al usuario las credenciales devueltas en la llamada de AssumeRole.

El siguiente ejemplo muestra el comando CLI para asumir un rol en el paso 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