你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

DeviceCodeCredentialBuilder 类

public class DeviceCodeCredentialBuilder
extends AadCredentialBuilderBase<DeviceCodeCredentialBuilder>

用于实例化 的 DeviceCodeCredentialFluent 凭据生成器。

设备代码身份验证是 Azure Active Directory (Azure AD) 提供的一种身份验证流,允许用户在没有 Web 浏览器或键盘的设备上登录到应用程序。 此身份验证方法尤其适用于智能电视、游戏机和物联网 (IoT) 可能无法输入用户名和密码的设备。 使用设备代码身份验证时,用户会看到设备上需要进行身份验证的设备代码。 然后,用户导航到单独的设备上的 Web 浏览器,并在 Microsoft 登录页上输入代码。 用户输入代码后,Azure AD 会对其进行验证,并提示用户使用其凭据(例如用户名和密码或多重身份验证 (MFA) 方法)登录。 可以使用各种 Azure AD 支持的协议(例如 OAuth 2.0 和 OpenID Connect)启动设备代码身份验证,并且可以与各种 Azure AD 集成应用程序一起使用。 DeviceCodeCredential 以交互方式对用户进行身份验证,并在 UI 受限的设备上获取令牌。 它的工作方式是:在应用程序尝试进行身份验证时,提示用户在启用了浏览器的计算机上访问登录 URL。 然后,用户输入说明中提到的设备代码及其登录凭据。 身份验证成功后,请求身份验证的应用程序将在其运行的设备上成功进行身份验证。 有关详细信息,请参阅 概念知识和配置详细信息

这些步骤将使应用程序进行身份验证,但仍然没有权限让你登录到 Active Directory 或代表你访问资源。 若要解决此问题,请导航到“API 权限”,并启用 Microsoft Graph 和想要访问的资源,例如 Azure 服务管理、Key Vault 等。 首次登录时,你还需要成为租户的管理员才能同意你的申请。 如果无法在 Active Directory 上配置设备代码流选项,则可能需要你的应用为多租户应用。 若要使你的应用成为多租户应用,请导航到“身份验证”面板,然后选择“任何组织目录中的帐户” 。 然后,为“将应用程序作为公共客户端”选择“是”。

示例:构造 DeviceCodeCredential

下面的代码示例演示如何创建 , DeviceCodeCredential使用 DeviceCodeCredentialBuilder 进行配置。 默认情况下,凭据在命令行上打印设备代码质询,以替代可在 上DeviceCodeCredentialBuilder选择性地指定 的行为challengeConsumer。 创建此凭据后,它可能会作为“credential”参数传递到许多 Azure SDK for Java 客户端生成器的生成器中。

TokenCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
     .build();

构造函数摘要

构造函数 说明
DeviceCodeCredentialBuilder()

方法摘要

修饰符和类型 方法和描述
DeviceCodeCredentialBuilder additionallyAllowedTenants(String[] additionallyAllowedTenants)

对于多租户应用程序,指定凭据可能为其获取令牌的其他租户。

DeviceCodeCredentialBuilder additionallyAllowedTenants(List<String> additionallyAllowedTenants)

对于多租户应用程序,指定凭据可能为其获取令牌的其他租户。

DeviceCodeCredentialBuilder authenticationRecord(AuthenticationRecord authenticationRecord)

AuthenticationRecord设置从以前的身份验证捕获的 。

DeviceCodeCredential build()

DeviceCodeCredential使用当前配置创建新的 。

DeviceCodeCredentialBuilder challengeConsumer(Consumer<DeviceCodeInfo> challengeConsumer)

设置使用者以满足设备代码质询。

DeviceCodeCredentialBuilder disableAutomaticAuthentication()

禁用自动身份验证,并阻止 DeviceCodeCredential 自动提示用户。

DeviceCodeCredentialBuilder tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions)

配置永久性共享令牌缓存选项,并启用默认禁用的永久性令牌缓存。

方法继承自 AadCredentialBuilderBase

方法继承自 CredentialBuilderBase

方法继承自 java.lang.Object

构造函数详细信息

DeviceCodeCredentialBuilder

public DeviceCodeCredentialBuilder()

方法详细信息

additionallyAllowedTenants

public DeviceCodeCredentialBuilder additionallyAllowedTenants(String[] additionallyAllowedTenants)

对于多租户应用程序,指定凭据可能为其获取令牌的其他租户。 添加通配符值“*”以允许凭据获取安装应用程序的任何租户的令牌。 如果未为 TenantId 指定值,则此选项将不起作用,并且凭据将获取任何请求租户的令牌。

Overrides:

DeviceCodeCredentialBuilder.additionallyAllowedTenants(String[] additionallyAllowedTenants)

Parameters:

additionallyAllowedTenants - 其他允许的租户。

Returns:

此生成器的更新实例,其中配置了其他租户。

additionallyAllowedTenants

public DeviceCodeCredentialBuilder additionallyAllowedTenants(List additionallyAllowedTenants)

对于多租户应用程序,指定凭据可能为其获取令牌的其他租户。 添加通配符值“*”以允许凭据获取安装应用程序的任何租户的令牌。 如果未为 TenantId 指定值,则此选项将不起作用,并且凭据将获取任何请求租户的令牌。

Overrides:

DeviceCodeCredentialBuilder.additionallyAllowedTenants(List<String> additionallyAllowedTenants)

Parameters:

additionallyAllowedTenants - 其他允许的租户。

Returns:

此生成器的更新实例,其中配置了其他租户。

authenticationRecord

public DeviceCodeCredentialBuilder authenticationRecord(AuthenticationRecord authenticationRecord)

AuthenticationRecord设置从以前的身份验证捕获的 。

Parameters:

authenticationRecord - 要配置的身份验证记录。

Returns:

此生成器的更新实例,其中包含配置的身份验证记录。

build

public DeviceCodeCredential build()

DeviceCodeCredential使用当前配置创建新的 。

Returns:

具有当前配置的 。DeviceCodeCredential

challengeConsumer

public DeviceCodeCredentialBuilder challengeConsumer(Consumer challengeConsumer)

设置使用者以满足设备代码质询。 如果未指定,则使用默认使用者,它将设备代码信息消息输出到 stdout。

Parameters:

challengeConsumer - 一种允许用户满足设备代码质询的方法。

Returns:

InteractiveBrowserCredentialBuilder 本身

disableAutomaticAuthentication

public DeviceCodeCredentialBuilder disableAutomaticAuthentication()

禁用自动身份验证,并阻止 DeviceCodeCredential 自动提示用户。 如果禁用了自动身份验证, AuthenticationRequiredException 则在需要用户交互的情况下,将从 中引发 getToken(TokenRequestContext request) 。 应用程序负责处理此异常,并调用 authenticate()authenticate(TokenRequestContext request) 以交互方式对用户进行身份验证。

Returns:

已禁用自动身份验证的此生成器的更新实例。

tokenCachePersistenceOptions

public DeviceCodeCredentialBuilder tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions)

配置永久性共享令牌缓存选项,并启用默认禁用的永久性令牌缓存。 如果已配置,凭据会将令牌存储在保存到计算机的缓存中,该缓存受当前用户保护,可由其他凭据和进程共享。

Parameters:

tokenCachePersistenceOptions - 令牌缓存配置选项

Returns:

此生成器的更新实例,其中配置了令牌缓存选项。

适用于