你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
DeviceCodeCredential 类
通过设备代码流对用户进行身份验证。
调用 时 get_token ,此凭据将从 Azure Active Directory 获取验证 URL 和代码。 用户必须浏览到 URL,输入代码,并使用 Azure Active Directory 进行身份验证。 如果用户成功进行身份验证,则凭据将收到访问令牌。
此凭据主要用于在没有 Web 浏览器(例如 SSH 会话)的环境中对用户进行身份验证。 如果 Web 浏览器可用,则更方便, 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
应用程序用户将进行身份验证的客户端 ID。 未指定时,用户将向 Azure 开发应用程序进行身份验证。
- authority
- str
Azure Active Directory 终结点的颁发机构,例如“login.microsoftonline.com”,Azure 公有云 (是默认) 。 AzureAuthorityHosts 定义其他云的权威。
- tenant_id
- str
Azure Active Directory 租户 ID。 默认为“组织”租户,它可以对工作或学校帐户进行身份验证。 对于单租户应用程序是必需的。
- 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
属性提供了一个原因。
用户交互是获取令牌所必需的,并且凭据配置为不自动开始此操作。 调用
开始交互式身份验证。