你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于令牌缓存持久性的 Azure 标识插件

此包为适用于 JavaScript () @azure/identity 的 Azure 标识库提供了一个插件,该插件支持持久性令牌缓存。 令牌缓存持久性允许内置令牌缓存使用本地操作系统提供的安全存储系统跨会话持久保存。

源代码 | 样品

入门

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

useIdentityPlugin(cachePersistencePlugin);

先决条件

安装包

此包旨在与适用于 JavaScript 的 Azure 标识一起使用。 @azure/identity使用 npm安装 和 此包:

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

支持的环境

适用于 JavaScript 的 Azure 标识插件支持从 v12 开始的稳定 (甚至编号) Node.js版本。 虽然插件可以在其他 Node 版本中运行,但不能保证支持。 @azure/identity-cache-persistence 不支持 浏览器环境。

关键概念

如果这是你第一次使用 @azure/identity 或 Microsoft 标识平台 (Azure Active Directory),建议你先阅读通过 Microsoft 标识平台使用 @azure/identity。 本文档将让你更深入地了解平台以及如何正确配置 Azure 帐户。

Azure 标识插件

@azure/identity从版本 2.0.0 起,适用于 JavaScript 的标识客户端库包含插件 API。 此包 (@azure/identity-cache-persistence) 导出插件对象,必须将其作为参数传递给包中的@azure/identity顶级useIdentityPlugin函数。 在程序中启用令牌缓存持久性,如下所示:

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

useIdentityPlugin(cachePersistencePlugin);

调用 useIdentityPlugin后,永久性令牌缓存插件将注册到包中 @azure/identity ,并将在所有支持永久令牌缓存的凭据上可用, (tokenCachePersistenceOptions 其构造函数选项) 。

示例

注册插件后,可以通过将 属性设置为 true 传递给tokenCachePersistenceOptionsenabled凭据构造函数来启用令牌缓存持久性。 在以下示例中,我们使用 DeviceCodeCredential,因为如果缓存的令牌可用,则其令牌的持久缓存允许跳过交互式设备代码身份验证流。

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

疑难解答

日志记录

启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL 环境变量设置为 info。 或者,可以在运行时通过调用 @azure/logger 中的 setLogLevel 来启用日志记录:

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

setLogLevel("info");

后续步骤

提供反馈

如果遇到 bug 或有建议,请创建问题

贡献

若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。

曝光数