首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用服务帐户访问Keycloak REST管理API (客户凭据授予)

使用服务帐户访问Keycloak REST管理API (客户凭据授予)
EN

Stack Overflow用户
提问于 2018-09-08 19:45:12
回答 1查看 34.9K关注 0票数 17

我喜欢从我自己的应用程序中管理密钥披风:创建用户和客户端,显示用户和客户端。由于这不是真正的用户,而是一台机器,所以我想使用How to get Keycloak users via REST without admin account中建议的具有客户端凭据授权的服务帐户。为了实现这一点,我:

  1. 创建一个领域
  2. 在真实世界里创建了一个客户端
  3. 将客户端的访问类型配置为“机密”保存并激活“服务帐户启用”选项,该选项将在保存后追加。
  4. 在作用域下启用“真实管理”的客户端角色(见屏幕快照)

  1. 请求一个带有“用户名:密码”的访问令牌,base64编码在curl -X POST 'http://accounts.d10l.de/auth/realms/d10l/protocol/openid-connect/token' \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Authorization: Basic ZGV2ZWxvcGVyLXBvcnRhbDpmZGRmYzM4Yy05MzAyLTRlZmQtYTM3Yy1lMWFmZGEyMmRhMzc=" \ -d 'grant_type=client_credentials' \ | jq -r '.access_token'头中
  2. 尝试使用访问令牌访问用户:

curl -I GET 'http://accounts.d10l.de/auth/admin/realms/d10l/users/' \ -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIxRVdoNENFUjIweDY5SlBCekU4dU9GdXF4R2NVNlVfWmpTNTQ5bmd2QjNjIn0.eyJqdGkiOiI0NDM0ZDFhNS0xZTA5LTQ4MzQtYWI2Yy0zOTk1YmEwMTgxMzAiLCJleHAiOjE1MzY0MzYwMDEsIm5iZiI6MCwiaWF0IjoxNTM2NDM1NzAxLCJpc3MiOiJodHRwOi8vYWNjb3VudHMuZDEwbC5kZS9hdXRoL3JlYWxtcy9kMTBsIiwiYXVkIjoiZGV2ZWxvcGVyLXBvcnRhbCIsInN1YiI6IjliYWI0YWM1LTRiNWMtNGIxOS05ZTc3LWFjOWFmNzlkNzFhZiIsInR5cCI6IkJlYXJlciIsImF6cCI6ImRldmVsb3Blci1wb3J0YWwiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIyOWM2YWI3Mi05N2RiLTQ2NWUtYTE1Yy03ZWE5NzA0NmZlYzQiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbXSwicmVzb3VyY2VfYWNjZXNzIjp7fSwic2NvcGUiOiJlbWFpbCBwcm9maWxlIiwiY2xpZW50SWQiOiJkZXZlbG9wZXItcG9ydGFsIiwiY2xpZW50SG9zdCI6IjE3Mi4xNy4wLjEiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InNlcnZpY2UtYWNjb3VudC1kZXZlbG9wZXItcG9ydGFsIiwiY2xpZW50QWRkcmVzcyI6IjE3Mi4xNy4wLjEiLCJlbWFpbCI6InNlcnZpY2UtYWNjb3VudC1kZXZlbG9wZXItcG9ydGFsQHBsYWNlaG9sZGVyLm9yZyJ9.D_XnpF1rwCayup8h4UXM4AGWkY_xQo40X-yIlWhmqaxkVh1FQy24932VDRCAmxYHcrwazRMqO7snXmre3_8YF5R9Dt8GYjiBorECvQ9X_nBwunmHqnGxIeE64c2GXiz6zSjdgQJQE8fH10NsLyFWHQ-lBPsBwZBsrkKQ5QUEU2qjE7rDRPtYLJPB94BSE4QGfedmRIbvg39snVkClBDUmuBTq_Rc4p7kV69h0a2Mb1sgEr3MdB4RcsOe3gJPZVVtu7gZuGqcAQKMYgtybArF3OXz37w8hjUp6FABxDcvY7K-jsGxXn0hSU0OB7wxAWY9vP4ar4tQYlKxNjs46rPLWw"

但答复是403:

url: (6) Could not resolve host: GET HTTP/1.1 403 Forbidden content-length: 0 date: Sat, 08 Sep 2018 19:42:06 GMT

如何/是否可能通过客户端凭据授予从新的服务帐户访问Admin?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 12:37:00

Keycloak区分Scopes/Scope映射&角色管理。

Scopes选项卡:从上面的问题中可以看到,您只管理允许客户端请求的角色。

要使客户端凭据授予工作,必须在“服务帐户角色”选项卡中将这些角色分配给客户端。

因此,最终客户端将收到一个令牌,它是这两个配置的交集。

来源:accounts

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52238839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档