我正在做sso示例(travelocity.com)示例。当我试图使用oauth访问令牌访问用户信息时,
curl -k -H“授权:无记名b68ba941c9da3d2644d8a63154d28”https://localhost:9443/oauth2/userinfo?schema=openid
我得到了一个错误
{“错误”:“insufficient_scope”,“error_description”:“访问令牌没有openid作用域”}
请帮忙,谢谢
发布于 2016-05-21 06:47:39
当您向授权端点发出第一个请求时,必须在openid请求参数中包含scope。OpenID连接核心1.0,3.1.2.1。认证请求如下所示。
范围 必需的。OpenID连接请求必须包含
openid作用域值。如果不存在openid作用域值,则完全不指定行为。可能存在其他作用域值。应该忽略不被实现理解的作用域值。有关本规范定义的附加作用域值,请参见第5.4和11节。
发布于 2022-11-19 06:17:54
对于那些试图将scope放入请求param但它不起作用的人,请将其放在POST /token请求中的请求体中。
curl --location --request POST 'http://keycloak.local.webapp/realms/WordSpreads/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=word-spreads-web' \
--data-urlencode 'username=bob' \
--data-urlencode 'password=king' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'scope=openid'我认为这种变化发生在钥匙斗篷-1902-释放
发布于 2016-05-21 09:52:47
默认情况下,travelocity.com sso示例web应用程序不会在其访问令牌请求中发送openid作用域。这就是您遇到错误的原因。
为了发送openid作用域以及Tra速尔示例中的访问令牌请求,您可以尝试以下操作:
更新
看起来QueryParams中的范围设置不起作用,有一个解决办法
您能按下面的方式更改OAuth2.TokenURL中的travelocity.propeties并试用吗?我在本地测试了这个,应该可以工作。
#OAuth2令牌端点URL
OAuth2.TokenURL=https://localhost:9443/oauth2/token?scope=openidhttps://stackoverflow.com/questions/37354555
复制相似问题