令牌快取持續性的 Azure 身分識別外掛程式
此套件提供適用於 JavaScript 的 Azure 身分識別連結庫@azure/identity
外掛程式,可啟用永續性令牌快取。 令牌快取持續性可讓內建令牌快取使用本機操作系統所提供的安全儲存系統,跨會話保存。
開始
import { useIdentityPlugin } from "@azure/identity";
import { cachePersistencePlugin } from "@azure/identity-cache-persistence";
useIdentityPlugin(cachePersistencePlugin);
先決條件
安裝套件
此套件的設計目的是要與適用於 JavaScript 的 Azure 身分識別搭配使用。 使用 npm
安裝 @azure/identity
與此套件:
$ npm install --save @azure/identity
$ npm install --save @azure/identity-cache-persistence
支援的環境
從 v12 開始,適用於 JavaScript 的 Azure 身分識別外掛程式支援穩定(偶數編號)Node.js 版本。 雖然外掛程式可以在其他 Node 版本中執行,但不保證支援。
@azure/identity-cache-persistence
不支援瀏覽器環境。
重要概念
如果這是您第一次使用 @azure/identity
或 Microsoft 身分識別平臺 (Azure Active Directory),建議您先閱讀 搭配 Microsoft Identity Platform 使用 @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
的認證)。
例子
註冊外掛程式之後,您可以傳遞 tokenCachePersistenceOptions
,並將設定為 true
的 enabled
屬性傳遞至認證建構函式,以啟用令牌快取持續性。 在下列範例中,我們使用 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");
後續步驟
提供意見反應
貢獻
如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。