Autenticazione delle applicazioni client per utenti finali - Amazon Chime SDK

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Autenticazione delle applicazioni client per utenti finali

Puoi anche eseguire la messaggistica Amazon Chime SDK da applicazioni client per utenti finali. Effettuare chiamate SDK da un servizio di back-endspiega come effettuare chiamate API come create-channel, e. send-channel-message list-channel-messages Le applicazioni client per utenti finali come browser e applicazioni mobili effettuano le stesse chiamate API. Le applicazioni client possono anche connettersi WebSocket per ricevere aggiornamenti in tempo reale su messaggi ed eventi sui canali di cui sono membri. Questa sezione spiega come fornire le credenziali IAM a un'applicazione client destinata a un utente specifico dell'istanza dell'app. Una volta che gli utenti finali dispongono di queste credenziali, possono effettuare le chiamate API mostrate in. Effettuare chiamate SDK da un servizio di back-end Per vedere una demo completa di un'applicazione client, vedi https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat. Per ulteriori informazioni sulla ricezione di messaggi in tempo reale dai canali a cui appartiene un'app client, consultaUtilizzo WebSockets per ricevere messaggi.

Fornire credenziali IAM agli utenti finali

La messaggistica Amazon Chime SDK si integra nativamente con le policy di AWS Identity and Access Management (IAM) per autenticare le richieste in entrata. La policy IAM definisce cosa può fare un singolo utente. Le policy IAM possono essere create per fornire credenziali limitate e circoscritte per ogni caso d'uso. Per ulteriori informazioni sulla creazione di policy per gli utenti di messaggistica di Amazon Chime SDK, consulta. Esempi di ruoli IAM

Se disponi di un provider di identità esistente, hai le seguenti opzioni per integrare la tua identità esistente con la messaggistica SDK Amazon Chime.

  • Puoi utilizzare il tuo provider di identità esistente per autenticare gli utenti e quindi integrare il servizio di autenticazione con AWS Security Token Service (STS) per creare il tuo servizio di vendita di credenziali per i clienti. STS fornisce API per l'assunzione di ruoli IAM.

  • Se disponi già di un provider di identità compatibile con SAML o OpenID, ti consigliamo di utilizzare Amazon Cognito Identity Pools, che astrae le chiamate away verso STS e. AWS AssumeRoleWithSAMLAssumeRoleWithWebIdentity Amazon Cognito si integra con OpenID, SAML e provider di identità pubbliche come Facebook, Login with Amazon, Google e Sign in with Apple.

Se non disponi di un provider di identità, puoi iniziare a usare i pool di utenti di Amazon Cognito. Per un esempio di come utilizzare Amazon Cognito con le funzionalità di messaggistica Amazon Chime SDK, consulta Creare funzionalità di chat nella tua applicazione con la messaggistica Amazon Chime SDK.

In alternativa, puoi utilizzare il AWS STSper creare il tuo servizio di vendita di credenziali o creare il tuo provider di identità.

Utilizzo di STS per vendere credenziali

Se disponi già di un IDP come ActiveDirectory LDAP e desideri implementare un servizio di vendita di credenziali personalizzato o concedere l'accesso alla chat ai partecipanti alla riunione non autenticati, puoi utilizzare l'API STS.AWSAssumeRole A tale scopo, devi prima creare un ruolo SDK di messaggistica Amazon Chime SDK. Per ulteriori informazioni sulla creazione di quel ruolo, consulta Creazione di un ruolo per delegare le autorizzazioni a un utente IAM.

Il ruolo IAM avrebbe le autorizzazioni per l'azione di messaggistica dell'SDK Amazon Chime utilizzata dall'applicazione, simili alle seguenti:

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

Per questo esempio, chiama questo ruolo il. ChimeMessagingSampleAppUserRole

Annota il tag di sessione nella ChimeMessagingSampleAppUserRolepolicy ${my_application_user_id} nella risorsa ARN dell'utente. Questo tag di sessione è parametrizzato nella chiamata AssumeRoleAPI per limitare le credenziali restituite alle autorizzazioni per un singolo utente.

Le TagSessionAPI AssumeRolee vengono chiamate utilizzando un'entità IAM già dotata di credenziali, ad esempio un utente IAM. Le API possono essere richiamate anche da un ruolo IAM diverso, ad esempio un ruolo di esecuzione.AWS Lambda Tale identità IAM deve disporre delle autorizzazioni per chiamare AssumeRole e TagSession attivare. ChimeMessagingSampleAppUserRole

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

Per questo esempio, chiama questo ruolo ChimeSampleAppServerRole.

È necessario impostare una politica di ChimeMessagingSampleAppUserRole fiducia che consenta di ChimeMessagingSampleAppServerRole richiamare l'AssumeRoleAPI STS su di esso. Per ulteriori informazioni sull'utilizzo delle politiche di fiducia con i ruoli IAM, consulta Come utilizzare le politiche di fiducia con i ruoli IAM. Puoi utilizzare la console AWS IAM Roles per aggiungere questa policy aChimeMessagingSampleAppUserRole. L'esempio seguente mostra una tipica relazione di fiducia.

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

In una distribuzione di esempio, AWS Lambda viene lanciata un'istanza Amazon EC2 o una con. ChimeMessagingSampleAppServerRole Il server quindi:

  1. Esegue qualsiasi autorizzazione specifica dell'applicazione sulle richieste di ricezione delle credenziali di un client.

  2. Attiva STS AssumeRoleChimeMessagingSampleAppUserRole, con un tag che parametrizza il. ${aws:PrincipalTag/my_applications_user_id}

  3. Inoltra le credenziali restituite nella AssumeRole chiamata all'utente.

L'esempio seguente mostra il comando CLI per assumere un ruolo per la fase 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