DeviceCodeCredential 類別
透過裝置程式碼流程驗證使用者。
呼叫 時 get_token ,此認證會從 Azure Active Directory 取得驗證 URL 和程式碼。 使用者必須流覽至 URL、輸入程式碼,並使用 Azure Active Directory 進行驗證。 如果使用者成功驗證,認證會收到存取權杖。
此認證主要用於在沒有網頁瀏覽器的環境中驗證使用者,例如 SSH 會話。 如果網頁瀏覽器可供使用, InteractiveBrowserCredential 則更方便,因為它會自動將瀏覽器開啟至登入頁面。
- 繼承
-
azure.identity._internal.interactive.InteractiveCredentialDeviceCodeCredential
建構函式
DeviceCodeCredential(client_id: str = '04b07795-8ddb-461a-bbee-02f9e1bf7b46', *, timeout: int | None = None, prompt_callback: Callable[[str, str, datetime], None] | None = None, **kwargs: Any)
參數
- client_id
- str
應用程式使用者的用戶端識別碼將會驗證。 未指定時,使用者會向 Azure 開發應用程式進行驗證。
- authority
- str
Azure Active Directory 端點的授權單位,例如「login.microsoftonline.com」,Azure 公用雲端的授權單位 (,這是預設) 。 AzureAuthorityHosts 定義其他雲端的授權單位。
- tenant_id
- str
Azure Active Directory 租使用者識別碼。 預設為「組織」租使用者,其可以驗證公司或學校帳戶。 單一租使用者應用程式的必要專案。
- timeout
- int
等候使用者進行驗證的秒數。 預設為 Azure Active Directory 所設定的裝置程式碼有效期間,當 逾 時時間較長時也會優先使用。
回呼,可控制驗證指示的呈現方式。 必須接受引數 (verification_uri
、 user_code
) expires_on
:
verification_uri
(str) 使用者必須造訪的 URLuser_code
(str) 使用者必須在該處輸入的程式碼expires_on
(datetime.datetime) 程式碼到期的 UTC 時間
如果未提供此引數,認證將會列印至 stdout 的指示。
- authentication_record
- AuthenticationRecord
- disable_automatic_authentication
- bool
如果為 True, get_token 則會在需要使用者互動才能取得權杖時引發 AuthenticationRequiredError 。 預設為 False。
- cache_persistence_options
- TokenCachePersistenceOptions
持續性權杖快取的組態。 如果未指定,認證將會快取記憶體中的權杖。
- disable_instance_discovery
- bool
判斷嘗試驗證時是否執行實例探索。 將此設定為 true 將會完全停用實例探索和授權單位驗證。 這項功能適用于無法連線到中繼資料端點的情況,例如私人雲端或 Azure Stack。 實例探索的程式需要從 https://login.microsoft.com/ 中擷取授權單位中繼資料,以驗證授權單位。 藉由將此設定為 True,授權單位的驗證會停用。 因此,請務必確保已設定的授權主機有效且值得信任。
範例
建立 DeviceCodeCredential。
from azure.identity import DeviceCodeCredential
credential = DeviceCodeCredential()
方法
authenticate |
以互動方式驗證使用者。 |
close | |
get_token |
要求 範圍的存取權杖。 Azure SDK 用戶端會自動呼叫此方法。 |
authenticate
以互動方式驗證使用者。
authenticate(**kwargs: Any) -> AuthenticationRecord
參數
傳回類型
例外狀況
驗證失敗。 錯誤的 message
屬性會提供原因。
close
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
屬性會提供原因。
需要使用者互動才能取得權杖,且認證設定為不會自動開始此動作。 呼叫
以開始互動式驗證。