1

我需要配置 Keycloak 以获取 JWT 令牌,如本文所述,但我必须使用 cUrl 来完成。他们创建一个客户端,然后将其设置更新access typeconfidentialDirect Grant Flowtodirect grantBrowser Flowto browserPUT来自 Web UI 的执行此操作的请求有一些uuids他们似乎是从无处提取的。这是有效载荷的相关部分:

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

ClientRepresentation的文档没有帮助。他们显示所有字段都是可选的,这没有意义,并且authenticationFlowBindingOverrides是地图,但他们的地图文档中的链接已失效。

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

PUT 有效负载中也没有任何内容Access Typeconfidential.

如果有人在博客文章中有 UI 步骤的 cUrl 实现,将不胜感激。

4

1 回答 1

1

执行此操作的来自 Web UI 的 PUT 请求有一些 uuid,它们似乎无处可寻。

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

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

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

之后调用端点:

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 有效负载中也没有任何内容将访问类型设置为机密。

您需要将该字段设置publicClientfalse.

于 2020-12-20T19:41:03.497 回答