【问题标题】:Configuring Keycloak through its REST API with cUrl使用 cUrl 通过其 REST API 配置 Keycloak
【发布时间】:2021-03-30 16:16:53
【问题描述】:

我需要像 this blog post 那样配置 Keycloak 以获取 JWT 令牌,但我必须使用 cUrl 来完成。他们创建了一个客户端,然后将其更新为将access type 设置为confidentialDirect Grant Flow 设置为direct grant,并将Browser Flow 设置为browser。来自 Web UI 的 PUT 请求执行此操作有一些 uuids 他们似乎已经从无处退出。以下是有效载荷的相关部分:

"authenticationFlowBindingOverrides":{"browser":"6d77c4c7-15cf-4474-9b9f-7439dbc83b83","direct_grant":"5cb10cdb-9902-4f7f-b9da-68f887c49a75"}

ClientRepresentation 的文档没有帮助。它们显示所有字段都是可选的,这没有意义,并且 authenticationFlowBindingOverrides 是 Map,但 Map 的 link in their docs 已死。

有谁知道他们从哪里获得浏览器和 direct_grant 的 uuid?

PUT 有效负载中也没有任何内容将Access Type 设置为confidential

如果有人在blog post 中有 UI 步骤的 cUrl 实现,将不胜感激。

【问题讨论】:

    标签: rest keycloak openid-connect keycloak-rest-api


    【解决方案1】:

    来自执行此操作的 Web UI 的 PUT 请求有一些 uuid 他们似乎不知从何而来。

    那些 uuid 是由 keycloak 生成的,你需要调用端点来获取它们:

    GET KEYCLOAK_HOST/auth/admin/realms/<YOUR_REALM>/authentication/flows
    

    您需要从JSON 响应中解析它并获取alias: "browser" 和别名"direct grant" 的字段id

    之后调用端点:

    PUT KEYCLOAK_HOST/auth/admin/realms/<YOUR_REALM>/clients/<YOUR_CLIENT_ID>
    

    使用以下有效负载:

    '{"publicClient":false,"clientAuthenticatorType":"client-secret","authenticationFlowBindingOverrides":{"direct_grant":"<DIRECT_GRANT_ID>","browser":"<BROWSER_ID>"}}'
    

    PUT 有效负载中也没有任何内容将访问类型设置为 保密。

    您需要将字段publicClient 设置为false

    【讨论】:

      猜你喜欢
      • 2020-04-30
      • 1970-01-01
      • 2017-07-09
      • 2020-12-27
      • 2018-03-23
      • 1970-01-01
      • 2020-06-21
      • 2021-04-04
      • 2020-02-07
      相关资源
      最近更新 更多