访问令牌没有 openid 范围
Access token does not have the openid scope
我正在做 sso 示例 (travelocity.com) 示例。当我尝试使用此命令使用 oauth 访问令牌访问用户信息时,
curl -k -H "Authorization: Bearer b68ba941c9da3d2644d8a63154d28"
https://localhost:9443/oauth2/userinfo?schema=openid
我收到以下错误
{"error":"insufficient_scope","error_description":"Access token does
not have the openid scope"}
请帮忙,谢谢
当您向授权端点发出第一个请求时,您必须在 scope
请求参数中包含 openid
。 OpenID Connect Core 1.0, 3.1.2.1. Authentication Request 表示如下
scope
REQUIRED. OpenID Connect requests MUST contain the openid
scope value. If the openid
scope value is not present, the behavior is entirely unspecified. Other scope values MAY be present. Scope values used that are not understood by an implementation SHOULD be ignored. See Sections 5.4 and 11 for additional scope values defined by this specification.
默认情况下,travelocity.com sso 示例 Web 应用程序不会在其访问令牌请求中发送 openid 范围。这就是您遇到的错误的原因。
为了发送 openid 范围以及 travelocity 示例中的访问令牌请求,您可以尝试以下操作,
- 在示例网络应用程序中打开 travelocity.properties[1] 文件(您可以在 travelocity 中找到它。com/WEB-INF/classe)
取消注释并编辑文件[1]中的QueryParams 属性,如下所示
QueryParams=scope=openid
保存属性文件并重新部署 Web 应用程序,现在尝试在 userinfo 端点上生成的访问令牌:)
更新
在 QueryParams 中设置范围似乎不起作用,
有一个解决方法
你能把travelocity.propeties中的OAuth2.TokenURL改成下面这样试试吗?我在本地测试过,应该可以。
#OAuth2 令牌端点URL
OAuth2.TokenURL=https://localhost:9443/oauth2/token?scope=openid
我正在做 sso 示例 (travelocity.com) 示例。当我尝试使用此命令使用 oauth 访问令牌访问用户信息时,
curl -k -H "Authorization: Bearer b68ba941c9da3d2644d8a63154d28" https://localhost:9443/oauth2/userinfo?schema=openid
我收到以下错误
{"error":"insufficient_scope","error_description":"Access token does not have the openid scope"}
请帮忙,谢谢
当您向授权端点发出第一个请求时,您必须在 scope
请求参数中包含 openid
。 OpenID Connect Core 1.0, 3.1.2.1. Authentication Request 表示如下
scope
REQUIRED. OpenID Connect requests MUST contain the
openid
scope value. If theopenid
scope value is not present, the behavior is entirely unspecified. Other scope values MAY be present. Scope values used that are not understood by an implementation SHOULD be ignored. See Sections 5.4 and 11 for additional scope values defined by this specification.
默认情况下,travelocity.com sso 示例 Web 应用程序不会在其访问令牌请求中发送 openid 范围。这就是您遇到的错误的原因。
为了发送 openid 范围以及 travelocity 示例中的访问令牌请求,您可以尝试以下操作,
- 在示例网络应用程序中打开 travelocity.properties[1] 文件(您可以在 travelocity 中找到它。com/WEB-INF/classe)
取消注释并编辑文件[1]中的QueryParams 属性,如下所示
QueryParams=scope=openid
保存属性文件并重新部署 Web 应用程序,现在尝试在 userinfo 端点上生成的访问令牌:)
更新
在 QueryParams 中设置范围似乎不起作用, 有一个解决方法
你能把travelocity.propeties中的OAuth2.TokenURL改成下面这样试试吗?我在本地测试过,应该可以。
#OAuth2 令牌端点URL
OAuth2.TokenURL=https://localhost:9443/oauth2/token?scope=openid