使用Client Secret Azure请求访问令牌

时间:2018-07-17 14:57:11

标签: azure azure-active-directory adal

我有2个API:A和B。两者都在Azure AD中注册为API。天蓝色,我为B生成了一个密钥。

现在我需要生成一个访问令牌,因此我正在使用ADAL库转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);

1 个答案:

答案 0 :(得分:2)

这实际上取决于您要实现的OAuth流量。

从您的问题出发,最简单的方法是Future<AuthenticationResult> acquireToken(String resource, ClientCredential credential, AuthenticationCallback callback) 流(described here),而无需用户交互。对于该流程,您需要AcquireToken method的一个特殊重载,即namley:

UserAssertion

在这种超载中,您仅提供由client_id和client_secret组成的ClientCredentials

on-behalf-of是另一个OAuth流所必需的-"2008-12-30 00:00:00.0000000"(描述为here)。只有当您具有最终用户上下文时,才有可能。这将是Web Api A的访问令牌。

请花一些时间阅读文档并了解不同的流程。然后,您还将了解这些库和SDK。