Partager via


Plug-in d’identité Azure pour la persistance du cache de jetons

Ce package fournit un plug-in à la bibliothèque d’identités Azure pour JavaScript (@azure/identity) qui active la mise en cache persistante des jetons. La persistance du cache de jetons permet au cache de jetons intégré de persister entre les sessions à l’aide d’un système de stockage sécurisé fourni par le système d’exploitation local.

| Code sourceÉchantillons

Prise en main

import { useIdentityPlugin } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";

useIdentityPlugin(cachePersistencePlugin);

Prérequis

Installer le package

Ce package est conçu pour être utilisé avec Azure Identity pour JavaScript. @azure/identity Installez et ce package à l’aide de npm:

$ npm install --save @azure/identity
$ npm install --save @azure/identity-cache-persistence

Environnements pris en charge

Les plug-ins Azure Identity pour JavaScript prennent en charge les versions stables (même numérotées) de Node.js à partir de la version v12. Bien que les plug-ins puissent s’exécuter dans d’autres versions de Node, aucune prise en charge n’est garantie. @azure/identity-cache-persistence ne prend pas en charge les environnements de navigateur.

Concepts clés

Si vous utilisez @azure/identity ou la plateforme d’identités Microsoft (Azure Active Directory) pour la première fois, nous vous recommandons de commencer par lire Utiliser @azure/identity avec la plateforme d’identités Microsoft. Ce document vous permettra de mieux comprendre le fonctionnement de la plateforme et vous expliquera comment configurer correctement votre compte Azure.

Plug-ins d’identité Azure

À compter de la @azure/identity version 2.0.0, la bibliothèque de client Identity pour JavaScript inclut une API de plug-in. Ce package (@azure/identity-cache-persistence) exporte un objet de plug-in que vous devez passer en tant qu’argument à la fonction de niveau useIdentityPlugin supérieur à partir du @azure/identity package. Activez la persistance du cache de jetons dans votre programme comme suit :

import { useIdentityPlugin } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";

useIdentityPlugin(cachePersistencePlugin);

Après l’appel useIdentityPluginde , le plug-in de cache de jetons persistants est inscrit dans le @azure/identity package et est disponible sur toutes les informations d’identification qui prennent en charge la mise en cache des jetons persistants (celles qui ont tokenCachePersistenceOptions dans leurs options de constructeur).

Exemples

Une fois le plug-in inscrit, vous pouvez activer la persistance du cache de jetons en passant tokenCachePersistenceOptions avec une enabled propriété définie sur true à un constructeur d’informations d’identification. Dans l’exemple suivant, nous utilisons le , car la DeviceCodeCredentialmise en cache persistante de ses jetons vous permet d’ignorer le flux d’authentification interactif par code d’appareil si un jeton mis en cache est disponible.

import { useIdentityPlugin, DeviceCodeCredential } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";

useIdentityPlugin(cachePersistencePlugin);

async function main() {
  const credential = new DeviceCodeCredential({
    tokenCachePersistenceOptions: {
      enabled: true
    }
  });

  // We'll use the Microsoft Graph scope as an example
  const scope = "https://graph.microsoft.com/.default";

  // Print out part of the access token
  console.log((await credential.getToken(scope)).token.substr(0, 10), "...");
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

Résolution des problèmes

Journalisation

L’activation de la journalisation peut vous aider à mieux comprendre les échecs. Pour avoir un journal des requêtes et réponses HTTP, définissez la variable d’environnement AZURE_LOG_LEVEL sur info. Vous pouvez également activer la journalisation au moment de l’exécution en appelant setLogLevel dans @azure/logger :

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Étapes suivantes

Fournir des commentaires

Si vous rencontrez des bogues ou si vous avez des suggestions, signalez un problème.

Contribution

Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.

Impressions