合集-keycloak
摘要:rest资源 对于我们集成keycloak来说,你可能会遇到它没有实现的功能,这时需要对kc进行扩展,资源的扩展是其中一个方面,它需要实现RealmResourceProvider和RealmResourceProviderFactory两个接口,然后在KC启动之后,它可以被注册到IOC容器里,方便
阅读全文
摘要:使用自定义证书 需要先生成一对证书,其中.crt文件是公钥,也叫证书,在浏览器上可以看到;.key文件是私钥,由网站服务器自己保留。 keycloak ssl keycloak的ssl默认有自己的自签名证书,这个如果涉及到你的程序调用kc的接口,kc使用自定义证书是不行的,你调不通,使用使用正规的证
阅读全文
摘要:对于KC的后台或者接口的操作,当用户,组,角色这些实体状态发生改变时,KC会对外发布事件,而这些事件处理程序我们是可以在后台配置的,默认继承了jboss-logging日志事件,而我们可以在事件管理中去配置自己的事件处理程序。 keycloak事件驱动设计模式 事件处理程序SPI 实现EventLi
阅读全文
摘要:keycloak我们都以docker为例子,来讲一下https的部署。 https更安全,加密传输 kc有些cookies,需要https的支持 nginx部署 upstream keycloak { server 192.168.*.*:8080; } server { server_name k
阅读全文
摘要:对于kc高可用方案有多种,像TCPPING,JDBC_PING,KUBE_PING,DNS_PING等,不过目前我使用JDBC_PING实验成功了,它会把集群中节点信息存储到数据表里,然后我们在k8s里,由于我们为PING开放的是clusterIP的端口7600,所以需要配置podIP,这样,你的链
阅读全文
摘要:keycloak提供多种认证提供者,如用户名密码的方式,第三方社区的方式,一般来说,第三方社区的方式都是符合oauth2标准的,第三方社区像github,google,weixin之类的都需要你去申请个appid,appsecret,而这些信息我们不要硬编码,kc为我们提供了一种配置的方式,在kc管
阅读全文
摘要:我们需要认清session会话和token令牌的区别,在keycloak中,他们是不同的两个概念,职责也不一样。 session【session_state】 它被保存到浏览器的cookie中,有4个会话属性,这主要基于高低版本浏览器和记住我功能考虑而设计的 按着kc系统获取会话的优先级,他们分别是
阅读全文
摘要:jwt扩展字段介绍 为了实现业务的定制化需求和开发人员使用的便利,对kc的JWT进行了扩展,这个扩展字段在解析JWT之后都可以看到。 jwt的payload { "exp": 1675329802, "iat": 1675329622, "jti": "2a80e925-b9ce-464f-822d
阅读全文
摘要:官方的keycloak的适配器并没有提供.net版本的,所以我们需要自己去实现一下,目前打算把资源服务器对接KC之后,让资源服务器的API接口通过KC的UMA授权方式来管理起来,所以需要对这个功能进行开发,springboot版本官方已经实现,.net core版本我们自己实现了一下,对UMA授权不
阅读全文
摘要:keycloak提供了完善的授权功能,即在kc端对资源服务器的各种资源进行管理,然后就可以完成对它们的管控,这些资源可以根据kc的用户、角色、组等信息进行授权。 资源服务器客户端配置 以springboot接口KC为例,说一下它的配置文件 keycloak: auth-server-url: htt
阅读全文
摘要:场景 keycloak出现"用户已登录"的界面的场景我们需要先搞清楚,主要是这样的操作: 用户打开一个浏览器,在上面同时打开多个登录窗口 用户先在一个窗口上进行登录 用户再第二个窗口上再进行登录 这时,出现用户已经登录,事实上,在kc上,如果你已经登录了,则不能再使用其它用户登录了 原因 同一个浏览
阅读全文
摘要:登录状态保持,即当用户关闭浏览器之后,下次打开kc仍然保持登录状态,这是通过kc里的记住密码功能实现的 原理 通过在kc下的cookies添加KEYCLOAK_REMEMBER_ME,用来标签是否使用持久化的sessionId,默认情况下,kc使用会话级的sessionId,即AUTH_SESSIO
阅读全文
摘要:我不知道为什么kc没有为对应的查询字段加索引,导致我们在使用kc时,当用户表数据量达到几十万时,出现所有增删改接口缓慢的问题,这个问题的原因,我找了好长时间,我在大数据量时找这个缓慢原因过程 查看mysql的并发数的限制 查看top产生的cpu,内在的使用情况 查看客户端到kc端,kc端到数据库的网
阅读全文
摘要:keycloak提供了登出的接口,不过它是一个post方法,需要你根据client_id,client_secret及refresh_token进行登出操作的,有时不太灵活,所以我又自己封装了一下,通过客户端浏览器上存储的session_id进行会话登出。 # kc提供的logout * api:{
阅读全文
摘要:首先我们应该知道,写到数据库里的时间,主要和你的mysql时区`system_time_zone`有关,而把mysql里的数据取出来,以json形式响应到浏览器上,这个时间会经过反序列化的过程,这时时间和注解`@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",
阅读全文
摘要:# keycloak存到cookie中的值 * AUTH_SESSION_ID * KEYCLOAK_IDENTITY * KEYCLOAK_SESSION ## AUTH_SESSION_ID 用户的当前session_state,它是会话级的,关闭浏览器就没了 ## KEYCLOAK_IDENT
阅读全文
摘要:安全配置Security Defenses 通过对Security Defenses的配置 ,可以对http头添加相应的安全配置 ,如CSP, X-Frame-Options, X-Content-Type-Option等 1 X-Frame-Options 推荐使用CSP,不建议使用X-Frame
阅读全文
摘要:# JWT没有被持久化? * 我们总是说,JWT(json web token)是一个自解释的token,里面有用户相关的信息,它不需要被保存在服务端,降低了服务端的压力; * 同时有人会说,如果希望验证token的实时在线性,你用JWT怎么实现? * 有一些人直接会说,把这个JWT保存到redis
阅读全文
摘要:# 一种互联网通信协议和标准 Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件
阅读全文
摘要:# 17.1远程资源授权准备 ## 17.1.1认证和访问流程图 参考:http://www.zyiz.net/tech/detail-141309.html ![](https://img2022.cnblogs.com/blog/118538/202209/118538-202209211742
阅读全文