Bagikan melalui


Ekstensi Autentikasi Microsoft untuk Node

Ekstensi Autentikasi Microsoft untuk Node memungkinkan pengembang untuk melakukan serialisasi cache token lintas platform dan persistensi ke disk. Ini memberikan dukungan ekstra ke Microsoft Authentication Library (MSAL) untuk Node.

MSAL untuk Node mendukung cache dalam memori secara default dan menyediakan antarmuka ICachePlugin untuk melakukan serialisasi cache, tetapi tidak menyediakan cara default untuk menyimpan cache token ke disk. Ekstensi Autentikasi Microsoft untuk Node adalah implementasi default untuk cache yang bertahan ke disk di berbagai platform.

Ekstensi Autentikasi Microsoft untuk Node mendukung platform berikut:

  • Windows - Perlindungan data API (DPAPI) digunakan untuk perlindungan.
  • Mac - Rantai Kunci Mac digunakan.
  • Linux - LibSecret digunakan untuk menyimpan ke "Layanan Rahasia".

Penginstalan

msal-node-extensions Paket ini tersedia di Pengelola Paket Node (NPM).

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

Mengonfigurasi cache token

Berikut adalah contoh kode yang menggunakan Ekstensi Autentikasi Microsoft pada Node untuk mengkonfigurasi cache 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...
  }
);

Tabel berikut memberikan penjelasan untuk semua argumen untuk konfigurasi persistensi.

Nama Bidang Deskripsi Diperlukan untuk
cachePath Jalur ke file kunci yang digunakan pustaka untuk menyinkronkan bacaan dan penulisan Windows, Mac, dan Linux
dataProtectionScope Menentukan ruang lingkup perlindungan data pada Windows baik pengguna saat ini atau mesin lokal. Windows
serviceName Menentukan nama layanan yang akan digunakan di Mac dan/atau Linux Mac dan Linux
accountName Menentukan nama akun yang akan digunakan di Mac dan/atau Linux Mac dan Linux
usePlaintextFileOnLinux Beri bendera default ke teks biasa di linux jika LibSecret gagal. Default ke false Linux

Langkah berikutnya

Untuk informasi lebih lanjut tentang Ekstensi Autentikasi Microsoft untuk Node dan MSAL Node, lihat: