随笔分类 - keycloak
统一认证中心
摘要: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
阅读全文
摘要:我们需要认清session会话和token令牌的区别,在keycloak中,他们是不同的两个概念,职责也不一样。 session【session_state】 它被保存到浏览器的cookie中,有4个会话属性,这主要基于高低版本浏览器和记住我功能考虑而设计的 按着kc系统获取会话的优先级,他们分别是
阅读全文
摘要:# JWT没有被持久化? * 我们总是说,JWT(json web token)是一个自解释的token,里面有用户相关的信息,它不需要被保存在服务端,降低了服务端的压力; * 同时有人会说,如果希望验证token的实时在线性,你用JWT怎么实现? * 有一些人直接会说,把这个JWT保存到redis
阅读全文
摘要:jwt扩展字段介绍 为了实现业务的定制化需求和开发人员使用的便利,对kc的JWT进行了扩展,这个扩展字段在解析JWT之后都可以看到。 jwt的payload { "exp": 1675329802, "iat": 1675329622, "jti": "2a80e925-b9ce-464f-822d
阅读全文
摘要:# 17.1远程资源授权准备 ## 17.1.1认证和访问流程图 参考:http://www.zyiz.net/tech/detail-141309.html 中,如果希望查询它在jboss中的运行情况,如堆内存,线程,GC等,可以通过jconsole进行远程监控。 参考: https://goldmann.pl/blog/2013/04/16/jmx-connections-to-jboss-as/ ht
阅读全文
摘要:由于我的jboss项目去在容器中运行的,所以我习惯上把这些扩展功能添加到cli文件 ,然后在Dockerfile里把它们进行添加,动态为主程序添加功能。 * Dockerfile ``` FROM jboss/keycloak:14.0.0 USER root # 日志 ADD log4.cli /
阅读全文
摘要:官方的keycloak的适配器并没有提供.net版本的,所以我们需要自己去实现一下,目前打算把资源服务器对接KC之后,让资源服务器的API接口通过KC的UMA授权方式来管理起来,所以需要对这个功能进行开发,springboot版本官方已经实现,.net core版本我们自己实现了一下,对UMA授权不
阅读全文
摘要:之前写过基于keycloak11.0.3版的[微信认证](https://www.cnblogs.com/lori/p/14274547.html)的实现,而在升级到keycloak14.0.0之后,这个认证出现了问题,原因是因为人家keycloak内部源码又变了。 * 影响类文件 `server-
阅读全文
摘要:keycloak缓存的级别,往大了说有realm级的,一个realm是一个缓存,这也是它的生命周期;往小了说,也有user级的,即一个用户一个缓存,当a用户和b用户,它们的缓存是两个。 # 缓存提供者 `InfinispanConnectionProvider`是一个接口,主要是对infinispa
阅读全文
摘要:keycloak提供了完善的授权功能,即在kc端对资源服务器的各种资源进行管理,然后就可以完成对它们的管控,这些资源可以根据kc的用户、角色、组等信息进行授权。 资源服务器客户端配置 以springboot接口KC为例,说一下它的配置文件 keycloak: auth-server-url: htt
阅读全文
摘要:# keycloak11.0.3 由于`undertow`不支持中文的cookie,所以如果使用记住密码功能时,存储的`KEYCLOAK_REMEMBER_ME`会出现错误,导致应用程序崩溃。 * 原码 ![](https://img2020.cnblogs.com/blog/118538/2021
阅读全文
摘要:场景 keycloak出现"用户已登录"的界面的场景我们需要先搞清楚,主要是这样的操作: 用户打开一个浏览器,在上面同时打开多个登录窗口 用户先在一个窗口上进行登录 用户再第二个窗口上再进行登录 这时,出现用户已经登录,事实上,在kc上,如果你已经登录了,则不能再使用其它用户登录了 原因 同一个浏览
阅读全文
摘要:登录状态保持,即当用户关闭浏览器之后,下次打开kc仍然保持登录状态,这是通过kc里的记住密码功能实现的 原理 通过在kc下的cookies添加KEYCLOAK_REMEMBER_ME,用来标签是否使用持久化的sessionId,默认情况下,kc使用会话级的sessionId,即AUTH_SESSIO
阅读全文
摘要:# cookie的几个属性 1 httpOnly:true 表示禁止客户端读cookie,即只能在服务端读取它 2 SameSite:用来限制第三方 Cookie,从而减少安全风险。 * Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当
阅读全文
摘要:rest资源 对于我们集成keycloak来说,你可能会遇到它没有实现的功能,这时需要对kc进行扩展,资源的扩展是其中一个方面,它需要实现RealmResourceProvider和RealmResourceProviderFactory两个接口,然后在KC启动之后,它可以被注册到IOC容器里,方便
阅读全文
浙公网安备 33010602011771号