当前位置: 首页 > 知识库问答 >
问题:

Keycloak公共客户端和授权

贺浩壤
2023-03-14

我们使用keycloak-adapter与Jetty一起使用KeyCloak进行身份验证和授权。根据OIDC Auth流程的Keycloak文档:

我们有连接到Jetty并使用Auth的webapps。因此,我们创建了一个公共客户端,它对WebApp/REST身份验证非常有效。
问题是,一旦我们启用授权,客户端类型就会从公共类型转换为机密类型,并且不允许将其重置为公共类型。现在,我们在汤里。由于授权,我们不能拥有公共客户端,也不能将webapps连接到机密客户端。
这似乎与我们相矛盾。你知道为什么客户需要保密授权吗?对此有任何帮助,我们如何克服这个问题?
谢谢。

共有1个答案

马才
2023-03-14

据我所知,前端和后端应用程序是分开的。如果前端是一个静态的Web应用程序,并且不是由相同的后端应用程序(服务器)提供服务,而后端是一个简单的REST API,那么您将配置两个Keycloak客户机:

    前端应用程序的
  • public客户端。它将负责获取JWT代币。
  • 只承载客户端,它将附加到后端应用程序。

为了启用授权,您将创建角色(域或客户端范围,从域级别开始,因为它更容易理解)。然后在Keycloak管理UI中为每个用户分配一个角色/S。在此基础上,您应该配置keycloak适配器配置(在后端)。

    null

附言。为了调试,我刚刚编写了一个名为brauzie的CLI工具,它将帮助您获取和分析JWT令牌(作用域、角色等)。它可以用于公共和机密客户。您还可以使用Postman和https://jwt.io

HTH:)

 类似资料:
  • 我有一个前端和后端应用程序(angular spring boot)。前端用作静态web内容,然后它将其余调用发送到同一端口上的后端API。 带有OpenID协议的keydape用于用户身份验证和角色管理。在需要身份验证的请求中,浏览器被重定向到KeyClope,用户给出用户名和密码,然后用户角色被返回到浏览器并写入访问令牌。 随后前端将此访问令牌与每个请求一起发送,后端在满足请求之前根据KeyC

  • 我可以使用,其中一个keycloak客户机与另一个keycloak客户机通信。然而,只有当我登录到第一个keycloak客户机时,它才起作用,即它向keycloak服务器发送客户机ID、客户机机密、用户名和密码。如果我没有在第一个客户机上使用用户和密码进行身份验证,我会得到“无法设置授权头,因为没有身份验证原则”。但是我已经将keycloak配置为对第一个客户机使用服务帐户(客户机凭据授权),因此

  • 后端 这是来自领域设置

  • 应如何管理它们? 一些更具体的问题: 根据定义,本机应用程序(实际上是公共客户端)不能安全地存储其凭据(client_id+secret)。是未注册的客户吗?如果我不能使用秘密来验证/验证它,我还应该做什么? 客户端注册≠endpoint注册:第一个是关于注册客户端凭据();第二个关于注册客户端重定向endpoint。重定向endpoint注册是否足以授予客户端的真实性? 客户端凭据授予是否使用相

  • 问题内容: 我已按照本指南进行操作,以便使用SSL层设置我的Tomcat 8实例,生成客户端和服务器密钥库以及自动签名的公共客户端证书。 我想问题是我真的不知道如何配置Tomcat的连接器… 这是我当前的server.xml文件(已删除不必要的注释): 使用此方法,我尝试访问tomcat欢迎页面: 本地主机:8443 https://本地主机 https:// localhost:8443 但是他

  • 我有一个JHipster网关和微服务,目前配置为通过KeyCloak使用OAuth/OIDC。目前,所有资源都可供经过身份验证的用户使用。我希望使用keycloak中可用的细粒度安全性(启用对JHipster微服务客户机id的授权),通过资源id(如keycloak文档中所引用的)https://www.keycloak.org/docs/latest/authorization_services