在元数据文档中找不到WsTrust端点

时间:2019-02-20 19:20:16

标签: azure authentication oauth-2.0 azure-active-directory

我正在关注tutorial,以学习如何在用户成功登录后获取令牌。

到目前为止我已经完成的步骤:

  1. 我已使用以下URL注册了自己(用户名和密码):https://MyCompany.b2clogin.com/MyCompany.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_ApplicantSignInSignUp&client_id=some-client-id&nonce=defaultNonce&redirect_uri=https%3A%2F%2Flocalhost&scope=openid&response_type=id_token&response_mode=query

  2. 在上面的示例中,我将“ AUTHORITY”指定为“ https://login.microsoftonline.com/MyCompany.onmicrosoft.com/”或“ https://MyCompany.b2clogin.com/tfp/MyCompany.onmicrosoft.com/B2C_1_ApplicantSignInSignUp

  3. 我在步骤1中从注册URL收到的
  4. 客户ID。

运行代码后,我看到得到的AUTHORITY错误为“ https://login.microsoftonline.com/MyCompany.onmicrosoft.com/”:

    Caused by: com.microsoft.aad.adal4j.AuthenticationException: WsTrust endpoint not found in metadata document
at com.microsoft.aad.adal4j.WSTrustRequest.execute(WSTrustRequest.java:85)
at com.microsoft.aad.adal4j.AcquireTokenCallable.processPasswordGrant(AcquireTokenCallable.java:137)
at com.microsoft.aad.adal4j.AcquireTokenCallable.execute(AcquireTokenCallable.java:60)
at com.microsoft.aad.adal4j.AcquireTokenCallable.execute(AcquireTokenCallable.java:38)
at com.microsoft.aad.adal4j.AdalCallable.call(AdalCallable.java:47)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)

当我将AUTHORITY设置为“ https://MyCompany.b2clogin.com/tfp/MyCompany.onmicrosoft.com/B2C_1_ApplicantSignInSignUp”时出现不同的错误

Caused by: com.microsoft.aad.adal4j.AuthenticationException: Server returned HTTP response code: 404 for URL : https://mycompany.b2clogin.com/common/userrealm/sumantapakira@gmail.com?api-version=1.0, Error details : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

执行此部分代码时发生错误:

    Future<AuthenticationResult> future = context.acquireToken(
                "https://graph.microsoft.com", CLIENT_ID, username, password, null);

我不确定自己在做什么错,是AUTHORITY URL不正确还是客户端ID不正确。我使用的是与步骤1

注册时使用的用户名/密码相同的用户名/密码

非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

请确保您使用的是全球租户管理员帐户,即.onmicrosoft.com帐户。如果您使用错误的凭据,通常会发生此错误。

您的客户ID将与您的应用程序ID相匹配,因为它们是同义词。因此,这些在您的应用程序注册和代码中必须相同。 (这也适用于您的授权URL。)