Compartir a través de


Complemento de identidad de Azure para la persistencia de la caché de tokens

Este paquete proporciona un complemento a la biblioteca de identidades de Azure para JavaScript (@azure/identity) que permite el almacenamiento en caché de tokens persistente. La persistencia de la caché de tokens permite que la caché de tokens integrada persista entre sesiones mediante un sistema de almacenamiento seguro proporcionado por el sistema operativo local.

Código | fuente Muestras

Introducción

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

useIdentityPlugin(cachePersistencePlugin);

Requisitos previos

Instalar el paquete

Este paquete está diseñado para usarse con Azure Identity para JavaScript. Instale tanto como @azure/identity este paquete mediante npm:

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

Entornos compatibles

Los complementos de Identidad de Azure para JavaScript admiten versiones estables (incluso numeradas) de Node.js a partir de la versión 12. Aunque los complementos se pueden ejecutar en otras versiones de Node, no se garantiza ninguna compatibilidad. @azure/identity-cache-persistenceno admite entornos de explorador.

Conceptos clave

Si es la primera vez que usa @azure/identity o la plataforma de identidad de Microsoft (Azure Active Directory), le recomendamos que primero lea Uso de @azure/identity con la plataforma de identidad de Microsoft. Este documento le proporcionará una comprensión más profunda de la plataforma y cómo configurar correctamente la cuenta de Azure.

Complementos de identidad de Azure

A partir de la @azure/identity versión 2.0.0, la biblioteca cliente de identidad para JavaScript incluye una API de complemento. Este paquete (@azure/identity-cache-persistence) exporta un objeto de complemento que debe pasar como argumento a la función de nivel useIdentityPlugin superior del @azure/identity paquete. Habilite la persistencia de la caché de tokens en el programa de la siguiente manera:

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

useIdentityPlugin(cachePersistencePlugin);

Después de llamar a useIdentityPlugin, el complemento de caché de tokens persistente se registra en el @azure/identity paquete y estará disponible en todas las credenciales que admiten el almacenamiento en caché de tokens persistentes (aquellos que tienen tokenCachePersistenceOptions en sus opciones de constructor).

Ejemplos

Una vez registrado el complemento, puede habilitar la persistencia de la caché de tokens pasando tokenCachePersistenceOptions con una enabled propiedad establecida en true a un constructor de credenciales. En el ejemplo siguiente, usamos , ya que el DeviceCodeCredentialalmacenamiento en caché persistente de sus tokens permite omitir el flujo interactivo de autenticación de código de dispositivo si hay disponible un token almacenado en caché.

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

Solución de problemas

Registro

La habilitación del registro puede ayudar a descubrir información útil sobre los errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en @azure/logger:

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

setLogLevel("info");

Pasos siguientes

Envío de comentarios

Si encuentra errores o tiene sugerencias, cree una incidencia.

Contribuciones

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.

Impresiones