identity 套件

Azure SDK 用戶端的認證。

套件

aio

非同步 Azure SDK 用戶端的認證。

類別

AuthenticationRecord

已驗證使用者的非秘密帳戶資訊

這個類別可啟用 DeviceCodeCredentialInteractiveBrowserCredential 存取先前快取的驗證資料。 應用程式不應該建構這個類別的實例。 他們應該改為從認證的 驗證 方法取得一個,例如 authenticate 。 如需詳細資訊,請參閱user_authentication範例。

AuthenticationRequiredError

需要互動式驗證才能取得權杖。

此錯誤只會由設定為不視需要自動提示使用者互動的互動式使用者認證引發。 其屬性會提供可能需要進行驗證的其他資訊。 control_interactive_prompts範例會藉由呼叫認證的「驗證」方法來示範如何處理此錯誤。

AuthorizationCodeCredential

藉由兌換先前從 Azure Active Directory 取得的授權碼來驗證。

如需驗證流程的詳細資訊,請參閱 Azure Active Directory 檔

AzureAuthorityHosts

Azure SDK 用戶端的認證。

AzureCliCredential

從 Azure CLI 要求權杖來驗證。

這需要先前透過 「az login」 登入 Azure,並使用 CLI 目前登入的身分識別。

AzureDeveloperCliCredential

從Azure Developer CLI要求權杖來進行驗證。

Azure Developer CLI是命令列介面工具,可讓開發人員在 Azure 中建立、管理及部署資源。 其建置在 Azure CLI 之上,並提供 Azure 開發人員特有的其他功能。 它可讓使用者以使用者和/或服務主體身分向 Azure Active Directory 進行驗證, (Azure AD) 。 AzureDeveloperCliCredential 會在開發環境中進行驗證,並代表Azure Developer CLI中登入的使用者或服務主體取得權杖。 它會作為Azure Developer CLI登入的使用者或服務主體,並在下方執行 Azure CLI 命令,以向 Azure Active Directory 驗證應用程式。

若要使用此認證,開發人員必須使用下列其中一個命令,在本機Azure Developer CLI進行驗證:

  • 在 Azure Developer CLI 中執行 「azd auth login」,以使用者身分以互動方式進行驗證。

  • 執行 「azd auth login –client-id 'client_id' –client-secret 'client_secret' –tenant-id 'tenant_id'」 來驗證為服務主體。

您可能需要在特定時段後重複此程式,視組織中的重新整理權杖有效性而定。 一般而言,重新整理權杖有效期間是數周到幾個月。 AzureDeveloperCliCredential 會提示您再次登入。

AzurePowerShellCredential

從 Azure PowerShell 要求權杖來進行驗證。

這需要先前透過 「Connect-AzAccount」 登入 Azure,並使用目前登入的身分識別。

CertificateCredential

使用憑證作為服務主體進行驗證。

憑證必須具有 RSA 私密金鑰,因為此認證會使用 RS256 簽署判斷提示。 如需設定憑證驗證的詳細資訊,請參閱 Azure Active Directory 檔

ChainedTokenCredential

認證序列,其本身為認證。

get_token 方法會依序呼叫 get_token 序列中的每個認證,並傳回收到的第一個有效權杖。

ClientAssertionCredential

使用 JWT 判斷提示驗證服務主體。

此認證適用于進階案例。 CertificateCredential 對於最常見的判斷提示案例,使用憑證驗證服務主體,具有更方便的 API。

ClientSecretCredential

使用用戶端密碼以服務主體身分驗證。

CredentialUnavailableError

認證未嘗試驗證,因為必要的資料或狀態無法使用。

DefaultAzureCredential

能夠處理大部分 Azure SDK 驗證案例的預設認證。

其使用的身分識別取決於環境。 需要存取權杖時,它會接著要求使用這些身分識別的身分識別,並在其中一個提供權杖時停止:

  1. 環境變數所設定的服務主體。 如需更多詳細資料,請參閱 EnvironmentCredential \(英文\)。

  2. 如果環境變數組態是由 Azure 工作負載識別 Webhook 設定,WorkloadIdentityCredential。

  3. Azure 受控識別。 如需更多詳細資料,請參閱 ManagedIdentityCredential \(英文\)。

  4. 僅限 Windows:已使用 Microsoft 應用程式登入的使用者,例如 Visual Studio。 如果快取中有多個身分識別,則會使用環境變數 AZURE_USERNAME 的值來選取要使用的身分識別。 如需更多詳細資料,請參閱 SharedTokenCacheCredential \(英文\)。

  5. 目前已登入 Azure CLI 的身分識別。

  6. 目前登入Azure PowerShell的身分識別。

  7. 目前登入Azure Developer CLI的身分識別。

此預設行為可透過關鍵詞引數進行設定。

DeviceCodeCredential

透過裝置程式碼流程驗證使用者。

呼叫 時 get_token ,此認證會從 Azure Active Directory 取得驗證 URL 和程式碼。 使用者必須流覽至 URL、輸入程式碼,並使用 Azure Active Directory 進行驗證。 如果使用者成功驗證,認證會收到存取權杖。

此認證主要用於在沒有網頁瀏覽器的環境中驗證使用者,例如 SSH 會話。 如果網頁瀏覽器可供使用, InteractiveBrowserCredential 則更方便,因為它會自動將瀏覽器開啟至登入頁面。

EnvironmentCredential

環境變數所設定的認證。

此認證能夠使用用戶端密碼或憑證,或以使用者名稱和密碼的使用者身分驗證為服務主體。 使用下列環境變數,依此順序嘗試設定:

