代码之家  ›  专栏  ›  技术社区  ›  Ronaldo Lanhellas

使用客户端机密azure请求访问令牌

  •  0
  • Ronaldo Lanhellas  · 技术社区  · 6 年前

    我有两个api:a和b。它们都在azure ad中注册为api。在azure中,我生成了一个b的密钥。

    现在我需要生成一个访问令牌,以便使用adal库来实现java。我试着用这个方法:

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

    我有clientcredital信息,但我没有userassion,我不知道如何生成它。有人能帮忙吗?

    这是我的电话:

    Future<AuthenticationResult> future = context.acquireToken("http://localhost:8081",SHOULD_BE_ASSERTION,
                        new ClientCredential(CLIENT_ID,SECRET),null);
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   astaykov    6 年前

    这真的取决于您到底想实现什么oauth流。

    在你的情况下,从你的问题的背景来看,最简单的是 Client Credentials 流量( described here )没有用户交互。对于该流,您需要 AcquireToken method ,南利:

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

    在超负荷的情况下你只提供 ClientCredentials 由客户端id和客户端秘密组成。

    这个 UserAssertion 是不同OAuth流所必需的- on-behalf-of (描述的 here )中。只有当您有最终用户上下文时,这才是可能的。这将是web api a的访问令牌。

    请花点时间浏览文档并了解不同的流程。然后您还将了解库和sdk。