gpt4 book ai didi

java - 使用 ADAL 4j 在 java 中进行 Azure AD 用户身份验证给出 "The request body must contain the following parameter: ' client_secret 或 client_assertion”

转载 作者:行者123 更新时间:2023-12-03 00:32:33 27 4
gpt4 key购买 nike

我正在尝试编写来自 here 的 Azure AD 用户身份验证代码。我正在提交有效的客户端 ID、用户名、密码、租户 ID、资源 ID。

它给了我以下错误:

java.util.concurrent.ExecutionException: com.microsoft.aad.adal4j.AuthenticationException: {"error":"invalid_request","error_description":"AADSTS90014: The request body must contain the following parameter: 'client_secret or client_assertion'.\r\nTrace ID: 7f98c473-96f9-48bd-b1ee-73dad520c226\r\nCorrelation ID: 35a8f4d9-bdb1-4dbe-ac58-5c41473ee3d1\r\nTimestamp: 2015-10-01 09:03:02Z"}

完整的堆栈跟踪是:

Enter username: xxxxxxx Enter password: xxxxxxx SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. java.util.concurrent.ExecutionException: com.microsoft.aad.adal4j.AuthenticationException: {"error":"invalid_request","error_description":"AADSTS90014: The request body must contain the following parameter: 'client_secret or client_assertion'.\r\nTrace ID: 7f98c473-96f9-48bd-b1ee-73dad520c226\r\nCorrelation ID: 35a8f4d9-bdb1-4dbe-ac58-5c41473ee3d1\r\nTimestamp: 2015-10-01 09:03:02Z"} at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) at PublicClient.getAccessTokenFromUserCredentials(PublicClient.java:47) at PublicClient.main(PublicClient.java:27) Caused by: com.microsoft.aad.adal4j.AuthenticationException: {"error":"invalid_request","error_description":"AADSTS90014: The request body must contain the following parameter: 'client_secret or client_assertion'.\r\nTrace ID: 7f98c473-96f9-48bd-b1ee-73dad520c226\r\nCorrelation ID: 35a8f4d9-bdb1-4dbe-ac58-5c41473ee3d1\r\nTimestamp: 2015-10-01 09:03:02Z"} at com.microsoft.aad.adal4j.AdalTokenRequest.executeOAuthRequestAndProcessResponse(AdalTokenRequest.java:97) at com.microsoft.aad.adal4j.AuthenticationContext.acquireTokenCommon(AuthenticationContext.java:770) at com.microsoft.aad.adal4j.AuthenticationContext.access$1(AuthenticationContext.java:757) at com.microsoft.aad.adal4j.AuthenticationContext$1.call(AuthenticationContext.java:130) at com.microsoft.aad.adal4j.AuthenticationContext$1.call(AuthenticationContext.java:1) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745)

如何解决异常?

最佳答案

AzureAD 支持两种流。一种需要 client_secret 或 client_assertion ,另一种则不需要。这些有时被称为公开或 secret 。如果将应用程序添加到 Azure 时,选择“Web 应用程序”,AzureAD 需要 secret 客户端,其中必须显示“证明”才能获取 token 。另一方面,公开则不需要证据。

关于java - 使用 ADAL 4j 在 java 中进行 Azure AD 用户身份验证给出 "The request body must contain the following parameter: ' client_secret 或 client_assertion”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32885017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com