具有秘密的服務主體:

  • AZURE_TENANT_ID:服務主體租使用者的識別碼。 也稱為其 'directory' 識別碼。

  • AZURE_CLIENT_ID:服務主體的用戶端識別碼

  • AZURE_CLIENT_SECRET:其中一個服務主體的用戶端密碼

  • AZURE_AUTHORITY_HOST:Azure Active Directory 端點的授權單位,例如「login.microsoftonline.com」,這是 Azure 公用雲端的授權單位,這是未指定任何值時的預設值。

具有憑證的服務主體:

  • AZURE_TENANT_ID:服務主體租使用者的識別碼。 也稱為其 'directory' 識別碼。

  • AZURE_CLIENT_ID:服務主體的用戶端識別碼

  • AZURE_CLIENT_CERTIFICATE_PATH:PEM 或 PKCS12 憑證檔案的路徑,包括私密金鑰。

  • AZURE_CLIENT_CERTIFICATE_PASSWORD:如果有的話, (憑證檔案的選擇性) 密碼。

  • AZURE_AUTHORITY_HOST:Azure Active Directory 端點的授權單位,例如「login.microsoftonline.com」,這是 Azure 公用雲端的授權單位,這是未指定任何值時的預設值。

具有使用者名稱和密碼的使用者:

  • AZURE_CLIENT_ID:應用程式的用戶端識別碼

  • AZURE_USERNAME:使用者名稱 (通常是電子郵件地址)

  • AZURE_PASSWORD:該使用者的密碼

  • AZURE_TENANT_ID: (服務主體租使用者的選擇性) 識別碼。 也稱為其 'directory' 識別碼。 如果未提供,預設為「組織」租使用者,僅支援 Azure Active Directory 公司或學校帳戶。

  • AZURE_AUTHORITY_HOST:Azure Active Directory 端點的授權單位,例如「login.microsoftonline.com」,這是 Azure 公用雲端的授權單位,這是未指定任何值時的預設值。

InteractiveBrowserCredential

開啟瀏覽器以互動方式驗證使用者。

get_token 會開啟瀏覽器到 Azure Active Directory 所提供的登入 URL,並使用 PKCE (Code) Exchange 的證明金鑰在內部驗證使用者,以保護程式碼。

KnownAuthorities

的別名 AzureAuthorityHosts

ManagedIdentityCredential

在任何支援受控識別的裝載環境中,使用 Azure 受控識別進行驗證。

此認證預設為使用系統指派的身分識別。 若要設定使用者指派的身分識別,請使用其中一個關鍵字引數。 如需設定應用程式的受控識別的詳細資訊,請參閱 Azure Active Directory 檔

OnBehalfOfCredential

透過代理者流程驗證服務主體。

此流程通常由仲介層服務使用,以授權具有委派使用者身分識別的其他服務要求。 由於這不是互動式驗證流程,因此使用的應用程式必須先取得任何委派許可權的管理員同意,才能要求權杖。 如需代表流程的詳細描述,請參閱 Azure Active Directory 檔

SharedTokenCacheCredential

使用 Microsoft 應用程式之間共用本機快取中的權杖進行驗證。

TokenCachePersistenceOptions

永續性權杖快取的選項。

大部分認證都會接受這個類別的實例,以設定持續性權杖快取。 預設值會設定認證,以使用與 Microsoft 開發人員工具和 SharedTokenCacheCredential 共用的快取。 若要隔離認證的資料與其他應用程式,請指定快取 的名稱

根據預設,快取會使用目前平臺的使用者資料保護 API 進行加密,並在無法使用時引發錯誤。 若要將快取設定為回復至未加密的檔案,而不是引發錯誤,請指定 allow_unencrypted_storage=True

警告

快取包含驗證秘密。 如果快取未加密,則保護快取是

應用程式的責任。 其內容的缺口將會完全危害帳戶。

UsernamePasswordCredential

以使用者名稱和密碼來驗證使用者。

一般而言,Microsoft 不建議使用這種驗證,因為它比其他驗證流程更安全。

使用此認證的驗證不是互動式的,因此 與任何形式的多重要素驗證或同意提示不相容。 應用程式必須已經同意使用者或目錄管理員。

此認證只能驗證公司與學校帳戶;不支援 Microsoft 帳戶。 如需帳戶類型的詳細資訊,請參閱 Azure Active Directory 檔

VisualStudioCodeCredential

以透過「Azure 帳戶」擴充功能登入Visual Studio Code的 Azure 使用者身分進行驗證。

此認證不適用於0.9.11之前的Azure 帳戶擴充功能版本。 此問題的長期修正正在進行中。 同時,請考慮使用 AzureCliCredential 進行驗證。

WorkloadIdentityCredential

使用 Azure Active Directory 工作負載身分識別進行驗證。

工作負載身分識別驗證是 Azure 中的一項功能,可讓虛擬機器上執行的應用程式 (VM) 存取其他 Azure 資源,而不需要服務主體或受控識別。 透過工作負載身分識別驗證,應用程式會使用自己的身分識別自行驗證,而不是使用共用服務主體或受控識別。 在幕後,工作負載身分識別驗證會使用服務帳戶認證的概念 (SAC) ,這些認證是由 Azure 自動建立,並安全地儲存在 VM 中。 藉由使用工作負載身分識別驗證,您可以避免需要針對每個 VM 上的每個應用程式管理及輪替服務主體或受控識別。 此外,因為 SA 會自動建立並由 Azure 管理,所以您不需要擔心儲存和保護敏感性認證本身。

WorkloadIdentityCredential 支援 Azure Kubernetes 上的 Azure 工作負載身分識別驗證,並使用 Azure Kubernetes 環境中可用的服務帳戶認證來取得權杖。 如需詳細資訊,請參閱 此工作負載身分識別概觀