我正在关注tutorial,以学习如何在用户成功登录后获取令牌。
到目前为止我已经完成的步骤:
在上面的示例中,我将“ AUTHORITY”指定为“ https://login.microsoftonline.com/MyCompany.onmicrosoft.com/”或“ https://MyCompany.b2clogin.com/tfp/MyCompany.onmicrosoft.com/B2C_1_ApplicantSignInSignUp”
客户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
注册时使用的用户名/密码相同的用户名/密码非常感谢您的帮助
答案 0 :(得分:1)
请确保您使用的是全球租户管理员帐户,即.onmicrosoft.com帐户。如果您使用错误的凭据,通常会发生此错误。
您的客户ID将与您的应用程序ID相匹配,因为它们是同义词。因此,这些在您的应用程序注册和代码中必须相同。 (这也适用于您的授权URL。)