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

InteractiveBrowserCredential 类

  • java.lang.Object
    • com.azure.identity.InteractiveBrowserCredential

实现

public class InteractiveBrowserCredential
implements TokenCredential

交互式浏览器身份验证是 Azure Active Directory (Azure AD) 提供的一种身份验证流,使用户能够使用 Web 浏览器登录到应用程序和服务。 此身份验证方法通常用于 Web 应用程序,其中用户直接在网页中输入其凭据。 使用交互式浏览器身份验证,用户导航到 Web 应用程序,并提示输入其用户名和密码凭据。 然后,应用程序将用户重定向到 Azure AD 登录页,提示他们再次输入凭据。 用户成功进行身份验证后,Azure AD 会颁发一个安全令牌,应用程序可以使用该令牌来授权用户访问其资源。 InteractiveBrowserCredential 以交互方式对用户进行身份验证,并使用默认系统浏览器获取令牌,并通过允许用户使用自己的凭据对应用程序进行身份验证来提供流畅的身份验证体验。 身份验证后,oauth2 流将通过回复 URL 通知身份验证代码的凭据。 有关详细信息,请参阅 交互式浏览器身份验证文档

必需的配置:

若要使用 InteractiveBrowserCredential,需要在 Azure Active Directory 中注册具有代表用户登录的权限的应用程序。 按照以下步骤配置已注册的应用程序。

  1. 转到 Azure 门户中的 Azure Active Directory,然后找到你的应用注册。
  2. 导航到“身份验证”部分。
  3. 在“建议的重定向 URI”下,检查以 /common/oauth2/nativeclient 结尾的 URI。
  4. 在“默认客户端类型”下,为“将应用程序视为公共客户端”选择“是” 。

这些步骤将使应用程序进行身份验证,但仍然没有权限让你登录到 Active Directory 或代表你访问资源。 若要解决此问题,请导航到“API 权限”,并启用 Microsoft Graph 和想要访问的资源,例如 Azure 服务管理、Key Vault 等。 首次登录时,你还需要成为租户的管理员才能同意你的申请。 在 中 redirectUrl(String redirectUrl),可以指定重定向 URL。 它配置重定向 URL,STS 将使用安全代码回调应用程序。 如果通过 InteractiveBrowserCredentialBuilder#clientId(String) 指定了自定义客户端 ID,并且必须与应用程序注册期间指定的重定向 URL 匹配,则这是必需的。 可以将重定向 URL 添加到已注册的 Azure AD 应用程序的“身份验证”部分下的“重定向 URI”子部分。

示例:构造 InteractiveBrowserCredential

下面的代码示例演示如何创建 , InteractiveBrowserCredential使用 InteractiveBrowserCredentialBuilder 进行配置。 默认情况下,凭据以 localhost 重定向 URL 为目标,以替代可选择性指定的行为 redirectUrl(String redirectUrl) 。 创建此凭据后,它可能会作为“credential”参数传递到许多 Azure SDK for Java 客户端生成器的生成器中。

TokenCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
     .redirectUrl("http://localhost:8765")
     .build();

方法摘要

修饰符和类型 方法和描述
reactor.core.publisher.Mono<AuthenticationRecord> authenticate()

通过默认浏览器以交互方式对用户进行身份验证。

reactor.core.publisher.Mono<AuthenticationRecord> authenticate(TokenRequestContext request)

通过默认浏览器以交互方式对用户进行身份验证。

reactor.core.publisher.Mono<AccessToken> getToken(TokenRequestContext request)
AccessToken getTokenSync(TokenRequestContext request)

方法继承自 java.lang.Object

方法详细信息

authenticate

public Mono authenticate()

通过默认浏览器以交互方式对用户进行身份验证。

Returns:

如果 AuthenticationRecord 通过实例化凭据时启用了 tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) 永久性缓存,则可用于在将来执行时对帐户进行无提示身份验证的 。

authenticate

public Mono authenticate(TokenRequestContext request)

通过默认浏览器以交互方式对用户进行身份验证。

Parameters:

request - 身份验证请求的详细信息。

Returns:

如果 AuthenticationRecord 通过实例化凭据时配置 tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions) 了永久性缓存,则可用于在将来执行时对帐户进行无提示身份验证的 。

getToken

public Mono getToken(TokenRequestContext request)

Parameters:

request

getTokenSync

public AccessToken getTokenSync(TokenRequestContext request)

Parameters:

request

适用于