ConfidentialClientApplication 类

实现

public class ConfidentialClientApplication
extends AbstractClientApplicationBase
implements IConfidentialClientApplication

用于获取机密客户端应用程序(Web 应用、Web API 和守护程序应用程序的令牌)的类。 有关详细信息,请参阅 IConfidentialClientApplication

有条件的线程安全

字段摘要

修饰符和类型 字段和描述
java.util.function.Function<AppTokenProviderParameters,java.util.concurrent.CompletableFuture<TokenProviderResult>> appTokenProvider

应用令牌提供程序从提供访问令牌的函数创建凭据。

方法摘要

修饰符和类型 方法和描述
java.util.concurrent.CompletableFuture<IAuthenticationResult> acquireToken(ClientCredentialParameters parameters)

从应用程序中配置的颁发机构为机密客户端本身获取令牌。

java.util.concurrent.CompletableFuture<IAuthenticationResult> acquireToken(OnBehalfOfParameters parameters)

从应用程序中配置的颁发机构获取此应用程序(通常是 Web API)的访问令牌,以便代表用户使用 On-Behalf-Of 流访问另一个下游受保护的 Web API。

static Builder builder(String clientId, IClientCredential clientCredential)

创建机密客户端应用程序生成器实例

protected com.nimbusds.oauth2.sdk.auth.ClientAuthentication clientAuthentication()
protected com.nimbusds.oauth2.sdk.auth.ClientAuthentication createClientAuthFromClientAssertion(ClientAssertion clientAssertion)
boolean sendX5c()

方法继承自 AbstractApplicationBase

方法继承自 AbstractClientApplicationBase

方法继承自 java.lang.Object

java.lang.Object.clone java.lang.Object.equals java.lang.Object.finalize java.lang.Object.getClass java.lang.Object.hashCode java.lang.Object.notify java.lang.Object.notifyAll java.lang.Object.toString java.lang.Object.wait java.lang.Object.wait java.lang.Object.wait

字段详细信息

appTokenProvider

public Function<AppTokenProviderParameters,CompletableFuture<TokenProviderResult>> appTokenProvider

AppTokenProvider 从提供访问令牌的函数创建凭据。 该函数必须是并发安全。 这仅用于允许Azure SDK缓存 MSI 令牌。 一般情况下,应用程序不起作用,因为令牌提供程序必须实现所有身份验证逻辑。

方法详细信息

acquireToken

public CompletableFuture<IAuthenticationResult> acquireToken(ClientCredentialParameters parameters)

从应用程序中配置的颁发机构为机密客户端本身获取令牌。 默认情况下,它将尝试从令牌缓存中获取令牌。 如果未找到令牌,则回退到通过 STS 中的客户端凭据获取令牌

参数:

parameters

acquireToken

public CompletableFuture<IAuthenticationResult> acquireToken(OnBehalfOfParameters parameters)

从应用程序中配置的颁发机构获取此应用程序(通常是 Web API)的访问令牌,以便代表用户使用 On-Behalf-Of 流访问另一个下游受保护的 Web API。 默认情况下,它将尝试从令牌缓存中获取令牌。 此机密客户端应用程序本身是使用在字段中提供的 UserAssertion acces 令牌调用的 OnBehalfOfParameters

将内存中令牌缓存序列化/反序列化为永久存储时,每个传入访问令牌应有令牌缓存,其中传入访问令牌的哈希可用作令牌缓存密钥。 访问令牌通常仅在 1 小时内有效,而新的访问令牌 UserAssertion 意味着将有新的令牌缓存和新令牌缓存密钥。 为了避免永久存储填充过期的令牌缓存,应设置逐出策略。 例如,一个超过几个小时的令牌缓存可以被视为过期,因此会从序列化的令牌缓存中逐出。

参数:

parameters

builder

public static ConfidentialClientApplication.Builder builder(String clientId, IClientCredential clientCredential)

创建 ConfidentialClientApplication 的 Builder 实例

参数:

clientId - 在应用程序注册门户中注册的应用程序的客户端 ID(应用程序 ID)(portal.azure.com)
clientCredential - 用于获取令牌的客户端凭据。

返回:

ConfidentialClientApplication 的 Builder 实例

clientAuthentication

protected ClientAuthentication clientAuthentication()

替代:

ConfidentialClientApplication.clientAuthentication()

createClientAuthFromClientAssertion

protected ClientAuthentication createClientAuthFromClientAssertion(ClientAssertion clientAssertion)

参数:

clientAssertion

sendX5c

public boolean sendX5c()

适用于