使用 AppKeys 和使用 - Amazon Chime SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AppKeys 和使用

您可以使用 AppKeys 和授權來限制從網路存取特定應用程式的 Amazon Chime SDK WebRTC 媒體工作階段

開發人員使用 Amazon Chime 開發套件建立可透過 UDP 傳送和接收即時影片的應用程式。應用程式使用者需要 UDP 存取CHIME_MEETINGS子網路。Organizations(網絡所有者)可以使用 AppKeys 和 TenantiDS 將訪問限制從其網絡僅訪問特定應用程序的 WebRTC 技術媒體會話。

範例 1:使用 AppKeys

如果應用程式 A 和應用程式 B 使用 Amazon Chime 開發套件,組織可以允許應用程式 A 從其網路存取 WebRTC 技術媒體工作階段,但會封鎖應用程式 B 和任何其他使用 Amazon Chime 開發套件的應用程式。Organizations 可以使用應用程序 A AppKey 和 HTTPS 代理來做到這一點。如需詳細資訊,請參閱限制對特定應用程序的訪問本主題稍後的〈〉。

範例 2:使用 AppKeys 和使用者

如果 App-A 可公開使用並被許多客戶使用,則組織可能想要允許 App-A 僅在其使用者屬於工作階段的一部分時,才允許 App-A 從其網路存取 WebRTC 媒體工作階段,並封鎖對所有其他 App-A 工作階段的存取。組 Organizations 可以通過使用應用程序的 AppKey,組織的 TenAntiD 和 HTTPS 代理來做到這一點。如需詳細資訊,請參閱限制對特定承租人的存取本主題稍後的〈〉。

若要使用 AppKeys 和 TenantiDS,您必須擁有 HTTPS 代理伺服器,該伺服器允許將 HTTPS 標頭新增至要求。下圖顯示了帳戶如何 AppKeys 工作。

顯示如何 AppKeys 和 Tenantids 控制應用程式和租用戶存取 WebRTC 技術工作階段的圖表。

在映像中,應用程式 A 具有租用戶 A-1 和 A-2,而應用程式 B 具有租用戶 B-1 和 B-2。在此情況下, AppKey 只允許應用程式 A 連線至 WebRTC 媒體工作階段,而租用戶識別碼只允許租用戶 A-1 至工作階段。

限制對特定應用程序的訪問

一個AppKey是 Amazon Chime 為每個帳戶建立的一致且獨特的 256 位元值。 AWS 如果您沒有 AppKey,可以向 Amazon Support 請求。如果您有多個 AWS 帳戶,您可以要求所有帳戶共 AppKey 用帳戶。

注意

您可以安全地 AppKeys 公開分享您的內容,並允許其他組織限制來自其網路的存取。

Amazon Chime SDK 會 AppKey 根據用於建立工作階段的 AWS 帳戶 ID,自動將每個 WebRTC 媒體工作階段與一個關聯。若要限制從網路存取特定應用程式,請執行下列動作:

  1. 透過 HTTPS 代理伺服器將所有輸出要求CHIME_MEETINGS路由至子網路。

  2. 設定 Proxy 伺服器,將下列標頭新增至CHIME_MEETINGS子網路的所有輸出要求:

    X-Amzn-Chime-App-Keys:以逗號分隔的允許 AppKeys清單。

    例如,X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C允許與這些應用程式相關聯的應 AppKeys 用程式存取子網路。

Amazon Chime 開發套件會檢查標頭的傳入 WebRTC 媒體工作階段連線,並套用下X-Amzn-Chime-App-Keys列邏輯:

  1. 如果標X-Amzn-Chime-App-Keys頭存在並包含會話 AppKey,請接受連接。

  2. 如果標X-Amzn-Chime-App-Keys頭存在但不包含會話 AppKey,則拒絕帶有 403 錯誤的連接。

  3. 如果標X-Amzn-Chime-App-Keys頭不存在,請接受連接。如果使用者可以從組織的網路外部存取應用程式,他們也可以存取工作階段。

限制對特定承租人的存取

TenAntiD 是由開發人員創建的不透明標識符。請記住以下有關帳戶的信息:

  • TenantiID 不保證在應用程式之間是唯一的,因此您必須 AppKey為每個 TenAntiD 清單指定一個。

  • 帳戶是感性的病例。輸入它們完全按照開發商的規定。

  • 一個組織可以限制對多個應用程式的存取,但只能為其中一些應用程式指定 TenAntiDS。沒有使用帳戶的應用程式可以連接到所有 WebRTC 技術媒體工作階段。

要將媒體會話與 TenAntiDS 相關聯,開發人員必須首先將TenantIds屬性和 TenantiDS 列表添加到或請求中。CreateMeetingCreateMeetingWithAttendees

例如:

CreateMeeting(..., TenantIds : [ tenantId1, tenantId2 ] )

若要限制從組織網路存取特定應用程式中的 WebRTC 媒體工作階段,請執行下列動作:

  1. 請遵循 限制對特定應用程序的訪問 中的步驟。

  2. 設定 HTTPS 代理伺服器以在輸出連線上新增X-Amzn-Chime-Tenants標頭。包含以下範例所示分隔的清單 AppKeys 和 Tenantids 清單:X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2

Amazon Chime 開發套件會檢查標頭的傳入 WebRTC 媒體工作階段連線,並套用下X-Amzn-Chime-Tenants列邏輯:

  • 如果標頭包含會話AppKey:tenantId,請接受連接。

  • 如果標頭包含會話AppKey但不匹配tenantId,則拒絕連接,並出現 403 錯誤。

  • 如果標頭包含會話AppKey,請接受連接。

  • 如果標頭包含會話AppKey,但會話沒有至少允許一個tenantId,則拒絕連接 403 錯誤。這可能是開發人員錯誤。

  • 如果標頭不存在,請接受連接。如果使用者可以從組織的網路外部存取應用程式,他們也可以存取所有工作階段。

標頭範例

下列範例會示範一些在 HTTPS 標頭中使用 AppKeys 和管理員的方法。

一個應用程式與一個租戶

X-Amzn-Chime-App-Keys: AppKey

X-Amzn-Chime-Tenants: AppKey:orgId

使用者只能在指定的應用程式中存取組織的 WebRTC 媒體工作階段。所有其他應用程序都被阻止。

一個應用程序與兩個租戶

X-Amzn-Chime-App-Keys: AppKey

X-Amzn-Chime-Tenants: AppKey:engineeringId,salesId

用戶只能訪問指定應用程序中的工程和銷售媒體會話。所有其他應用程序都被阻止。

兩個應用程序,一個僅限於一個租戶

X-Amzn-Chime-App-Keys: AppKey1,AppKey2

X-Amzn-Chime-Tenants: AppKey1:orgId

使用者只能存取 App 1 中組織的媒體工作階段,以及應用程式 2 中的任何工作階段。所有其他應用程序都被阻止。