我有 2 个 API:A 和 B。两者都在 Azure AD 中注册为 API。在 azure 中,我生成了 B 的 KEY。
现在我需要生成一个访问 token ,因此我正在使用 ADAL Library to Java。我正在尝试使用这种方法:
public Future<AuthenticationResult> acquireToken(final String resource,
final UserAssertion userAssertion, final ClientCredential credential,
final AuthenticationCallback callback)
我有 ClientCredital 信息,但没有 userAsstion,而且我不知道如何生成它。有人可以帮忙吗?
这是我的电话:
Future<AuthenticationResult> future = context.acquireToken("http://localhost:8081",SHOULD_BE_ASSERTION,
new ClientCredential(CLIENT_ID,SECRET),null);
最佳答案
这实际上取决于您想要实现的 OAuth 流程到底是什么。
在您的情况下,从您的问题的上下文来看,最简单的是Client Credentials
流( described here ),无需用户交互。对于该流程,您需要 AcquireToken method
的一个特定重载。 ,南利:
Future<AuthenticationResult> acquireToken(String resource, ClientCredential credential, AuthenticationCallback callback)
在该重载中,您只需提供 ClientCredentials
由 client_id 和 client_secret 组成。
不同的 OAuth 流程需要 UserAssertion
- 代表
(描述为 here )。只有当您拥有最终用户上下文时,这才有可能。这将是 Web Api A 的访问 token 。
请花点时间阅读文档并了解不同的流程。然后您还将了解库和 SDK。
关于azure - 使用客户端 key Azure 请求访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51384574/