Modelo de identidade

Os Serviços de Comunicação do Azure são um serviço independente de identidade, que oferece vários benefícios:

  • Reutilize identidades existentes do seu sistema de gerenciamento de identidades e simplesmente mapeie-as com identidades dos Serviços de Comunicação do Azure.
  • Fornece flexibilidade de integração, pois o modelo independente de identidade funciona bem com seu sistema de identidade existente.
  • Você pode manter os dados do usuário, como o nome dele, privados, pois não precisa duplicá-los nos Serviços de Comunicação do Azure.

O modelo de identidade dos Serviços de Comunicação do Azure funciona com dois conceitos-chave.

Identidade do usuário / mapeamento

Identifica exclusivamente um usuário por meio de um identificador de usuário, que é gerado pelos Serviços de Comunicação do Azure quando um usuário é criado. Identificadores externos, como números de telefone, usuários, dispositivos, aplicativos e GUIDs, não podem ser usados para identidade nos Serviços de Comunicação do Azure. Você pode criar identidades de usuário do Serviço de Comunicação do Azure gratuitamente. As cobranças só são incorridas quando o usuário consome modalidades de comunicação, como um bate-papo ou uma chamada. Sua identidade de usuário pode ser mapeada para a Identidade de usuário dos Serviços de Comunicação do Azure em configurações 1:1, 1:N, N:1, N:N. Um usuário pode participar de várias sessões de comunicação, usando vários dispositivos, simultaneamente. O mapeamento entre a identidade do usuário dos Serviços de Comunicação do Azure e a identidade de usuário privada do cliente é mantido e mantido pelo cliente. Por exemplo, os clientes podem adicionar uma CommunicationServicesId coluna em sua tabela de usuário para armazenar a identidade dos Serviços de Comunicação do Azure associada.

Tokens de acesso

Depois que uma identidade de usuário é criada, um usuário recebe a capacidade de participar de comunicações usando bate-papo ou chamadas, usando tokens de acesso. Por exemplo, apenas um usuário com token de bate-papo pode participar do bate-papo e um usuário com token VoIP pode participar de uma chamada VoIP. Um usuário pode ter vários tokens simultaneamente. Os Serviços de Comunicação do Azure dão suporte a vários tipos de tokens para contabilizar usuários que exigem acesso total versus acesso limitado. Os tokens de acesso têm as seguintes propriedades.

Propriedade Descrição
Identidade Identifica exclusivamente um token
Expiração Um token de acesso é válido por um período de tempo entre 1 e 24 horas. Depois de expirar, o token de acesso é invalidado e não pode ser usado para acessar nenhum primitivo. Para gerar um token com validade personalizada, especifique o período de validade desejado ao gerar o token. Se nenhuma validade personalizada for especificada, o token será válido por 24 horas. Recomendamos o uso de tokens de tempo de vida curtos para reuniões únicas e tokens de vida útil mais longa para agentes que usam o aplicativo por períodos de tempo mais longos
Escopo O parâmetro scope define um conjunto não vazio de primitivas (Chat/VoIP) que pode ser usado.

Um token de acesso é um JSON Web Token (JWT) e tem proteção de integridade. Ou seja, suas declarações não podem ser alteradas após serem emitidas. Portanto, uma alteração manual de propriedades, como identidade, término ou escopos, invalidará o token de acesso. Se os primitivos forem usados com tokens invalidados, o acesso será negado aos primitivos. Os Serviços de Comunicação do Azure dão suporte aos escopos para tokens de acesso a seguir.

Escopos de token de bate-papo

Há suporte para três tipos de escopos de token de bate-papo. As permissões para cada token são descritas abaixo.

  • chat
  • bate-papo.junte-se
  • bate-papo.join.limited
Capacidade / Escopo do token chat bate-papo.junte-se bate-papo.join.limited
Criar a conversa de chat N N N
Atualizar thread de bate-papo com ID N N N
Excluir thread de bate-papo com ID N N N
Adicionar participante a um tópico de bate-papo N Y N
Remover um participante de uma conversa de chat N Y N
Obter tópicos de bate-papo N N S
Obter thread de bate-papo com ID N N S
Obter ReadReceipt N N S
Criar ReadReceipt N N S
Criar mensagem para thread de bate-papo com ID N N S
Obter mensagem com ID de mensagem N N S
Atualize sua própria mensagem com o ID da mensagem N N S
Excluir sua própria mensagem com ID da mensagem N N S
Enviar indicador de digitação N N S
Obter participante para ID de thread N N S

Escopos de token VoIP

Dois tipos de escopos de token VoIP são suportados. As permissões para cada token são descritas abaixo.

  • VoIP
  • voip.junte-se
Capacidade / Escopo do token VoIP voip.junte-se
Iniciar uma chamada VoIP N N
Iniciar uma chamada VoIP em Salas Virtuais, quando o usuário já estiver convidado para a Sala N S
Ingressar em uma chamada VoIP do InProgress N S
Ingressar em uma chamada VoIP do InProgress em Salas Virtuais, quando o usuário já estiver convidado para a Sala N S
Todas as outras operações de chamada, como silenciar/desativar o som, compartilhamento de tela, etc. N S
Todas as outras operações de chamada, como silenciar/desativar o som, compartilhamento de tela, etc. em Salas Virtuais Determinado pela função de usuário Determinado pela função de usuário

Revogar ou atualizar token de acesso

  • A biblioteca de Identidades dos Serviços de Comunicação do Azure pode ser usada para revogar um token de acesso antes de seu tempo de expiração. A revogação de token não é imediata. Pode levar até 15 minutos para se propagar.
  • A remoção de uma identidade, um recurso ou uma assinatura revoga todos os tokens de acesso.
  • Se você quiser remover a capacidade do usuário de acessar a funcionalidade específica, revogue todos os tokens de acesso. Em seguida, emita um token de acesso que tenha um conjunto mais limitado de escopos.
  • A rotação de chaves de acesso revoga todos os tokens de acesso ativos que foram criados usando uma chave de acesso anterior. Nesse caso, todas as identidades perdem acesso aos Serviços de Comunicação do Azure e devem emitir novos tokens de acesso.

Considerações

  • É recomendável emitir tokens de acesso em seu serviço do lado do servidor, não no aplicativo do cliente. O raciocínio é que a emissão requer uma chave de acesso ou autenticação Microsoft Entra. O compartilhamento de segredos com o aplicativo cliente não é recomendado por motivos de segurança.
  • O aplicativo cliente deve usar um ponto de extremidade de serviço confiável que possa autenticar clientes. O ponto de extremidade deve emitir tokens de acesso em seu nome. Para obter mais informações, confira Arquitetura de cliente e servidor.
  • Se você armazenar em cache tokens de acesso a um repositório de backup, recomendamos usar criptografia. Um token de acesso consiste em dados confidenciais. Ele poderá ser usado para atividades mal-intencionadas se não estiver protegido. Alguém que tem um token de acesso pode iniciar o SDK e acessar a API. A API acessível é restrita apenas com base nos escopos que o token de acesso tem.
  • É recomendável emitir tokens de acesso que tenham apenas os escopos necessários.

Próximas etapas