Compartilhar via


Extensões de Autenticação da Microsoft para Node.js

As Extensões de Autenticação da Microsoft para Node.js permitem que os desenvolvedores realizem a serialização e a persistência em disco do cache de tokens em múltiplas plataformas. Ele oferece suporte adicional à Biblioteca de Autenticação da Microsoft (MSAL) para Node.

A MSAL for Node dá suporte a um cache na memória por padrão e fornece a interface ICachePlugin para executar a serialização de cache, mas não fornece uma maneira padrão de armazenar o cache de token no disco. As Extensões de Autenticação da Microsoft para Nó são a implementação padrão para manter o cache em disco em diferentes plataformas.

As Extensões de Autenticação da Microsoft para Nó dão suporte às seguintes plataformas:

  • Windows – API de proteção de dados (DPAPI) é usada para proteção.
  • Mac – O conjunto de chaves do Mac é usado.
  • Linux – LibSecret é usado para armazenar no "Serviço Secreto".

Instalação

O msal-node-extensions pacote está disponível no Node Package Manager (NPM).

npm i @azure/msal-node-extensions --save

Configurar o cache de token

Aqui está um exemplo de código que usa as Extensões de Autenticação da Microsoft para Node.js para configurar o cache de token.

const {
  DataProtectionScope,
  Environment,
  PersistenceCreator,
  PersistenceCachePlugin,
} = require("@azure/msal-node-extensions");

// You can use the helper functions provided through the Environment class to construct your cache path
// The helper functions provide consistent implementations across Windows, Mac and Linux.
const cachePath = path.join(Environment.getUserRootDirectory(), "./cache.json");

const persistenceConfiguration = {
  cachePath,
  dataProtectionScope: DataProtectionScope.CurrentUser,
  serviceName: "<SERVICE-NAME>",
  accountName: "<ACCOUNT-NAME>",
  usePlaintextFileOnLinux: false,
};

// The PersistenceCreator obfuscates a lot of the complexity by doing the following actions for you :-
// 1. Detects the environment the application is running on and initializes the right persistence instance for the environment.
// 2. Performs persistence validation for you.
// 3. Performs any fallbacks if necessary.
PersistenceCreator.createPersistence(persistenceConfiguration).then(
  async (persistence) => {
    const publicClientConfig = {
      auth: {
        clientId: "<CLIENT-ID>",
        authority: "<AUTHORITY>",
      },

      // This hooks up the cross-platform cache into MSAL
      cache: {
        cachePlugin: new PersistenceCachePlugin(persistence),
      },
    };

    const pca = new msal.PublicClientApplication(publicClientConfig);

    // Use the public client application as required...
  }
);

A tabela a seguir fornece uma explicação para todos os argumentos para a configuração de persistência.

Nome do campo Descrição Necessário para
cachePath O caminho para o arquivo de bloqueio que a biblioteca usa para sincronizar as leituras e as gravações Windows, Mac e Linux
dataProtectionScope Especifica o escopo da proteção de dados no Windows, seja o usuário atual ou o computador local. Windows
nomeDoServiço Especifica o nome do serviço a ser usado no Mac e/ou linux Mac e Linux
nome da conta Especifica o nome da conta a ser usado no Mac e/ou no Linux Mac e Linux
usePlaintextFileOnLinux O sinalizador a ser usado como texto sem formatação no Linux se o LibSecret falhar. Usa como padrão false Linux

Próximas etapas

Para obter mais informações sobre as Extensões de Autenticação da Microsoft para Node.js e MSAL Node, consulte: