WorkloadIdentityCredential 類別

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

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

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

繼承
azure.identity._credentials.client_assertion.ClientAssertionCredential
WorkloadIdentityCredential
azure.identity._credentials.workload_identity.TokenFileMixin
WorkloadIdentityCredential

建構函式

WorkloadIdentityCredential(*, tenant_id: str | None = None, client_id: str | None = None, token_file_path: str | None = None, **kwargs: Any)

參數

tenant_id
str

應用程式的 Azure Active Directory 租使用者識別碼。 也稱為其 「目錄」識別碼。

client_id
str

Azure AD 應用程式註冊的用戶端識別碼。

token_file_path
str

檔案的路徑,其中包含可驗證身分識別的 Kubernetes 服務帳戶權杖。

範例

建立 WorkloadIdentityCredential。


   from azure.identity import WorkloadIdentityCredential

   credential = WorkloadIdentityCredential(
       tenant_id="<tenant_id>",
       client_id="<client_id>",
       token_file_path="<token_file_path>",
   )

   # Parameters can be omitted if the following environment variables are set:
   #   - AZURE_TENANT_ID
   #   - AZURE_CLIENT_ID
   #   - AZURE_FEDERATED_TOKEN_FILE
   credential = WorkloadIdentityCredential()

方法

close
get_token

要求 範圍的存取權杖。

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

close

close() -> None

get_token

要求 範圍的存取權杖。

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

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

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

enable_cae
bool

會指出是否針對要求的權杖啟用持續存取評估 (CAE) 。 預設為 False。

傳回

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

傳回類型

例外狀況

認證無法嘗試驗證,因為它缺少必要的資料、狀態或平臺支援

驗證失敗。 錯誤的 message 屬性會提供原因。