

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 für Amazon Chime SDK-Messaging
<a name="auth-client-apps"></a>

Sie können Amazon Chime SDK-Messaging auch von Endbenutzer-Client-Anwendungen aus ausführen. [SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen](call-from-backend.md)erklärt, wie API-Aufrufe wie create-channel, send-channel-message und list-channel-messages getätigt werden. Client-Anwendungen für Endbenutzer wie Browser und mobile Anwendungen führen dieselben API-Aufrufe durch. Client-Anwendungen können sich auch über Kanäle verbinden WebSocket , in denen sie Mitglied sind, um in Echtzeit Updates zu Nachrichten und Ereignissen zu erhalten. In diesem Abschnitt wird beschrieben, wie Sie einer Client-Anwendung, die auf einen bestimmten App-Instanzbenutzer beschränkt ist, IAM-Anmeldeinformationen zuweisen. Sobald die Endbenutzer über diese Anmeldeinformationen verfügen, können sie die unter aufgeführten API-Aufrufe tätigen. [SDK-Aufrufe von einem Back-End-Service für Amazon Chime SDK-Nachrichten tätigen](call-from-backend.md) Eine vollständige Demo einer Client-Anwendung finden Sie unter [https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat](https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat). Weitere Informationen zum Empfangen von Echtzeitnachrichten von den Kanälen, zu denen eine Client-App gehört, finden Sie unter[Wird verwendet WebSockets , um Nachrichten im Amazon Chime SDK-Messaging zu empfangen](websockets.md).

## Bereitstellung von IAM-Anmeldeinformationen für Endbenutzer
<a name="connect-id-provider"></a>

Amazon Chime SDK-Messaging lässt sich nativ in AWS Identity and Access Management (IAM) -Richtlinien integrieren, um eingehende Anfragen zu authentifizieren. Die IAM-Richtlinie definiert, was ein einzelner Benutzer tun kann. IAM-Richtlinien können so gestaltet werden, dass sie begrenzte Anmeldedaten für Ihren Anwendungsfall bereitstellen. Weitere Informationen zum Erstellen von Richtlinien für Amazon Chime SDK-Messaging-Benutzer finden Sie unter[Beispiele für IAM-Rollen für Amazon Chime SDK-Messaging](iam-roles.md).

Wenn Sie bereits über einen Identitätsanbieter verfügen, haben Sie die folgenden Optionen, um Ihre bestehende Identität in das Amazon Chime SDK-Messaging zu integrieren.
+ Sie können Ihren vorhandenen Identitätsanbieter verwenden, um Benutzer zu authentifizieren, und dann den Authentifizierungsdienst in den AWS Security Token Service (STS) integrieren, um Ihren eigenen Verkaufsservice für Anmeldeinformationen für Kunden einzurichten. STS bietet APIs für die Übernahme von IAM-Rollen.
+ Wenn Sie bereits über einen SAML- oder OpenID-kompatiblen Identitätsanbieter verfügen, empfehlen wir die Verwendung von Amazon [Cognito Identity Pools](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html), die Aufrufe an AWS STS und abstrahieren. [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) Amazon Cognito lässt sich in OpenID, SAML und öffentliche Identitätsanbieter wie Facebook, Login with Amazon, Google und Sign in with Apple integrieren.

Wenn Sie keinen Identitätsanbieter haben, können Sie mit Amazon Cognito User Pools beginnen. Ein Beispiel für die Verwendung von Amazon Cognito mit den Amazon Chime SDK-Messaging-Funktionen finden Sie unter [Integrieren von Chat-Funktionen in Ihre Anwendung mit Amazon Chime](https://aws.amazon.com/blogs/business-productivity/build-chat-features-into-your-application-with-amazon-chime-sdk-messaging/) SDK-Messaging. 

Alternativ können Sie den verwenden, [AWS STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html)um Ihren eigenen Verkaufsservice für Anmeldeinformationen oder Ihren eigenen Identitätsanbieter einzurichten.

**Verwenden Sie STS, um Anmeldeinformationen zu verkaufen**  
[Wenn Sie bereits über einen IDP wie ActiveDirectory LDAP verfügen und einen benutzerdefinierten Verkaufsservice für Anmeldeinformationen implementieren oder nicht authentifizierten Besprechungsteilnehmern Zugriff auf den Chat gewähren möchten, können Sie die STS-API verwenden.AWSAssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) Dazu erstellen Sie zunächst eine Amazon Chime SDK-Messaging-SDK-Rolle. Weitere Informationen zum Erstellen dieser Rolle finden Sie unter Eine Rolle [erstellen, um Berechtigungen an einen IAM-Benutzer zu delegieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

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

------
#### [ 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/*"
    ]
        }
    ]
}
```

------

Nennen Sie diese Rolle in diesem Beispiel die. *ChimeMessagingSampleAppUserRole*

Notieren Sie sich das Sitzungs-Tag in der *ChimeMessagingSampleAppUserRole*Richtlinie `${my_application_user_id}` in der Benutzer-ARN-Ressource. Dieses Sitzungs-Tag wird im [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)API-Aufruf parametrisiert, um die zurückgegebenen Anmeldeinformationen auf Berechtigungen für einen einzelnen Benutzer zu beschränken.

Die [https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_TagSesstion.html)APIs [https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)und werden mithilfe einer bereits mit Anmeldeinformationen versehenen IAM-Entität aufgerufen, z. B. eines IAM-Benutzers. [Die APIs können auch von einer anderen IAM-Rolle aufgerufen werden, z. B. von einer Ausführungsrolle.AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) Diese IAM-Identität muss über Berechtigungen zum Aufrufen `AssumeRole` und `TagSession` Aktivieren von verfügen. *ChimeMessagingSampleAppUserRole* 

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

****  

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

------

 Nennen Sie diese Rolle in diesem Beispiel die *ChimeSampleAppServerRole*.

Sie müssen das `ChimeMessagingSampleAppUserRole` mit einer Vertrauensrichtlinie einrichten, die es ermöglicht, `ChimeMessagingSampleAppServerRole` die [AssumeRoleSTS-API darauf](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) aufzurufen. Weitere Informationen zur Verwendung von Vertrauensrichtlinien mit IAM-Rollen finden Sie unter [So verwenden Sie Vertrauensrichtlinien mit IAM-Rollen](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/). Sie können die AWS IAM-Rollenkonsole verwenden, um diese Richtlinie zur hinzuzufügen. `ChimeMessagingSampleAppUserRole` Das folgende Beispiel zeigt eine typische Vertrauensbeziehung.

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

****  

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

------

 In einer Beispielbereitstellung wird eine [Amazon EC2 EC2-Instance](https://aws.amazon.com/ec2/) oder AWS Lambda eine mit dem `ChimeMessagingSampleAppServerRole` gestartet. Der Server dann:

1. Führt alle anwendungsspezifischen Autorisierungen für die Anfragen eines Clients zum Empfang von Anmeldeinformationen durch.

1. Ruft STS `AssumeRole` on auf`ChimeMessagingSampleAppUserRole`, wobei ein Tag das parametrisiert. `${aws:PrincipalTag/my_applications_user_id}`

1. Leitet die beim `AssumeRole` Anruf zurückgegebenen Anmeldeinformationen an den Benutzer weiter.

Das folgende Beispiel zeigt den CLI-Befehl zur Übernahme 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}} ` 