本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
驗證 Amazon Chime SDK 訊息的最終使用者用戶端應用程式
您也可以從最終使用者用戶端應用程式執行 Amazon Chime SDK 訊息。 從後端服務對 Amazon Chime SDK 訊息進行 SDK 呼叫 說明如何進行 API 呼叫,例如 create-channel、send-channel-message 和 list-channel-messages。瀏覽器和行動應用程式等最終使用者用戶端應用程式會進行這些相同的 API 呼叫。用戶端應用程式也可以透過 WebSocket 連線,以接收其所屬頻道的訊息和事件的即時更新。本節說明如何將 IAM 登入資料提供給範圍限定於特定應用程式執行個體使用者的用戶端應用程式。一旦最終使用者擁有這些登入資料,他們可以進行 中顯示的 API 呼叫從後端服務對 Amazon Chime SDK 訊息進行 SDK 呼叫。若要查看用戶端應用程式的完整示範,請參閱 https://https://github.com/aws-samples/amazon-chime-sdk/tree/main/apps/chat
提供 IAM 登入資料給最終使用者
Amazon Chime SDK 訊息原生與 AWS Identity and Access Management (IAM) 政策整合,以驗證傳入的請求。IAM 政策定義個別使用者可執行的操作。您可以製作 IAM 政策,為您的使用案例提供縮小範圍的有限登入資料。如需為 Amazon Chime SDK 訊息使用者建立政策的詳細資訊,請參閱 Amazon Chime SDK 訊息的範例 IAM 角色。
如果您有現有的身分提供者,您有下列選項可將現有的身分與 Amazon Chime SDK 訊息整合。
-
您可以使用現有的身分提供者來驗證使用者,然後將身分驗證服務與 AWS Security Token Service (STS) 整合,為用戶端建立自己的憑證販賣服務。STS 提供用於擔任 IAM 角色的 APIs。
-
如果您已有 SAML 或 OpenID 相容身分提供者,建議您使用 Amazon Cognito 身分集區,這會抽象化對 AWS STS AssumeRoleWithSAML和 的呼叫AssumeRoleWithWebIdentity。Amazon Cognito 與 OpenID、SAML 和公有身分提供者整合,例如 Facebook、Login with Amazon、Google 和 Sign in with Apple。
如果您沒有身分提供者,您可以開始使用 Amazon Cognito 使用者集區。如需如何使用 Amazon Cognito 搭配 Amazon Chime SDK 訊息功能的範例,請參閱使用 Amazon Chime SDK 訊息在您的應用程式中建置聊天功能
或者,您可以使用 AWS STS建立自己的登入資料販賣服務,或建置自己的身分提供者。
使用 STS 提供登入資料
如果您已經有 ActiveDirectory LDAP 等 IDP,而且想要實作自訂憑證販賣服務,或授予未驗證會議出席者聊天的存取權,您可以使用 AWS STS AssumeRole API。若要這樣做,請先建立 Amazon Chime SDK 訊息 SDK 角色。如需建立該角色的詳細資訊,請參閱建立角色以將許可委派給 IAM 使用者。
IAM 角色將具有您應用程式將使用之 Amazon Chime SDK 訊息動作的許可,如下所示:
在此範例中,將此角色稱為 ChimeMessagingSampleAppUserRole。
請注意使用者 ARN 資源中 ChimeMessagingSampleAppUserRole 政策${my_application_user_id}中的工作階段標籤。此工作階段標籤會在 AssumeRole API 呼叫中參數化,以將傳回的登入資料限制為單一使用者的許可。
AssumeRole 和 TagSession APIs 會使用已登入的 IAM 實體呼叫,例如 IAM 使用者。APIs 也可以由不同的 IAM 角色呼叫,例如AWS Lambda 執行角色。該 IAM 身分必須具有在 ChimeMessagingSampleAppUserRole TagSession上呼叫 AssumeRole和 的許可。
在此範例中,將此角色稱為 ChimeSampleAppServerRole。
您需要ChimeMessagingSampleAppUserRole使用允許 ChimeMessagingSampleAppServerRole呼叫 STS AssumeRole API 的信任政策來設定 。如需搭配 IAM 角色使用信任政策的詳細資訊,請參閱如何搭配 IAM 角色使用信任政策。 ChimeMessagingSampleAppUserRole。下列範例顯示典型的信任關係。
在範例部署中,會使用 AWS Lambda 啟動 Amazon EC2ChimeMessagingSampleAppServerRole。然後伺服器:
-
對用戶端接收憑證的請求執行任何應用程式特定授權。
-
在
AssumeRole上呼叫 STSChimeMessagingSampleAppUserRole,標籤會參數化${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