Compartilhar via


Biblioteca de clientes da Identidade de Comunicação do Azure para Java – versão 1.4.11

O pacote de identidade é usado para gerenciar usuários e tokens para Serviços de Comunicação do Azure.

Código-fonte | Pacote (Maven) | Documentação | de referência da APIDocumentação do produto

Introdução

Pré-requisitos

Incluir o pacote

Incluir o arquivo da BOM

Inclua o azure-sdk-bom em seu projeto para assumir a dependência da versão ga (disponibilidade geral) da biblioteca. No trecho a seguir, substitua o espaço reservado {bom_version_to_target} pelo número de versão. Para saber mais sobre o BOM, consulte o BOM README do SDK do AZURE.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Depois, inclua a dependência direta na seção de dependências sem a marca de versão.

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-identity</artifactId>
  </dependency>
</dependencies>

Incluir dependência direta

Se você quiser assumir a dependência de uma versão específica da biblioteca que não está presente no BOM, adicione a dependência direta ao seu projeto da seguinte maneira.

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-communication-identity</artifactId>
  <version>1.4.11</version>
</dependency>

Autenticar o cliente

Há duas formas de autenticação para usar o SDK de Identidade:

Autenticação de Token do Azure Active Directory

Um DefaultAzureCredential objeto deve ser passado para o CommunicationIdentityClientBuilder por meio da função credential(). Ponto de extremidade e httpClient também devem ser definidos por meio das funções endpoint() e httpClient(), respectivamente.

AZURE_CLIENT_SECRET, AZURE_CLIENT_ID e AZURE_TENANT_ID variáveis de ambiente são necessárias para criar um objeto DefaultAzureCredential.

// You can find your endpoint and access key from your resource in the Azure Portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

Autenticação AzureKeyCredential

A identidade usa a autenticação HMAC com a chave de acesso do recurso. A chave de acesso pode ser usada para criar uma AzureKeyCredential e fornecida à CommunicationIdentityClientBuilder por meio da função credential(). Ponto de extremidade e httpClient também devem ser definidos por meio das funções endpoint() e httpClient(), respectivamente.

// You can find your endpoint and access key from your resource in the Azure Portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";
AzureKeyCredential keyCredential = new AzureKeyCredential("<access-key>");

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .endpoint(endpoint)
    .credential(keyCredential)
    .buildClient();

Autenticação de cadeia de conexão

Como alternativa, você pode fornecer todo o cadeia de conexão usando a função connectionString() em vez de fornecer o ponto de extremidade e a chave de acesso.

// You can find your connection string from your resource in the Azure Portal
String connectionString = "<connection_string>";

CommunicationIdentityClient communicationIdentityClient = new CommunicationIdentityClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Principais conceitos

CommunicationIdentityClient e CommunicationIdentityAsyncClient fornecem as funcionalidades para gerenciar usuários e tokens de usuário.

Exemplos

Criando um novo usuário

Use a createUser função para criar um novo usuário. user.getId() obtém a ID exclusiva do usuário que foi criado.

CommunicationUserIdentifier user = communicationIdentityClient.createUser();
System.out.println("User id: " + user.getId());

Obtendo um token para um usuário existente

Use a getToken função para obter um token para um usuário existente. A função também usa uma lista de CommunicationTokenScope. As opções de escopo incluem:

  • chat (Chat)
  • voip (Voz sobre IP)
 // Define a list of communication token scopes
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);

AccessToken userToken = communicationIdentityClient.getToken(user, scopes);
System.out.println("User token value: " + userToken.getToken());
System.out.println("Expires at: " + userToken.getExpiresAt());

Também é possível criar um token de acesso à Identidade de Comunicação personalizando o tempo de expiração. O token pode ser configurado para expirar em apenas uma hora ou até 24 horas. O tempo de expiração padrão é de 24 horas.

// Define a list of Communication Identity access token scopes
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);
// Set custom validity period of the Communication Identity access token within [1,24]
// hours range. If not provided, the default value of 24 hours will be used.
Duration tokenExpiresIn = Duration.ofHours(1);
AccessToken userToken = communicationIdentityClient.getToken(user, scopes, tokenExpiresIn);
System.out.println("User token value: " + userToken.getToken());
System.out.println("Expires at: " + userToken.getExpiresAt());

Criar um novo usuário e token em uma única solicitação

Para conveniência, use createUserAndToken para criar um novo usuário e emitir um token com uma chamada de função. Isso se traduz em uma única solicitação da Web em vez de criar um usuário primeiro e, em seguida, emitir um token.

// Define a list of communication token scopes
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);

CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(scopes);
System.out.println("User id: " + result.getUser().getId());
System.out.println("User token value: " + result.getUserToken().getToken());

Aqui também é possível especificar o tempo de expiração para o token de acesso da Identidade de Comunicação. O token pode ser configurado para expirar em apenas uma hora ou até 24 horas. O tempo de expiração padrão é de 24 horas.

// Define a list of communication token scopes
List<CommunicationTokenScope> scopes = Arrays.asList(CommunicationTokenScope.CHAT);
// Set custom validity period of the Communication Identity access token within [1,24]
// hours range. If not provided, the default value of 24 hours will be used.
Duration tokenExpiresIn = Duration.ofHours(1);
CommunicationUserIdentifierAndToken result = communicationIdentityClient.createUserAndToken(scopes, tokenExpiresIn);
System.out.println("User id: " + result.getUser().getId());
System.out.println("User token value: " + result.getUserToken().getToken());

Revogando todos os tokens para um usuário existente

Use a revokeTokens função para revogar todos os tokens emitidos de um usuário.

// revoke tokens issued for the specified user
communicationIdentityClient.revokeTokens(user);

Excluir um usuário

Use a deleteUser função para excluir um usuário.

// delete a previously created user
communicationIdentityClient.deleteUser(user);

Trocando Azure AD token de acesso de um usuário do Teams por um token de acesso da Identidade de Comunicação

Use a getTokenForTeamsUser função para trocar um token de acesso Azure AD de um usuário do Teams por um novo token de acesso da Identidade de Comunicação.

String clientId = "<Client ID of an Azure AD application>";
String userObjectId = "<Object ID of an Azure AD user (Teams User)>";
GetTokenForTeamsUserOptions options = new GetTokenForTeamsUserOptions(teamsUserAadToken, clientId, userObjectId);
AccessToken accessToken = communicationIdentityClient.getTokenForTeamsUser(options);
System.out.println("User token value: " + accessToken.getToken());
System.out.println("Expires at: " + accessToken.getExpiresAt());

Solução de problemas

Todas as operações de serviço de token de usuário lançarão uma exceção em caso de falha.

try {
    CommunicationUserIdentifier user = communicationIdentityClient.createUser();
} catch (RuntimeException ex) {
    System.out.println(ex.getMessage());
}

Próximas etapas

Examine o diretório de exemplos para obter exemplos detalhados de como usar essa biblioteca para gerenciar identidades e tokens.

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder e de fato concede, os direitos de usar sua contribuição.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.

Impressões