gpt4 book ai didi

keycloak 仅持有者客户端 : why do they exist?

转载 作者:行者123 更新时间:2023-12-02 22:07:31 24 4
gpt4 key购买 nike

我正在尝试理解 Keycloak 中仅承载客户端的概念。

我了解公共(public)与 secret 的概念以及服务帐户的概念和 grant_type=client_credentials 内容。但对于bearer-only,我陷入了困境。

谷歌搜索仅显示讨论片段:

You cannot obtain a token from keycloak with a bearer-only client.

文档也不清楚。他们只说:

Bearer-only access type means that the application only allows bearer token requests.

好的,如果我的应用程序只允许不记名 token 请求,如果我无法使用客户端 ID/客户端 key 从 Keycloak 获取此 token ,我该如何获取此 token ?

如果你无法获得 token ,你能得到什么呢?为什么会有这些客户存在?有人可以提供使用此类客户端的示例吗?

最佳答案

仅承载访问类型含义

Bearer-only access type means that the application only allows bearertoken requests. If this is turned on, this application cannotparticipate in browser logins.

因此,如果您选择客户端作为仅承载,那么在这种情况下,keycloak 适配器将不会尝试对用户进行身份验证,而只会验证承载 token 。这就是为什么 keycloak 文档还提到 bearer-only 应用程序不允许从浏览器登录。

如果你无法获得 token ,你能得到什么呢?为什么会存在这些客户?

Your client can't be set as bearer-only on Keycloak Server. You canstill use bearer-only on the adapter configuration though. Keycloakdoesn't allow "bearer only" clients (when setting up your client onthe server) to obtain tokens from the server. Try to change yourclient to "confidential" on the server and set bearer-only on youradapter configuration (keycloak.json).

因此,如果您理解上述陈述,那么如果您有两个微服务在这种情况下相互通信,调用者将是 secret ,被调用者将是仅承载

Keycloak也提到了

Bearer only client are web service that never initiate a login .It’s typically used for securing the back-end.

因此,如果您想使用任何适配器,您可以根据需要使用bearer-only

编辑-

让我们更详细地了解一下..让我们看一个示例,我有一个 web-app 和一个用于我正在使用 React 的 web-app 的 rest-api/Angular/JSF 任何前端技术,对于后端,我使用基于Java的rest-apiNodejs

现在,对于上述要求,我必须保护这两个产品(web-app、rest-api),那么我的行动工作是什么?我如何通过 Keycloak 保护这两个应用程序的安全?

这里是详细说明

  1. 我必须在 keycloak 的领域内创建两个客户端
  2. 客户端 A 将由网络应用程序使用
  3. 客户端B将由rest-api使用
  4. 现在的问题是为什么有两个客户端?
  5. 对于网络应用程序,我们希望强制用户通过 GUI 登录,然后仅生成 token
  6. 对于rest-api,我们不需要基于GUI的api,因为这些api由网络应用程序使用,但仍然可以保护对rest-api的访问。
  7. 现在转到客户端 A 并使其访问类型 公共(public)客户端,以便网络应用程序将要求通过 keycloak GUI 或您的登录页面登录,然后生成 token <
  8. 因此,rest-api 使用上述步骤中生成的相同 token ,并根据用户角色和其他信息数据将获取。因此,客户端 B访问类型将是仅承载,因此网络应用程序生成的 token 将传递给rest-api,然后用于授权用户。

希望能有所帮助。有人想要添加更多他/她可以自由添加的内容。

关于keycloak 仅持有者客户端 : why do they exist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com