Verwenden von AppKeys und TenantIDs - 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.

Verwenden von AppKeys und TenantIDs

Sie können AppKeys und TenantIDs verwenden, um den Zugriff von einem Netzwerk auf die WebRTC-Mediensitzungen des Amazon Chime SDK bestimmter Anwendungen zu beschränken.

Entwickler verwenden das Amazon Chime SDK, um Anwendungen zu erstellen, die Echtzeit-Videos über UDP senden und empfangen. Anwendungsbenutzer benötigen UDP-Zugriff auf das CHIME_MEETINGS Subnetz. Organisationen (Netzwerkbesitzer) können AppKeys und TenantIDs verwenden, um den Zugriff von ihrem Netzwerk auf die WebRTC-Mediensitzungen einer bestimmten Anwendung zu beschränken.

Beispiel 1: Verwenden von AppKeys

Wenn App-A und App-B das Amazon Chime SDK verwenden, kann eine Organisation App-A den Zugriff auf die WebRTC-Mediensitzungen von ihrem Netzwerk aus erlauben, aber App-B und alle anderen Anwendungen blockieren, die das Amazon Chime SDK verwenden. Organisationen können dies mit App-A AppKey und einem HTTPS-Proxy tun. Weitere Informationen finden Sie unter weiter Beschränken des Zugriffs auf eine bestimmte Anwendungunten in diesem Thema.

Beispiel 2: Verwenden von AppKeys und TenantIDs

Wenn App-A öffentlich verfügbar ist und von vielen Kunden verwendet wird, möchte eine Organisation App-A möglicherweise nur dann Zugriff auf WebRTC-Mediensitzungen von ihrem Netzwerk gewähren, wenn ihre Benutzer Teil der Sitzung sind, und den Zugriff auf alle anderen App-A-Sitzungen blockieren. Organisationen können dies tun AppKey, indem sie die der Anwendung, die TenantID der Organisation und einen HTTPS-Proxy verwenden. Weitere Informationen finden Sie unter weiter Beschränken des Zugriffs auf einen bestimmten Mandantenunten in diesem Thema.

Um AppKeys und TenantIDs verwenden zu können, benötigen Sie einen HTTPS-Proxy-Server, der das Hinzufügen von HTTPS-Headern zu einer Anforderung ermöglicht. Das folgende Diagramm zeigt, wie AppKeys und TenantIDs funktionieren.


   Diagramm, das zeigt, wie  AppKeys und TenantIDs den Anwendungs- und Mandantenzugriff auf eine WebRTC-Sitzung steuern.

Im Image hat App-A die Mandanten A-1 und A-2 und App-B die Mandanten B-1 und B-2. In diesem Fall erlaubt die AppKey nur App-A, eine Verbindung mit der WebRTC-Mediensitzung herzustellen, und die Mandanten-ID gibt nur Tenant A-1 für die Sitzung zu.

Beschränken des Zugriffs auf eine bestimmte Anwendung

Ein AppKey ist ein konsistenter, eindeutiger 256-Bit-Wert, den Amazon Chime für jedes AWS Konto erstellt. Wenn Sie kein haben AppKey, können Sie eines beim Amazon Support anfordern. Wenn Sie mehrere AWS Konten haben, können Sie eine gemeinsame AppKey für alle Ihre Konten anfordern.

Anmerkung

Sie können Ihre sicher AppKeys öffentlich freigeben und es anderen Organisationen ermöglichen, den Zugriff von ihren Netzwerken aus zu beschränken.

Das Amazon Chime SDK ordnet automatisch jede WebRTC-Mediensitzung einem AppKey basierend auf der AWS Konto-ID zu, die zum Erstellen der Sitzung verwendet wurde. Gehen Sie wie folgt vor, um den Zugriff von Ihrem Netzwerk auf bestimmte Anwendungen zu beschränken:

  1. Leiten Sie alle ausgehenden Anfragen über einen HTTPS-Proxy-Server an das CHIME_MEETINGS Subnetz weiter.

  2. Konfigurieren Sie den Proxy-Server so, dass er allen ausgehenden Anfragen an das CHIME_MEETINGS Subnetz den folgenden Header hinzufügt:

    X-Amzn-Chime-App-Keys: Durch Komma getrennte Liste der zulässigen AppKeys.

    Beispielsweise X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C ermöglicht den Apps, die diesen zugeordnet sind AppKeys , den Zugriff auf das Subnetz.

