如何使用 Java 的 Microsoft ADAL 进行服务到服务呼叫?

How do I use Microsoft ADAL for Java to do Service to Service Calls?

我想这次我会使用微软的 ADAL 库与 Office365 进行交互。

我有一个集成任务要执行,因此不需要用户交互,这是我发现的地方:

https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx

我能够使用客户端凭据获取令牌。但是根据文章我应该 "only" 需要一个 client_id 和 client_secret.

我在 AuthenticationContext class 上找不到建议对此提供支持的方法。

我希望我忽略了一些东西。

我知道我可以自己执行 HTTP 请求,但这违背了使用 ADAL 软件的目的。

您要查找的方法签名是:

public Future<AuthenticationResult> acquireToken(
    final String resource,
    final ClientCredential credential,
    final AuthenticationCallback callback)

ClientCredential 是使用应用程序的 client_idclient_secret 创建的。这是我从 the sample included with ADAL4J:

借来的例子
Future<AuthenticationResult> future = context.acquireToken(
    "https://graph.windows.net",
    new ClientCredential(clientId, clientSecret),
    null);
result = future.get();

(在上面,contextAuthenticationContext的实例。)