合集-keycloak

摘要:rest资源 对于我们集成keycloak来说,你可能会遇到它没有实现的功能,这时需要对kc进行扩展,资源的扩展是其中一个方面,它需要实现RealmResourceProvider和RealmResourceProviderFactory两个接口,然后在KC启动之后,它可以被注册到IOC容器里,方便 阅读全文
posted @ 2021-05-12 10:23 张占岭 阅读(1508) 评论(0) 推荐(0)
摘要:使用自定义证书 需要先生成一对证书,其中.crt文件是公钥,也叫证书,在浏览器上可以看到;.key文件是私钥,由网站服务器自己保留。 keycloak ssl keycloak的ssl默认有自己的自签名证书,这个如果涉及到你的程序调用kc的接口,kc使用自定义证书是不行的,你调不通,使用使用正规的证 阅读全文
posted @ 2021-08-03 16:15 张占岭 阅读(2296) 评论(0) 推荐(0)
摘要:对于KC的后台或者接口的操作,当用户,组,角色这些实体状态发生改变时,KC会对外发布事件,而这些事件处理程序我们是可以在后台配置的,默认继承了jboss-logging日志事件,而我们可以在事件管理中去配置自己的事件处理程序。 keycloak事件驱动设计模式 事件处理程序SPI 实现EventLi 阅读全文
posted @ 2021-09-06 21:06 张占岭 阅读(552) 评论(0) 推荐(0)
摘要:keycloak我们都以docker为例子,来讲一下https的部署。 https更安全,加密传输 kc有些cookies,需要https的支持 nginx部署 upstream keycloak { server 192.168.*.*:8080; } server { server_name k 阅读全文
posted @ 2021-08-31 17:24 张占岭 阅读(3235) 评论(0) 推荐(0)
摘要:对于kc高可用方案有多种,像TCPPING,JDBC_PING,KUBE_PING,DNS_PING等,不过目前我使用JDBC_PING实验成功了,它会把集群中节点信息存储到数据表里,然后我们在k8s里,由于我们为PING开放的是clusterIP的端口7600,所以需要配置podIP,这样,你的链 阅读全文
posted @ 2021-08-28 15:49 张占岭 阅读(977) 评论(1) 推荐(0)
摘要:keycloak提供多种认证提供者,如用户名密码的方式,第三方社区的方式,一般来说,第三方社区的方式都是符合oauth2标准的,第三方社区像github,google,weixin之类的都需要你去申请个appid,appsecret,而这些信息我们不要硬编码,kc为我们提供了一种配置的方式,在kc管 阅读全文
posted @ 2021-08-24 15:58 张占岭 阅读(550) 评论(0) 推荐(0)
摘要:我们需要认清session会话和token令牌的区别,在keycloak中,他们是不同的两个概念,职责也不一样。 session【session_state】 它被保存到浏览器的cookie中,有4个会话属性,这主要基于高低版本浏览器和记住我功能考虑而设计的 按着kc系统获取会话的优先级,他们分别是 阅读全文
posted @ 2023-02-10 11:28 张占岭 阅读(1454) 评论(0) 推荐(0)
摘要:jwt扩展字段介绍 为了实现业务的定制化需求和开发人员使用的便利,对kc的JWT进行了扩展,这个扩展字段在解析JWT之后都可以看到。 jwt的payload { "exp": 1675329802, "iat": 1675329622, "jti": "2a80e925-b9ce-464f-822d 阅读全文
posted @ 2023-02-03 10:16 张占岭 阅读(851) 评论(0) 推荐(0)
摘要:官方的keycloak的适配器并没有提供.net版本的,所以我们需要自己去实现一下,目前打算把资源服务器对接KC之后,让资源服务器的API接口通过KC的UMA授权方式来管理起来,所以需要对这个功能进行开发,springboot版本官方已经实现,.net core版本我们自己实现了一下,对UMA授权不 阅读全文
posted @ 2021-11-18 17:19 张占岭 阅读(454) 评论(1) 推荐(0)
摘要:keycloak提供了完善的授权功能,即在kc端对资源服务器的各种资源进行管理,然后就可以完成对它们的管控,这些资源可以根据kc的用户、角色、组等信息进行授权。 资源服务器客户端配置 以springboot接口KC为例,说一下它的配置文件 keycloak: auth-server-url: htt 阅读全文
posted @ 2021-10-25 10:58 张占岭 阅读(2399) 评论(0) 推荐(0)
摘要:场景 keycloak出现"用户已登录"的界面的场景我们需要先搞清楚,主要是这样的操作: 用户打开一个浏览器,在上面同时打开多个登录窗口 用户先在一个窗口上进行登录 用户再第二个窗口上再进行登录 这时,出现用户已经登录,事实上,在kc上,如果你已经登录了,则不能再使用其它用户登录了 原因 同一个浏览 阅读全文
posted @ 2021-10-13 11:03 张占岭 阅读(771) 评论(0) 推荐(0)
摘要:登录状态保持,即当用户关闭浏览器之后,下次打开kc仍然保持登录状态,这是通过kc里的记住密码功能实现的 原理 通过在kc下的cookies添加KEYCLOAK_REMEMBER_ME,用来标签是否使用持久化的sessionId,默认情况下,kc使用会话级的sessionId,即AUTH_SESSIO 阅读全文
posted @ 2021-10-08 09:31 张占岭 阅读(1058) 评论(0) 推荐(0)
摘要:我不知道为什么kc没有为对应的查询字段加索引,导致我们在使用kc时,当用户表数据量达到几十万时,出现所有增删改接口缓慢的问题,这个问题的原因,我找了好长时间,我在大数据量时找这个缓慢原因过程 查看mysql的并发数的限制 查看top产生的cpu,内在的使用情况 查看客户端到kc端,kc端到数据库的网 阅读全文
posted @ 2021-09-10 10:11 张占岭 阅读(433) 评论(0) 推荐(0)
摘要:keycloak提供了登出的接口,不过它是一个post方法,需要你根据client_id,client_secret及refresh_token进行登出操作的,有时不太灵活,所以我又自己封装了一下,通过客户端浏览器上存储的session_id进行会话登出。 # kc提供的logout * api:{ 阅读全文
posted @ 2023-05-31 08:35 张占岭 阅读(979) 评论(1) 推荐(0)
摘要:首先我们应该知道,写到数据库里的时间,主要和你的mysql时区`system_time_zone`有关,而把mysql里的数据取出来,以json形式响应到浏览器上,这个时间会经过反序列化的过程,这时时间和注解`@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", 阅读全文
posted @ 2023-04-12 14:27 张占岭 阅读(344) 评论(0) 推荐(2)
摘要:# keycloak存到cookie中的值 * AUTH_SESSION_ID * KEYCLOAK_IDENTITY * KEYCLOAK_SESSION ## AUTH_SESSION_ID 用户的当前session_state,它是会话级的,关闭浏览器就没了 ## KEYCLOAK_IDENT 阅读全文
posted @ 2023-03-30 14:43 张占岭 阅读(994) 评论(0) 推荐(1)
摘要:安全配置Security Defenses 通过对Security Defenses的配置 ,可以对http头添加相应的安全配置 ,如CSP, X-Frame-Options, X-Content-Type-Option等 1 X-Frame-Options 推荐使用CSP,不建议使用X-Frame 阅读全文
posted @ 2023-03-21 18:34 张占岭 阅读(336) 评论(0) 推荐(0)
摘要:# JWT没有被持久化? * 我们总是说,JWT(json web token)是一个自解释的token,里面有用户相关的信息,它不需要被保存在服务端,降低了服务端的压力; * 同时有人会说,如果希望验证token的实时在线性,你用JWT怎么实现? * 有一些人直接会说,把这个JWT保存到redis 阅读全文
posted @ 2023-02-10 10:12 张占岭 阅读(373) 评论(0) 推荐(0)
摘要:# 一种互联网通信协议和标准 Request For Comments(RFC),是一系列以编号排定的文件。文件收集了有关互联网相关信息,以及UNIX和互联网社区的软件文件。RFC文件是由Internet Society(ISOC)赞助发行。基本的互联网通信协议都有在RFC文件内详细说明。RFC文件 阅读全文
posted @ 2022-10-13 08:58 张占岭 阅读(247) 评论(0) 推荐(0)
摘要:# 17.1远程资源授权准备 ## 17.1.1认证和访问流程图 参考:http://www.zyiz.net/tech/detail-141309.html ![](https://img2022.cnblogs.com/blog/118538/202209/118538-202209211742 阅读全文
posted @ 2022-09-21 17:46 张占岭 阅读(477) 评论(0) 推荐(0)
摘要:direct grant我们把它理解为通过rest接口直接认证,这是oauth2里的密码认证方式,即`grant_type=password`,它不需要走授权码这种复杂的流程,相当于传统的表单认证;keycloak事实上为我们准备了一个direct grant,只不过它只能使用username和pa 阅读全文
posted @ 2022-01-13 16:39 张占岭 阅读(982) 评论(0) 推荐(0)
摘要:keycloak运行在wildfly(jboss)中,如果希望查询它在jboss中的运行情况,如堆内存,线程,GC等,可以通过jconsole进行远程监控。 参考: https://goldmann.pl/blog/2013/04/16/jmx-connections-to-jboss-as/ ht 阅读全文
posted @ 2022-01-12 09:14 张占岭 阅读(361) 评论(0) 推荐(0)
摘要:由于我的jboss项目去在容器中运行的,所以我习惯上把这些扩展功能添加到cli文件 ,然后在Dockerfile里把它们进行添加,动态为主程序添加功能。 * Dockerfile ``` FROM jboss/keycloak:14.0.0 USER root # 日志 ADD log4.cli / 阅读全文
posted @ 2021-12-24 10:43 张占岭 阅读(215) 评论(0) 推荐(0)
摘要:之前写过基于keycloak11.0.3版的[微信认证](https://www.cnblogs.com/lori/p/14274547.html)的实现,而在升级到keycloak14.0.0之后,这个认证出现了问题,原因是因为人家keycloak内部源码又变了。 * 影响类文件 `server- 阅读全文
posted @ 2021-11-02 14:56 张占岭 阅读(535) 评论(0) 推荐(0)
摘要:keycloak缓存的级别,往大了说有realm级的,一个realm是一个缓存,这也是它的生命周期;往小了说,也有user级的,即一个用户一个缓存,当a用户和b用户,它们的缓存是两个。 # 缓存提供者 `InfinispanConnectionProvider`是一个接口,主要是对infinispa 阅读全文
posted @ 2021-10-28 17:42 张占岭 阅读(750) 评论(0) 推荐(0)
摘要:# keycloak11.0.3 由于`undertow`不支持中文的cookie,所以如果使用记住密码功能时,存储的`KEYCLOAK_REMEMBER_ME`会出现错误,导致应用程序崩溃。 * 原码 ![](https://img2020.cnblogs.com/blog/118538/2021 阅读全文
posted @ 2021-10-14 15:06 张占岭 阅读(293) 评论(0) 推荐(0)
摘要:对于keycloak来说,它的管理平台在它的源码中的admin-client中,它会定义相关的rest接口规范;在我们使用keycloak管理平台时,其中有一个组的查询,在我们查询中文组时,它是不支持的,经过测试和mysql日志监控得到原因: 1. keycloak rest使用`javax.ws. 阅读全文
posted @ 2021-07-09 08:50 张占岭 阅读(317) 评论(0) 推荐(0)
摘要:# cookie的几个属性 1 httpOnly:true 表示禁止客户端读cookie,即只能在服务端读取它 2 SameSite:用来限制第三方 Cookie,从而减少安全风险。 * Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当 阅读全文
posted @ 2021-07-21 09:56 张占岭 阅读(3735) 评论(0) 推荐(0)
摘要:重要的事说在前头 在/protocol/openid-connect/token请求过程中(认证,获取code,刷新token等), client_id要保持一致,不能混用 使用哪个client_id进行的表单登录,生成的code码,就用哪个client_id来获取token token中是哪个cl 阅读全文
posted @ 2021-04-29 10:12 张占岭 阅读(9822) 评论(3) 推荐(1)
摘要:1 OpenID & OAuth2 & SAML 1.1 相关资料 https://github.com/keycloak/keycloak https://www.keycloak.org/docs/latest/server_development https://docs.cbioportal 阅读全文
posted @ 2021-04-29 10:05 张占岭 阅读(2355) 评论(0) 推荐(0)
摘要:# 项目结构 ![1](https://img2020.cnblogs.com/blog/118538/202101/118538-20210129094545542-66687653.png) # 自定义SPI注册 ## 1. 直接复制文件方式 ```java docker cp keycloak 阅读全文
posted @ 2021-01-29 09:49 张占岭 阅读(2451) 评论(0) 推荐(0)
摘要:之前看了国内写的微信集成keycloak的文章,然后拿来就用了,但我的是jboss部署的keycloak,然后使用他的包之后,会出现类无法找到的问题,之后找了很多资料,多数都是国外的,在今天终于找到了解决这个问题的方法,首先你用shade,assemble去打包,把缺少的包打进来,这种方案是不行的, 阅读全文
posted @ 2021-01-13 21:29 张占岭 阅读(3754) 评论(0) 推荐(0)
摘要:在使用keycloak集成springboot的过程中,对于需要授权访问的接口,它会跳到keycloak里进行登录,之前有个redirect_uri,登录成功后会跳回本客户端,而这个地址默认没有修改的地方,需要我们手动开发,这块不是很方便。 # 自定义redirect_uri 一 重写BeanPos 阅读全文
posted @ 2020-11-03 15:51 张占岭 阅读(2435) 评论(0) 推荐(0)
摘要:# 概念 在Java中,`CountDownLatch`是一个线程同步的辅助类,用于等待其他线程完成操作。如果`CountDownLatch`实例被丢失或无法访问,可能会导致无法正常使用该对象。这可能会导致等待线程永远处于等待状态,无法继续执行。 如果意外丢失了`CountDownLatch`对象, 阅读全文
posted @ 2023-06-21 13:09 张占岭 阅读(97) 评论(0) 推荐(0)
摘要:# AbstractJsonUserAttributeMapper 它是一个抽象类,用来更新条件更新用户属性(user_attribute)的信息,我们在实现自己的mapper时,需要关注3个方法,下面分别介绍一下: ## getCompatibleProviders方法 它用来直指你的mapper 阅读全文
posted @ 2023-07-17 13:06 张占岭 阅读(166) 评论(0) 推荐(1)
摘要:# EventListenerProvider初始 keycloak提供的事件处理机制,可以通过实现EventListenerProvider接口来实现自定义的事件处理逻辑。在keycloak启动时,会通过ServiceLoader机制加载所有的EventListenerProvider实现类,并将 阅读全文
posted @ 2023-07-19 17:11 张占岭 阅读(85) 评论(0) 推荐(0)
摘要:# MFA多因子认证配置 Keycloak 是一个开源的身份和访问管理解决方案,支持多因素认证(MFA)的配置非常灵活。下面是一些涉及Keycloak MFA相关的配置和步骤: 1. **启用MFA**: - 登录到Keycloak管理控制台。 - 找到您的Realm(领域)并进入Realm设置。 阅读全文
posted @ 2023-07-26 09:49 张占岭 阅读(1108) 评论(0) 推荐(0)
摘要:Infinispan 是一个基于分布式系统的内存数据存储和缓存平台,它的集群实现原理涉及到节点的发现和通信。在 Infinispan 中,集群是由多个节点组成的,每个节点都存储着数据的一部分,并且通过通信来保持数据的一致性和可用性。 Infinispan 集群的实现原理主要包括以下几个关键点: 1. 阅读全文
posted @ 2023-08-22 19:53 张占岭 阅读(252) 评论(0) 推荐(0)
摘要:在 Infinispan 配置文件中切换发现协议从广播到组播,需要修改 JGroups 的配置,因为 Infinispan 使用 JGroups 来处理集群通信和发现。下面是一个示例,展示如何将配置从广播切换到组播。 首先,确保您已经有一个 Infinispan 配置文件,比如 `infinispa 阅读全文
posted @ 2023-08-22 20:07 张占岭 阅读(211) 评论(0) 推荐(0)
摘要:在keycloak中集成了各种社区用户的登录与同步方案,当用户从第三方完成oauth认证之后,回调到keycloak的endpoint地址,在这里将会获取社区用户的信息,完成对数据从社区网站到keycloak网站的同步操作,下面介绍3种同步时的类型,下图是配置同步截图: 各种模块介绍 在Keyclo 阅读全文
posted @ 2023-10-11 09:57 张占岭 阅读(302) 评论(0) 推荐(0)
摘要:reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用。它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证。 它的使用方式如下如所示,只需勾选复选框即可通过人机验证。 虽然简单但效果很好,因为Google会收集一些浏览器信息,网络信息,鼠标轨迹 阅读全文
posted @ 2023-10-20 14:59 张占岭 阅读(313) 评论(0) 推荐(0)
摘要:我们在对keycloak框架中的核心项目keycloak-services进行二次开发过程中,发现了一个问题,当时有这种需求,在keycloak-services中需要使用infinispan缓存,我们直接添加infinispan-core引用之后,在启动keycloak进出错了,提示我们没有找到i 阅读全文
posted @ 2023-10-30 13:38 张占岭 阅读(630) 评论(0) 推荐(1)
摘要:keycloak目前提供了几种分布式缓存,我们自己的缓存,如果希望是分布式的,可以将缓存添加到以下几个缓存里即可 actionTokens clientSessions loginFailures offlineClientSessions offlineSessions sessions work 阅读全文
posted @ 2023-11-21 19:26 张占岭 阅读(525) 评论(0) 推荐(0)
摘要:问题出现的前提 keycloak通过k8s部署,并进行了集群部署,共2个节点 通过域名解析后,直接到外网LB,在LB上配置了k8s-ingress的IP,端口是80和443 在keycloak应用的ingress配置中,对域名进行了keycloak服务的绑定 问题的描述 有时间无法完成登录,点登录后 阅读全文
posted @ 2023-11-23 13:27 张占岭 阅读(531) 评论(0) 推荐(0)
摘要:keycloak可以帮助我们实现这个功能:用户token每5分钟失效一次,失效后通过refresh_token来换新的token,而refresh_token每30天失效一次,但如果用户3天都没有任何操作(就是没有用refresh_token去换新的token),那么3天后也让refresh_tok 阅读全文
posted @ 2023-11-27 17:41 张占岭 阅读(790) 评论(0) 推荐(0)
摘要:login-status-iframe.html是keycloak为我们提供的一种检测用户登录状态的页面,它要求用户对接的系统通过iframe进行嵌入,然后通过window.addEventListener去订阅子页面的信息。 提示: 所有 HTML DOM 事件,可以查看我们完整的https:// 阅读全文
posted @ 2023-12-23 20:18 张占岭 阅读(300) 评论(1) 推荐(0)
摘要:上次我们说了,keycloak的login-status-iframe页面的作用,并解决了跨域情况下,iframe与主页面数据传递的方法,这一次,我们主要分析login-status-iframe.html这个文件的源码,然后分析在我们系统中如何与这个页面对接。 先看一下流程图 login-stat 阅读全文
posted @ 2023-12-25 14:28 张占岭 阅读(598) 评论(3) 推荐(0)
摘要:keycloak~从login-status-iframe相关文章,可阅读我的这两篇keycloak~从login-status-iframe页面总结如何跨域传值 ,keycloak~对接login-status-iframe页面判断用户状态变更 。 什么是跨域 跨域(Cross-Origin)是指 阅读全文
posted @ 2023-12-28 13:26 张占岭 阅读(507) 评论(0) 推荐(1)
摘要:场景与实现逻辑 我的登录接口,在输入账号密码成功后进行中间页 中间页可以通过添加Authenticator的实现类来写逻辑 authenticate方法是渲染页面的,action方法是提交表单后的逻辑 context.success()方法表示认证成功,将进行重写向操作 可以通过Response.s 阅读全文
posted @ 2024-04-03 16:52 张占岭 阅读(435) 评论(2) 推荐(2)
摘要:新网站对接到KC的部署 kc的环境 向kc申请自己的客户端 kc的登录接口 通过code换token接口 刷新token接口 kc的用户信息接口 kc的jwt token说明 1. kc的环境 测试环境:https://test-kc.xxx.com 预发布环境:https://pre-kc.xxx 阅读全文
posted @ 2024-04-08 11:38 张占岭 阅读(734) 评论(1) 推荐(0)
摘要:提供者目录 Provider Authenticator BaseDirectGrantAuthenticator AbstractFormAuthenticator AbstractUsernameFormAuthenticator RequiredActionProvider FormActio 阅读全文
posted @ 2024-04-10 17:30 张占岭 阅读(524) 评论(0) 推荐(0)
摘要:使用场景 RequiredActionProvider,它是在认证过程中,需要当前登录的用户执行个性化的动作;当用户符合条件,就被执行RequiredActionProvider对作,当RequiredActionProvider没有正常提交(context.success())之前,当前用户仍然是 阅读全文
posted @ 2024-04-11 09:19 张占岭 阅读(272) 评论(2) 推荐(0)
摘要:接口地址 keycloak开放接口地址:/auth/realms/fabao/.well-known/openid-configuration rsa算法相关术语 RSA算法是一种非对称加密算法,其安全性基于大整数分解的困难性。在RSA算法中,有以下几个关键参数: n(模数):n 是一个大整数,通常 阅读全文
posted @ 2024-04-18 14:21 张占岭 阅读(1373) 评论(0) 推荐(0)
摘要:keycloak提供了jwks服务,其地址可以在/auth/realms/fabao/.well-known/openid-configuration的返回结果中找到,jwks_uri它表示了公钥的颁发者,可以使用颁发出来的公钥来验证token的签名,基地址也是固定的/auth/realms/fab 阅读全文
posted @ 2024-04-23 09:21 张占岭 阅读(1721) 评论(0) 推荐(0)
摘要:com.auth0.jwk组织下面的jwks-rsa包,主要实现的是通过公钥对jwt的签名进行验证,在这个包中,它使用了包装器的设计模式,对默认的jwks提供者添加了一缓存的支持,通过建立一个GuavaCachedJwkProvider类,传入一个默认的UrlJwkProvider来将这个Provi 阅读全文
posted @ 2024-04-23 11:06 张占岭 阅读(130) 评论(0) 推荐(0)
摘要:在keycloak中,我们在进行brower浏览器的表单认证时,一般在跳到本页面时,URL上会有redirect_uri这种参数,用来告诉keycloak,在认证成功后的跳转地址,你在表单认证控制器中,可以通过context.getHttpRequest().getUri().getQueryPar 阅读全文
posted @ 2024-04-26 14:16 张占岭 阅读(117) 评论(0) 推荐(0)
摘要:keycloak的登录皮肤theme,可以设置领域全局的,或者每个客户端进行单独设置,这种设计是没有问题的,但有时,一个客户端可能有多种主题,这时,你只能再加个客户端,对应新的主题,但这样不方便日后的统计,因为很多统计维度都是以client为基础的,所以,我们需要在进入登录页时,让开发人员转具体的皮 阅读全文
posted @ 2024-05-10 17:42 张占岭 阅读(242) 评论(0) 推荐(0)
摘要:当某些合作商希望把你的keycloak作为他们的一种第三方登录方式时,就像微信,google,github,使用你的keycloak上的账户资源时,你就需要考虑如何做一个开放的,标准的文档了。 一 基本角色 认证提供者:keycloak服务,https://kc.xxx.com 第三方应用:先到ke 阅读全文
posted @ 2024-05-20 17:24 张占岭 阅读(1754) 评论(0) 推荐(0)
摘要:redirect_uri在keycloak进行认证成功之后,会重定向到这个目标页面,一般为用户的来源页,即你在登录之前访问的页面;自定义认证流是指对keycloak中的brower和direct grant两个认证方式的过程添加自定义策略,如在用户登录成功时,检查它的密码强度,如果不符合要求,就跳到 阅读全文
posted @ 2024-05-22 10:08 张占岭 阅读(476) 评论(0) 推荐(0)
摘要:相关参考 https://leejjon.medium.com/how-to-allow-cross-origin-requests-in-a-jax-rs-microservice-d2a6aa2df484 https://stackoverflow.com/questions/28065963/ 阅读全文
posted @ 2024-05-23 09:23 张占岭 阅读(518) 评论(0) 推荐(0)
摘要:对于用户的登出/注销操作,都可以设置一个回调接口,这个接口是作用到client上面的,并且必须是POST接口,相关回调方法的调用,可以参考keycloak14.0.0的这个方法: org.keycloak.services.managers.sendBackChannelLogoutRequestT 阅读全文
posted @ 2024-05-24 17:39 张占岭 阅读(407) 评论(0) 推荐(0)
摘要:添加FormAction的实现 package org.keycloak.phone.authentication.forms; import org.keycloak.Config; import org.keycloak.authentication.FormAction; import org 阅读全文
posted @ 2024-07-12 17:32 张占岭 阅读(250) 评论(0) 推荐(1)
摘要:添加register.ftl皮肤 resources/iframe/login/register.ftl resources/iframe/login/resources 这里定义静态文件 注册的FormAction 后面需要在keycloak管理后台添加它 package org.keycloak 阅读全文
posted @ 2024-07-29 10:18 张占岭 阅读(113) 评论(0) 推荐(0)
摘要:本实例将通过keycloak社区登录实现微信二维码的登录,并且二微码不是keycloak动态生成,而是通过微信提供的js生成的,在页面上直接输出的方式实现的。 动态state 在Keycloak中使用微信二维码登录时,state参数确实是由后端生成的,并且用于确保登录过程的安全性,防止CSRF攻击等 阅读全文
posted @ 2024-07-29 10:28 张占岭 阅读(345) 评论(0) 推荐(1)
摘要:keycloak将第三方登录(社区登录)进行了封装,大体主要会经历以下三个过程: 打开社区认证页面,输入账号密码或者扫码,完成社区上的认证 由社区进行302重定向,回到keycloak页面 keycloak与社区完成一次oauth2授权码认证,通过社区返回的code来获取token,再通过token 阅读全文
posted @ 2024-08-08 15:38 张占岭 阅读(386) 评论(0) 推荐(2)
摘要:scope为何物? scope在oauth2中表示授权的范围,另外也可以理解为,根据认证时scope的参数,在构建jwt时,返回更多的信息;比如在keycloak中,你的可选scope(optional scope)中添加了address这个模板,当你通过/auth/realms/{realmId} 阅读全文
posted @ 2024-09-03 09:14 张占岭 阅读(346) 评论(0) 推荐(0)
摘要:Refresh_token是在access_token过期之后,用来换新的access_token的,有了Refresh_token之后,用户可以在很长一段时间不需要重新登录,这对于用户体验是有好处的;RequiredAction是一种登录阶段的必选行为,当一个用户被某个RequiredAction 阅读全文
posted @ 2024-09-03 15:18 张占岭 阅读(83) 评论(0) 推荐(0)
摘要:前言 1. scope 参数的作用 定义权限:scope 用于声明请求访问的资源和权限。常见的值包括 openid、profile、email 等。 影响返回的数据:如果你在授权请求中指定了某些 scope,在后续的 token 请求中,Keycloak 会根据这些 scope 返回相应的信息。 o 阅读全文
posted @ 2024-09-25 11:08 张占岭 阅读(680) 评论(0) 推荐(1)
摘要:一 refresh_token刷新access_token Keycloak会话管理中,获取到accessToken和refreshToken后,基于accessToken交换用户数据或者参与KeycloakAPI的请求,当accessToken过期的时候,可使用refreshToken去交换新的a 阅读全文
posted @ 2024-10-16 17:30 张占岭 阅读(867) 评论(2) 推荐(2)
摘要:Consent Required在keycloak中是“授权所需”,或者是“同意必需“的意思,它类似于oauth2授权时的“确认”,当你在第三方认证后,通过oauth2协议,你可以把用户相关信息返回给应用程序,而这时,用户自己需要确认一下,自己的这些信息是否可以给应用程序。 为客户端配置Consen 阅读全文
posted @ 2024-10-21 14:13 张占岭 阅读(153) 评论(0) 推荐(0)
摘要:会话有效期 在 Keycloak 中,"SSO Session Idle" 和 "SSO Session Max" 是用于配置单点登录(SSO)会话的两个参数。这两个参数影响用户在系统中的会话过期和最大有效时间。 SSO Session Idle(单点登录会话空闲时间): 定义: 表示用户在系统中没 阅读全文
posted @ 2024-10-23 08:51 张占岭 阅读(535) 评论(0) 推荐(0)
摘要:keycloak中的client-scope允许你为每个客户端分配scope,而scope就是授权范围,它直接影响了token中的内容,及userinfo端点可以获取到的用户信息,这块我们可以通过自定义scope/mapper,来实现粒度的控制,并且这个mapper可以控制添加到token,或者添加 阅读全文
posted @ 2025-01-13 17:38 张占岭 阅读(379) 评论(0) 推荐(0)
摘要:主要内容 密码认证 授权码认证 哪个client申请的code,使用哪个client获取token 客户端认证 在kc开通了服务端帐号之后,可通过client_id和client_secret来获取token,与用户无关,无刷新token机制 自动触发社区认证 当用户在社区网站上登录后,访问这个地址 阅读全文
posted @ 2025-02-14 13:32 张占岭 阅读(709) 评论(1) 推荐(0)
摘要:keycloak关于社区认证它有统一的设计,社区认证包括了github,microsoft,wechat,qq,dingtalk等等,当然你还可以扩展很多实现了oauth2协议的第三方社区,将它们对接到keycloak上面来,这变得十分容易;社区认证一般由3个provider(SPI)组成,如下所示 阅读全文
posted @ 2025-02-21 09:40 张占岭 阅读(290) 评论(0) 推荐(1)
摘要:内容大纲 keycloak关于会话有效期的配置 refresh_token作用 refresh_token使用规范 keycloak开启refresh_token的限制 refresh_token时的错误汇总 keycloak中refresh_token的底层逻辑 session过期时间的清除策略 阅读全文
posted @ 2025-02-25 14:33 张占岭 阅读(581) 评论(0) 推荐(0)
摘要:在 Keycloak 中,国际化设置和默认语言的配置主要涉及以下几个方面: 1. Keycloak 配置 在 Keycloak 的管理控制台中,你可以通过以下步骤设置默认语言: 登录到 Keycloak 管理控制台。 选择你的 Realm。 转到 Realm 设置(Realm Settings)。 阅读全文
posted @ 2025-10-16 17:43 张占岭 阅读(22) 评论(0) 推荐(0)