Das Amazon Chime SDK prüft eingehende WebRTC-Mediensitzungsverbindungen auf den X-Amzn-Chime-App-Keys Header und wendet die folgende Logik an:

  1. Wenn der -X-Amzn-Chime-App-KeysHeader vorhanden ist und die der Sitzung enthält AppKey, akzeptieren Sie die Verbindung.

  2. Wenn der -X-Amzn-Chime-App-KeysHeader vorhanden ist, aber nicht die der Sitzung enthält AppKey, lehnen Sie die Verbindung mit dem Fehler 403 ab.

  3. Wenn der X-Amzn-Chime-App-Keys Header nicht vorhanden ist, akzeptieren Sie die Verbindung. Wenn Benutzer von außerhalb des Organisationsnetzwerks auf die Anwendung zugreifen können, können sie auch auf die Sitzung zugreifen.

Beschränken des Zugriffs auf einen bestimmten Mandanten

Eine TenantID ist eine undurchsichtige Kennung, die von Entwicklern erstellt wurde. Denken Sie an Folgendes zu TenantIDs:

  • TenantIDs sind nicht garantiert eindeutig zwischen Anwendungen, daher müssen Sie für jede TenantID-Liste einen AppKey angeben.

  • TenantIDs unterscheiden zwischen Groß- und Kleinschreibung. Geben Sie sie genau wie vom Entwickler vorgeschrieben ein.

  • Eine Organisation kann den Zugriff auf mehrere Anwendungen einschränken, aber nur TenantIDs für einige dieser Anwendungen angeben. Anwendungen ohne TenantIDs können eine Verbindung zu allen WebRTC-Mediensitzungen herstellen.

Um eine Mediensitzung mit TenantIDs zu verknüpfen, muss ein Entwickler zuerst die TenantIds Eigenschaft und eine Liste von TenantIDs zu einer - CreateMeeting oder -CreateMeetingWithAttendeesAnforderung hinzufügen.

Beispielsweise:

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

Gehen Sie wie folgt vor, um den Zugriff vom Netzwerk einer Organisation auf ihre WebRTC-Mediensitzung in bestimmten Anwendungen zu beschränken:

  1. Führen Sie die Schritte unter Beschränken des Zugriffs auf eine bestimmte Anwendung aus.

  2. Konfigurieren Sie den HTTPS-Proxy-Server, um einen -X-Amzn-Chime-TenantsHeader für ausgehende Verbindungen hinzuzufügen. Fügen Sie eine Liste von AppKeys und TenantIDs ein, die wie in diesem Beispiel gezeigt getrennt sind: X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2

Das Amazon Chime SDK prüft eingehende WebRTC-Mediensitzungsverbindungen auf den X-Amzn-Chime-Tenants Header und wendet die folgende Logik an:

  • Wenn der -Header den der Sitzung enthältAppKey:tenantId, akzeptieren Sie die Verbindung.

  • Wenn der -Header den der Sitzung enthält, AppKey aber nicht übereinstimmttenantId, lehnen Sie die Verbindung mit dem Fehler 403 ab.

  • Wenn der -Header die der Sitzung nicht enthältAppKey, akzeptieren Sie die Verbindung.

  • Wenn der -Header den der Sitzung enthältAppKey, für die Sitzung jedoch nicht mindestens ein zulässiger vorhanden isttenantId, lehnen Sie die Verbindung mit dem Fehler 403 ab. Dies kann ein Entwicklerfehler sein.

  • Wenn der Header nicht vorhanden ist, akzeptieren Sie die Verbindung. Wenn Benutzer von außerhalb des Organisationsnetzwerks auf die Anwendung zugreifen können, können sie auch auf alle Sitzungen zugreifen.

Beispiele für HTTPS-Header

Die folgenden Beispiele zeigen einige der Verwendungsmöglichkeiten von AppKeys und TenantIDs in HTTPS-Headern.

Eine App mit einem Mandanten

X-Amzn-Chime-App-Keys: AppKey

X-Amzn-Chime-Tenants: AppKey:orgId

Benutzer können nur auf die WebRTC-Mediensitzungen der Organisation in der angegebenen App zugreifen. Alle anderen Apps sind blockiert.

Eine App mit zwei Mandanten

X-Amzn-Chime-App-Keys: AppKey

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

Benutzer können nur auf die Mediensitzungen für Technik und Vertrieb in der angegebenen App zugreifen. Alle anderen Apps sind blockiert.

Zwei Apps, eine auf einen Mandanten beschränkt

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

X-Amzn-Chime-Tenants: AppKey1:orgId

Benutzer können nur auf die Mediensitzungen der Organisation in App 1 und auf jede Sitzung in App 2 zugreifen. Alle anderen Apps sind blockiert.