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的身分識別。

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

繼承
azure.identity.aio._credentials.chained.ChainedTokenCredential
DefaultAzureCredential

建構函式

DefaultAzureCredential(**kwargs: Any)

參數

authority
str

Azure Active Directory 端點的授權單位,例如「login.microsoftonline.com」,這是 Azure 公用雲端 (的授權單位,這是預設) 。 AzureAuthorityHosts 定義其他雲端的授權單位。 受控識別會忽略此問題,因為它們位於單一雲端。

exclude_workload_identity_credential
bool

是否要從認證中排除工作負載身分識別。 預設值為 False

exclude_developer_cli_credential
bool

是否要從認證中排除Azure Developer CLI。 預設值為 False

exclude_cli_credential
bool

是否要從認證中排除 Azure CLI。 預設值為 False

exclude_environment_credential
bool

是否要從認證中排除環境變數所設定的服務主體。 預設值為 False

exclude_powershell_credential
bool

是否要排除Azure PowerShell。 預設值為 False

exclude_visual_studio_code_credential
bool

是否要從 VS Code 排除預存認證。 預設值為 True

exclude_managed_identity_credential
bool

是否要從認證中排除受控識別。 預設值為 False

exclude_shared_token_cache_credential
bool

是否要排除共用權杖快取。 預設值為 False

managed_identity_client_id
str

使用者指派的受控識別用戶端識別碼。 如果有任何,則預設為環境變數的值AZURE_CLIENT_ID。 如果未指定,將會使用系統指派的身分識別。

workload_identity_client_id
str

指派給 Pod 之身分識別的用戶端識別碼。 如果有任何,則預設為環境變數的值AZURE_CLIENT_ID。 如果未指定,將會使用 Pod 的預設身分識別。

workload_identity_tenant_id
str

的慣用 WorkloadIdentityCredential 租使用者。 如果有任何,則預設為環境變數的值AZURE_TENANT_ID。

shared_cache_username
str

的慣用 SharedTokenCacheCredential 使用者名稱。 如果有任何,則預設為環境變數的值AZURE_USERNAME。

shared_cache_tenant_id
str

的慣用 SharedTokenCacheCredential 租使用者。 如果有任何,則預設為環境變數的值AZURE_TENANT_ID。

visual_studio_code_tenant_id
str

向 進行驗證時要使用的租使用者識別碼 VisualStudioCodeCredential 。 預設為 VS Code 使用者設定中的 「Azure: Tenant」 設定,或當該設定沒有值時,「組織」租使用者僅支援 Azure Active Directory 公司或學校帳戶。

process_timeout
int

執行子處理 (的開發人員認證,以秒為單位的逾時,例如 AzureCliCredential、AzurePowerShellCredential) 。 預設值為 10 秒。

範例

建立 DefaultAzureCredential。


   from azure.identity.aio import DefaultAzureCredential

   credential = DefaultAzureCredential()

方法

close

關閉鏈結中所有認證的傳輸會話。

get_token

以非同步方式要求 範圍的存取權杖。

Azure SDK 用戶端會自動呼叫此方法。

close

關閉鏈結中所有認證的傳輸會話。

async close() -> None

get_token

以非同步方式要求 範圍的存取權杖。

Azure SDK 用戶端會自動呼叫此方法。

async get_token(*scopes: str, claims: str | None = None, tenant_id: str | None = None, **kwargs: Any) -> AccessToken

參數

scopes
str
必要

存取權杖所需的範圍。 這個方法至少需要一個範圍。 如需範圍的詳細資訊,請參閱 https://learn.microsoft.com/azure/active-directory/develop/scopes-oidc

claims
str

權杖中所需的其他宣告,例如在授權失敗之後,在資源提供者的宣告挑戰中傳回的其他宣告。

tenant_id
str

要包含在權杖要求中的選擇性租使用者。

傳回

具有所需範圍的存取權杖。

傳回類型

例外狀況

驗證失敗。 例外狀況有 一個訊息 屬性,列出每個驗證嘗試及其錯誤訊息。