Authentifizierung von Endbenutzer-Client-Anwendungen - Amazon Chime SDK

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Authentifizierung von Endbenutzer-Client-Anwendungen

Sie können Amazon Chime SDK-Messaging auch von Endbenutzer-Clientanwendungen aus ausführen.Tätigen von SDK-Aufrufen von einem Backend-Diensterklärt, wie man API-Aufrufe wie create-channel, send-channel-message, und list-channel-messagesaus. Endbenutzer-Client-Anwendungen wie Browser und mobile Anwendungen führen dieselben API-Aufrufe durch. Client-Anwendungen können auch eine Verbindung herstellen über WebSocket um Echtzeit-Updates zu Nachrichten und Ereignissen für Kanäle zu erhalten, in denen sie Mitglieder sind. In diesem Abschnitt wird beschrieben, wie IAM-Anmeldeinformationen für eine Client-Anwendung vergeben werden, die auf einen bestimmten App-Instanzbenutzer beschränkt ist. Sobald die Endbenutzer über diese Anmeldeinformationen verfügen, können sie die inTätigen von SDK-Aufrufen von einem Backend-Dienstaus. Eine vollständige Demo einer Client-Anwendung finden Sie unterhttps://github.com/aws-samples/amazon-chime-sdk/baum/main/apps/chataus. Weitere Hinweise zum Empfangen von Echtzeitnachrichten von den Kanälen, zu denen eine Client-App gehört, finden Sie unterbenutzen WebSockets um Nachrichten zu empfangenaus.

Bereitstellung von IAM-Anmeldeinformationen für Endbenutzer

Amazon Chime SDK-Messaging lässt sich nativ inAWSIdentity and Access Management (IAM) -Richtlinien zur Authentifizierung eingehender Anforderungen Die IAM-Richtlinie definiert, was ein einzelner Benutzer tun kann. IAM-Richtlinien können so gestaltet werden, dass sie eingeschränkte Anmeldeinformationen für Ihren Anwendungsfall bereitstellen. Weitere Informationen zum Erstellen von -Richtlinien für Amazon Chime SDK-Messaging-Benutzer finden Sie unterIAM-Rollenaus.

Wenn Sie bereits über einen Identitätsanbieter verfügen, haben Sie die folgenden Optionen, um Ihre vorhandene Identität in das Amazon Chime SDK-Messaging zu integrieren.

  • Sie können Ihren vorhandenen Identitätsanbieter verwenden, um Benutzer zu authentifizieren und den Authentifizierungsdienst mit zu integrierenAWSSecurity Token Service (STS), um Ihren eigenen Verkaufsservice für Anmeldeinformationen zu erstellen. STS stellt APIs für die Annahme von IAM-Rollen bereit.

  • Wenn Sie bereits einen SAML- oder OpenID-kompatiblen Identitätsanbieter haben, empfiehlt Amazon Chime die Verwendung von AmazonCognito-Identitätspools, welche abstrakte Away ruftAWSSTSAssumeRoleWithSAMLundAssumeRoleWithWebIdentityaus. Amazon Cognito Cognito-Integration mit OpenID-, SAML- und öffentlichen Identitätsanbietern wie Facebook, Login with Amazon, Google und Sign in with Apple.

Wenn Sie keinen Identitätsanbieter haben, können Sie mit Amazon Cognito User Pools beginnen. Ein Beispiel für die Verwendung von Amazon Cognito Cognito-Funktionen mit den Amazon Chime SDK-Messaging-Funktionen finden Sie unterIntegrieren Sie Chat-Funktionen in Ihre Anwendung mit Amazon Chime SDK-Messagingaus.

Sie können aber auch die verwendenAWS STSum Ihren eigenen Verkaufsservice für Anmeldeinformationen zu erstellen oder Ihren eigenen Identitätsanbieter aufzubauen.

Verwenden von STS zum Ausgeben von Anmeldeinformationen

Wenn Sie bereits einen IDP wie ActiveDirectory LDAP, und wenn Sie einen benutzerdefinierten Verkaufsservice für Anmeldeinformationen implementieren oder nicht authentifizierten Meetingteilnehmern Zugriff auf den Chat gewähren möchten, können Sie denAWSSTS AssumeRole APIaus. Dazu erstellen Sie zunächst eine Chime Messaging SDK-Rolle. Weitere Informationen zum Erstellen dieser Rolle finden Sie unterErstellen einer Rolle zum Delegieren von Berechtigungen an einen IAM-Benutzeraus.

Die IAM-Rolle hätte Berechtigungen für die Chime Messaging SDK-Aktion, die Ihre Anwendung verwenden würde, ähnlich der folgenden:

{ "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/${my_applications_user_id}", "{chime_app_instance_arn}/channel/*" ] } ] }

In diesem Beispiel nennen Sie die RolleChimeMessagingSampleAppUserRoleaus.

Beachten Sie das Session-Tag imChimeMessagingSampleAppUserRolePolitik${my_application_user_id}in der ARN-Ressource des Benutzers. Dieses Session-Tag ist in der AssumeRoleAPI-Aufruf zur Beschränkung der zurückgegebenen Anmeldeinformationen auf Berechtigungen für einen einzelnen Benutzer.

Die AssumeRoleDer API-Aufruf wird mithilfe einer bereits angemeldeten IAM-Entität wie einem IAM-Benutzer aufgerufen. Es kann auch von einer anderen IAM-Rolle aufgerufen werden, z. B.AWS LambdaRolle ausführenaus. Die IAM-Identität muss über Berechtigungen zum Aufrufen vonAssumeRoleauf derChimeMessagingSampleAppUserRoleaus.

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

In diesem Beispiel nennen Sie die RolleChimeSampleAppServerRoleaus.

Sie müssen die einrichtenChimeMessagingSampleAppUserRolemit einer Vertrauensrichtlinie, die es erlaubtChimeMessagingSampleAppServerRolerufen Sie dieSTS AssumeRole APIdrauf. Weitere Informationen zur Verwendung von Vertrauensrichtlinien mit IAM-Rollen finden Sie unterSo verwenden Sie Vertrauensrichtlinien mit IAM-Rollenaus. Sie können dasAWSIAM Roles Console, um diese Richtlinie zumChimeMessagingSampleAppUserRoleaus. Das folgende Beispiel zeigt eine typische Vertrauensbeziehung.

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

In einer Beispielbereitstellung wird einAmazon EC2-Instanz, oder eineAWS Lambdawird mit demChimeMessagingSampleAppServerRoleaus. Der Server dann:

  1. Führt jede anwendungsspezifische Autorisierung für die Anforderungen eines Clients aus, Anmeldeinformationen zu erhalten.

  2. Aufrufen von STSAssumeRoleaufChimeMessagingSampleAppUserRole, mit einem Tag, der das${aws:PrincipalTag/my_applications_user_id}aus.

  3. Leitet die Anmeldeinformationen weiter, die in derAssumeRolerufen Sie den Benutzer an.

Das folgende Beispiel zeigt den CLI-Befehl zum Übernehmen einer Rolle für Schritt 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