기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
최종 사용자 클라이언트 애플리케이션 인증
최종 사용자 클라이언트 애플리케이션에서 Amazon Chime SDK 메시징을 실행할 수도 있습니다. 백엔드 서비스에서 SDK 호출채널 생성, send-channel-message 및 와 같은 API 호출을 수행하는 방법에 대해 설명합니다. list-channel-messages 브라우저 및 모바일 애플리케이션과 같은 최종 사용자 클라이언트 애플리케이션은 이와 동일한 API 호출을 수행합니다. 클라이언트 애플리케이션을 통해 WebSocket 연결하여 멤버인 채널의 메시지 및 이벤트에 대한 실시간 업데이트를 수신할 수도 있습니다. 이 섹션에서는 특정 앱 인스턴스 사용자로 범위가 지정된 클라이언트 애플리케이션에 IAM 자격 증명을 제공하는 방법을 다룹니다. 최종 사용자는 이러한 자격 증명을 가지고 나면 에 표시된 대로 API 호출을 할 수 백엔드 서비스에서 SDK 호출 있습니다. 클라이언트 애플리케이션의 전체 데모를 보려면 https://github.com/aws-samples/ amazon-chime-sdk /tree/main/apps/chat을
최종 사용자에게 IAM 자격 증명 제공
Amazon Chime SDK 메시징은 기본적으로 AWS 자격 증명 및 액세스 관리 (IAM) 정책과 통합되어 수신 요청을 인증합니다. IAM 정책은 개별 사용자가 수행할 수 있는 작업을 정의합니다. IAM 정책은 사용 사례에 따라 범위가 축소된 제한된 자격 증명을 제공하도록 구성할 수 있습니다. Amazon Chime SDK 메시징 사용자를 위한 정책 생성에 대한 자세한 내용은 을 참조하십시오. IAM 역할 예시
기존 ID 공급자가 있는 경우 기존 ID를 Amazon Chime SDK 메시징과 통합하기 위한 다음과 같은 옵션이 있습니다.
기존 ID 공급자를 사용하여 사용자를 인증한 다음 인증 서비스를 STS (AWSSecurity Token Service) 와 통합하여 클라이언트를 위한 자체 자격 증명 판매 서비스를 만들 수 있습니다. STS는 IAM 역할을 맡기 위한 API를 제공합니다.
이미 SAML 또는 OpenID 호환 자격 증명 공급자가 있는 경우 AWS STS AssumeRoleWith SAML 및 에 대한 호출을 추상화하는 Amazon Cognito 자격 증명 풀을 사용하는 것이 좋습니다. AssumeRoleWithWebIdentity Amazon Cognito는 OpenID, SAML 및 페이스북, 아마존 로그인, 구글로 로그인, 애플로 로그인과 같은 퍼블릭 자격 증명 공급자와 통합됩니다.
자격 증명 공급자가 없는 경우 Amazon Cognito 사용자 풀을 시작할 수 있습니다. Amazon Chime SDK 메시징 기능과 함께 Amazon Cognito를 사용하는 방법의 예는 Amazon Chime SDK 메시징을 사용하여 애플리케이션에 채팅 기능 구축을
또는 를 사용하여 자체 자격 증명 벤딩 서비스를 만들거나 자체 ID 공급자를 구축할 수 있습니다. AWS STS
STS를 사용하여 자격 증명 판매하기
이미 ActiveDirectory LDAP와 같은 IDP가 있고 사용자 지정 자격 증명 벤딩 서비스를 구현하거나 인증되지 않은 회의 참석자에게 채팅 액세스 권한을 부여하려는 경우 STS API를 사용할 수 있습니다. AWS AssumeRole 이렇게 하려면 먼저 Chime 메시징 SDK 역할을 만들어야 합니다. 역할 생성에 대한 자세한 내용은 IAM 사용자에게 권한을 위임하기 위한 역할 생성을 참조하십시오.
IAM 역할에는 다음과 같이 애플리케이션에서 사용할 Amazon Chime SDK 메시징 작업에 대한 권한이 부여됩니다.
{ "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/*" ] } ] }
이 예제에서는 이 역할을 the 라고 ChimeMessagingSampleAppUserRole합니다.
사용자 ARN ${my_application_user_id}
리소스의 ChimeMessagingSampleAppUserRole정책에 있는 세션 태그를 기록해 둡니다. 이 세션 태그는 AssumeRoleAPI 호출에서 매개변수화되어 반환되는 자격 증명을 단일 사용자의 권한으로 제한합니다.
AssumeRoleAPI 호출은 IAM 사용자와 같이 이미 자격 증명이 있는 IAM 엔티티를 사용하여 호출됩니다. AWS Lambda실행 역할과 같은 다른 IAM 역할로 호출할 수도 있습니다. 해당 IAM ID에는 를 AssumeRole
호출할 권한이 있어야 합니다. ChimeMessagingSampleAppUserRole
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
my_aws_account_id
:role/ChimeMessagingSampleAppUserRole
" } ] }
이 예제에서는 이 역할을 the 라고 ChimeSampleAppServerRole합니다.
STS AssumeRole API를 호출할 수 있도록 하는 신뢰 정책을 설정해야 합니다. ChimeMessagingSampleAppUserRoleChimeMessagingSampleAppServerRole IAM 역할에 신뢰 정책을 사용하는 방법에 대한 자세한 내용은 IAM 역할에 신뢰 정책을 사용하는 방법을
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS":"arn:aws:iam::
my_aws_account_id
:role/ChimeMessagingSampleAppServerRole
" } "Action": "sts:AssumeRole" } ] }
샘플 배포에서는 Amazon EC2ChimeMessagingSampleAppServerRole
와 함께 시작됩니다. 그러면 서버는:
자격 증명을 받기 위한 클라이언트의 요청에 대해 애플리케이션별 인증을 수행합니다.
를
ChimeMessagingSampleAppUserRole
매개변수화하는 태그와 함께AssumeRole
STS를 호출합니다.${aws:PrincipalTag/my_applications_user_id}
AssumeRole
호출에서 반환된 자격 증명을 사용자에게 전달합니다.
다음 예에서는 2단계의 역할을 맡기 위한 CLI 명령을 보여 줍니다.
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