

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 alugando IDs para o Amazon Chime SDK
<a name="app-keys-tenant-ids"></a>

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 [https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html). 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 App-A e App-B usar o Amazon Chime SDK, uma organização pode permitir o acesso App-A às sessões de mídia do WebRTC a partir de sua rede, mas bloquear App-B qualquer outro aplicativo que use o Amazon Chime SDK. As organizações podem fazer App-A isso com s AppKey e um proxy HTTPS. Para mais informações, consulte [Como limitar o acesso a um aplicativo específico](#limit-app-access) mais à frente neste tópico.

**Exemplo 2: Usando AppKeys e tenantIDs**  
Se App-A estiver disponível publicamente e usado por muitos clientes, uma organização pode querer permitir o acesso App-A às 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. 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](#limit-tenant-access) 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.](http://docs.aws.amazon.com/pt_br/chime-sdk/latest/dg/images/app-key-diagram.png)


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

**Topics**
+ [Como limitar o acesso a um aplicativo específico](#limit-app-access)
+ [Como limitar o acesso a um locatário específico](#limit-tenant-access)
+ [Exemplos de cabeçalho HTTPS](#header-examples)

## Como limitar o acesso a um aplicativo específico
<a name="limit-app-access"></a>

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. 

1. 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:` {{comma-separated list of allowed 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.

1. 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.

1. 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
<a name="limit-tenant-access"></a>

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 propriedade `TenantIds` e uma lista de TenantIDs a uma solicitação [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html) ou [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html).

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](#limit-app-access).

1. 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
<a name="header-examples"></a>

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.