随笔分类 - keycloak
统一认证中心
摘要: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 ![](https://img2022.cnblogs.com/blog/118538/202209/118538-202209211742
阅读全文
摘要:direct grant我们把它理解为通过rest接口直接认证,这是oauth2里的密码认证方式,即`grant_type=password`,它不需要走授权码这种复杂的流程,相当于传统的表单认证;keycloak事实上为我们准备了一个direct grant,只不过它只能使用username和pa
阅读全文
摘要:keycloak运行在wildfly(jboss)中,如果希望查询它在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容器里,方便
阅读全文
摘要:重要的事说在前头 在/protocol/openid-connect/token请求过程中(认证,获取code,刷新token等), client_id要保持一致,不能混用 使用哪个client_id进行的表单登录,生成的code码,就用哪个client_id来获取token token中是哪个cl
阅读全文
摘要:1 OpenID & OAuth2 & SAML 1.1 相关资料 https://github.com/keycloak/keycloak https://www.keycloak.org/docs/latest/server_development https://docs.cbioportal
阅读全文
摘要:# 项目结构 ![1](https://img2020.cnblogs.com/blog/118538/202101/118538-20210129094545542-66687653.png) # 自定义SPI注册 ## 1. 直接复制文件方式 ```java docker cp keycloak
阅读全文
摘要:之前看了国内写的微信集成keycloak的文章,然后拿来就用了,但我的是jboss部署的keycloak,然后使用他的包之后,会出现类无法找到的问题,之后找了很多资料,多数都是国外的,在今天终于找到了解决这个问题的方法,首先你用shade,assemble去打包,把缺少的包打进来,这种方案是不行的,
阅读全文
摘要:在使用keycloak集成springboot的过程中,对于需要授权访问的接口,它会跳到keycloak里进行登录,之前有个redirect_uri,登录成功后会跳回本客户端,而这个地址默认没有修改的地方,需要我们手动开发,这块不是很方便。 # 自定义redirect_uri 一 重写BeanPos
阅读全文