gpt4 book ai didi

azure - 无法访问 Azure 上的 OpenId UserInfo 端点(AADSTS90010 : JWT tokens cannot be used with the UserInfo endpoint)

转载 作者:行者123 更新时间:2023-12-03 04:43:19 27 4
gpt4 key购买 nike

我正在尝试使用以下 GET 访问 Office365 Azure 租户上用户的 OpenId UserInfo 端点:

GET https://login.windows.net/common/openid/userinfo HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJ(...remainder deleted for brevity...)
Host: login.windows.net

响应失败,并显示“400 Bad Request”,以及更具体的错误“AADSTS50063:凭据解析失败。AADSTS90010:JWT token 无法与 UserInfo 端点一起使用”

HTTP/1.1 400 Bad Request
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: text/html
Expires: -1
Server: Microsoft-IIS/8.5
x-ms-request-id: ef5c8a50-69b5-40f1-ac5f-9c0fc5180aa2
x-ms-gateway-service-instanceid: ESTSFE_IN_6
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
WWW-Authenticate: Bearer correlation_id="e5c613a0-0a21-40e1-9ef6- eacf77580608", error="invalid_request", error_codes="[50063, 90010]", error_description="AADSTS50063: Credential parsing failed. AADSTS90010: JWT tokens cannot be used with the UserInfo endpoint.%0d%0aTrace ID: ef5c8a50-69b5-40f1-ac5f-9c0fc5180aa2%0d%0aCorrelation ID: e5c613a0-0a21-40e1-9ef6-eacf77580608%0d%0aTimestamp: 2015-02-20 14:13:42Z", timestamp="2015-02-20 14:13:42Z", trace_id="ef5c8a50-69b5-40f1-ac5f-9c0fc5180aa2"
Set-Cookie: x-ms-gateway-slice=productionb; path=/; secure; HttpOnly
Set-Cookie: stsservicecookie=ests; path=/; secure; HttpOnly
X-Powered-By: ASP.NET
Date: Fri, 20 Feb 2015 14:13:40 GMT
Content-Length: 0

使用的持有者 token 是未过期的访问 token ,适用于其他操作,例如检索 Exchange 电子邮件。

此外,当我对“https://www.googleapis.com/plus/v1/people/me/openIdConnect”处的 openid userinfo 端点使用相同的 GET(作为 gmail 访问方案的一部分)时,它工作得很好

我在这里做错了什么吗?感谢您的帮助!

一些额外信息:

-已经尝试使用 id_token 而不是 access_token,但这没有什么区别。

-使用的 Oauth 范围是“个人资料电子邮件”

-请求的资源是“https://outlook.office365.com/

-客户端应用程序是 native 应用程序,并已启用“Windows Azure AD”和“Office 365 Exchange Online”的所有委派权限

最佳答案

Azure AD 用户信息端点目前不支持使用常规 JWT 访问 token 。相反,您可以通过不在对 token 端点的请求中指定任何资源来获取用户信息特定的访问 token 。您可以将用户信息端点视为其本身的资源,这需要特殊的 token 格式。

以授权码为例:

  • https://login.windows.net/common/oauth2/authorize?... 发出不带 resource 参数的 GET 请求,并获取authorization_code<
  • 使用authorization_code向https://login.windows.net/common/oauth2/token发出POST请求,同样不带resource参数。接收用户信息端点的访问 token 。
  • https://login.windows.net/common/openid/userinfo 的 GET 请求将 header 中的访问 token 作为 Authorization: Bearer AAAB(...rest of token ...)

关于azure - 无法访问 Azure 上的 OpenId UserInfo 端点(AADSTS90010 : JWT tokens cannot be used with the UserInfo endpoint),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28631635/

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