Partager via


Bibliothèque cliente Azure Communication Identity pour Java - version 1.4.11

Le package d’identité est utilisé pour gérer les utilisateurs et les jetons pour Azure Communication Services.

| Code sourcePackage (Maven) | Documentation de référence sur les | APIDocumentation produit

Prise en main

Prérequis

Inclure le package

Inclure le fichier de nomenclature

Incluez le kit azure-sdk-bom à votre projet pour qu’il soit dépendant de la version disponibilité générale (GA) de la bibliothèque. Dans l’extrait de code suivant, remplacez l’espace réservé {bom_version_to_target} par le numéro de version. Pour en savoir plus sur la nomenclature, consultez LE FICHIER README DE NOMENCLATURE DU KIT DE DÉVELOPPEMENT LOGICIEL 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>

Incluez ensuite la dépendance directe dans la section des dépendances sans la balise de version.

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

Inclure une dépendance directe

Si vous souhaitez prendre la dépendance sur une version particulière de la bibliothèque qui n’est pas présente dans la nomenclature, ajoutez la dépendance directe à votre projet comme suit.

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

Authentifier le client

Il existe deux formes d’authentification pour utiliser le Kit de développement logiciel (SDK) Identity :

Authentification par jeton Azure Active Directory

Un DefaultAzureCredential objet doit être passé à via la CommunicationIdentityClientBuilder fonction credential(). Endpoint et httpClient doivent également être définis via les fonctions endpoint() et httpClient() respectivement.

AZURE_CLIENT_SECRET, AZURE_CLIENT_ID et AZURE_TENANT_ID les variables d’environnement sont nécessaires pour créer un objet 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();

Authentification AzureKeyCredential

Identity utilise l’authentification HMAC avec la clé d’accès aux ressources. La clé d’accès peut être utilisée pour créer un AzureKeyCredential et fournie à la CommunicationIdentityClientBuilder via la fonction credential(). Endpoint et httpClient doivent également être définis via les fonctions endpoint() et httpClient() respectivement.

// 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();

Authentification par chaîne de connexion

Vous pouvez également fournir l’ensemble des chaîne de connexion à l’aide de la fonction connectionString() au lieu de fournir le point de terminaison et la clé d’accès.

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

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

Concepts clés

CommunicationIdentityClient et CommunicationIdentityAsyncClient fournissent les fonctionnalités permettant de gérer les utilisateurs et les jetons utilisateur.

Exemples

Création d’un utilisateur

Utilisez la createUser fonction pour créer un utilisateur. user.getId() obtient l’ID unique de l’utilisateur qui a été créé.

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

Obtention d’un jeton pour un utilisateur existant

Utilisez la getToken fonction pour obtenir un jeton pour un utilisateur existant. La fonction accepte également une liste de CommunicationTokenScope. Les options d’étendue sont les suivantes :

  • chat (Conversation)
  • voip (Voix sur 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());

Il est également possible de créer un jeton d’accès Communication Identity en personnalisant l’heure d’expiration. Le jeton peut être configuré pour expirer en à peine une heure ou 24 heures. Le délai d’expiration par défaut est de 24 heures.

// 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());

Créer un utilisateur et un jeton dans une requête unique

Pour plus de commodité, utilisez createUserAndToken pour créer un utilisateur et émettre un jeton avec un appel de fonction. Cela se traduit par une requête web unique au lieu de créer d’abord un utilisateur, puis d’émettre un jeton.

// 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());

Ici, il est également possible de spécifier l’heure d’expiration du jeton d’accès d’identité de communication. Le jeton peut être configuré pour expirer en à peine une heure ou 24 heures. Le délai d’expiration par défaut est de 24 heures.

// 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());

Révocation de tous les jetons pour un utilisateur existant

Utilisez la revokeTokens fonction pour révoquer tous les jetons émis d’un utilisateur.

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

Suppression d'un utilisateur

Utilisez la deleteUser fonction pour supprimer un utilisateur.

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

Échange d’un jeton d’accès Azure AD d’un utilisateur Teams pour un jeton d’accès d’identité de communication

Utilisez la getTokenForTeamsUser fonction pour échanger un jeton d’accès Azure AD d’un utilisateur Teams contre un nouveau jeton d’accès Communication Identity.

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());

Dépannage

Toutes les opérations de service de jeton utilisateur lèvent une exception en cas d’échec.

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

Étapes suivantes

Consultez le répertoire d’exemples pour obtenir des exemples détaillés sur l’utilisation de cette bibliothèque pour gérer les identités et les jetons.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) spécifiant que vous avez le droit de nous accorder les droits d’utiliser votre contribution, et que vous nous les accordez.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.

Impressions