Usando AppKeys e inquilinando IDs - Amazon Chime SDK

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando AppKeys e inquilinando IDs

Você pode usar AppKeys e TenantIDs para limitar o acesso de uma rede às sessões de mídia WebRTC do Amazon Chime SDK do Amazon Chime SDK de aplicativos específicos.

Os desenvolvedores usam o SDK do Amazon Chime para criar aplicativos que enviam e recebem vídeo em tempo real via UDP. Os usuários do aplicativo precisam de acesso UDP à sub-rede CHIME_MEETINGS. As organizações (proprietários da rede) podem usar AppKeys e TenantIDs para limitar o acesso de sua rede somente às sessões de mídia WebRTC de um aplicativo específico.

Exemplo 1: Usando AppKeys

Se o App-A e o App-B usarem o Amazon Chime SDK, uma organização poderá permitir que o App-A acesse as sessões de mídia do WebRTC a partir de sua rede, mas bloquear o App-B e quaisquer outros aplicativos que usem o Amazon Chime SDK. As organizações podem fazer isso com App-A's AppKey e um proxy HTTPS. Para mais informações, consulte Como limitar o acesso a um aplicativo específico mais à frente neste tópico.

Exemplo 2: Usando AppKeys e tenantIDs

Se o App-A estiver disponível publicamente e for usado por muitos clientes, uma organização pode querer permitir que o App-A acesse sessões de mídia do WebRTC de sua rede somente quando seus usuários fizerem parte da sessão e bloquear o acesso a todas as outras sessões do App-A. As organizações podem fazer isso usando o aplicativo AppKey, o TenantID da organização e um proxy HTTPS. Para mais informações, consulte Como limitar o acesso a um locatário específico mais à frente neste tópico.

Para usar AppKeys um TenantIDs, você deve ter um servidor proxy HTTPS que permita adicionar cabeçalhos HTTPS a uma solicitação. O diagrama a seguir mostra como AppKeys e os TenantIDs funcionam.

Diagrama mostrando como AppKeys e os TenantIDs controlam o acesso do aplicativo e do inquilino a uma sessão do WebRTC.

Na imagem, o App-A tem os inquilinos A-1 e A-2, e o App-B tem os locatários B-1 e B-2. Nesse caso, o AppKey único permite que o App-A se conecte à sessão de mídia do WebRTC, e o ID do inquilino só admite o Locatário A-1 na sessão.

Como limitar o acesso a um aplicativo específico

An AppKeyé um valor consistente e exclusivo de 256 bits que o Amazon Chime cria para cada conta. AWS Se você não tiver um AppKey, você pode solicitar um no Amazon Support. Se você tiver várias AWS contas, poderá solicitar uma comum AppKey para todas as suas contas.

nota

Você pode compartilhá-lo AppKeys publicamente com segurança e permitir que outras organizações limitem o acesso de suas redes.

O Amazon Chime SDK associa automaticamente cada sessão de mídia do WebRTC a AppKey uma com base na ID da conta usada para criar a sessão. AWS Para limitar o acesso da sua rede a aplicativos específicos, faça o seguinte:

  1. Encaminhe todas as solicitações de saída para a sub-rede CHIME_MEETINGS por meio de um servidor proxy HTTPS.

  2. Configure o servidor proxy para adicionar o seguinte cabeçalho a todas as solicitações de saída para a sub-rede CHIME_MEETINGS:

    X-Amzn-Chime-App-Keys:lista separada por vírgula dos permitidos. AppKeys

    Por exemplo, X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C permite que os aplicativos associados a eles AppKeys acessem a sub-rede.

O SDK do Amazon Chime inspeciona conexões de sessão de mídia do WebRTC de entrada para o cabeçalho X-Amzn-Chime-App-Keys e aplica a seguinte lógica:

  1. Se o X-Amzn-Chime-App-Keys cabeçalho estiver presente e incluir o da sessão AppKey, aceite a conexão.

  2. Se o X-Amzn-Chime-App-Keys cabeçalho estiver presente, mas não incluir o da sessão AppKey, rejeite a conexão com um erro 403.

  3. Se o cabeçalho X-Amzn-Chime-App-Keys não estiver presente, aceite a conexão. Se os usuários puderem acessar o aplicativo de fora da rede da organização, eles também poderão acessar a sessão.

Como limitar o acesso a um locatário específico

Um TenantID é um identificador opaco criado por desenvolvedores. Lembre-se do seguinte sobre TenantIDs:

  • Não é garantido que os TenantIDs sejam exclusivos entre os aplicativos, portanto, você deve especificar um AppKey para cada lista de TenantId.

  • Os TenantIDs diferenciam maiúsculas e minúsculas. Digite-os exatamente conforme prescrito pelo desenvolvedor.

  • Uma organização pode limitar o acesso a vários aplicativos, mas especificar apenas TenantIDs para alguns desses aplicativos. Aplicativos sem TenantIDs podem se conectar a todas as sessões de mídia do WebRTC.

Para associar uma sessão de mídia a TenantIds, um desenvolvedor deve primeiro adicionar a TenantIds propriedade e uma lista de TenantIDs a uma solicitação or. CreateMeetingCreateMeetingWithAttendees

Por exemplo: .

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

Para limitar o acesso da rede de uma organização à sessão de mídia do WebRTC em aplicativos específicos, faça o seguinte:

  1. Siga as etapas em Como limitar o acesso a um aplicativo específico.

  2. Configure o servidor proxy HTTPS para adicionar um cabeçalho X-Amzn-Chime-Tenants nas conexões de saída. Inclua uma lista de AppKeys e TenantIDs, delimitada conforme mostrado neste exemplo: X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2

O SDK do Amazon Chime inspeciona conexões de sessão de mídia do WebRTC de entrada para o cabeçalho X-Amzn-Chime-Tenants e aplica a seguinte lógica:

  • Se o cabeçalho incluir o AppKey:tenantId da sessão, aceite a conexão.

  • Se o cabeçalho incluir o AppKey da sessão, mas não corresponder ao tenantId, rejeite a conexão com um erro 403.

  • Se o cabeçalho não incluir o AppKey da sessão, aceite a conexão.

  • Se o cabeçalho incluir o AppKey da sessão, mas a sessão não tiver pelo menos um tenantId permitido, rejeite a conexão com um erro 403. Isso pode ser um bug do desenvolvedor.

  • Se o cabeçalho não estiver presente, aceite a conexão. Se os usuários puderem acessar o aplicativo de fora da rede da organização, eles também poderão acessar todas as sessões.

Exemplos de cabeçalho HTTPS

Os exemplos a seguir mostram algumas maneiras de usar AppKeys e TenantIDs em cabeçalhos HTTPS.

Um aplicativo com um locatário

X-Amzn-Chime-App-Keys: AppKey

X-Amzn-Chime-Tenants: AppKey:orgId

Os usuários podem acessar somente as sessões de mídia do WebRTC da organização no aplicativo especificado. Todos os outros aplicativos são bloqueados.

Um aplicativo com dois locatários

X-Amzn-Chime-App-Keys: AppKey

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

Os usuários podem acessar somente as sessões de mídia para engenharia e vendas no aplicativo especificado. Todos os outros aplicativos são bloqueados.

Dois aplicativos, um limitado a um locatário

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

X-Amzn-Chime-Tenants: AppKey1:orgId

Os usuários podem acessar somente as sessões de mídia da organização no aplicativo 1 e qualquer sessão no aplicativo 2. Todos os outros aplicativos são bloqueados.