keycloak 找出特定客户端权限的user 配置OTP
背景:项目组中有用到keycloak给两个应用进行登录认证使用。其中有一个应用放在公网,安全部门同事说 不能直接账号密码登录,容易破解,需要进行二次验证。
刚好查到keycloak支持OTP(one time password 一次性密码),刚好满足安全要求。
但是放在内网的应用是不用加这个的,需要筛选出配置了外网应用权限的用户。然后给用户加上OTP。
暂且将内网应用叫做应用N,外网应用叫做 gis-web 。只有用户规则中,gis-web这个客户端下,已分配权限包含edit或者view权限的用户,才需要加OTP。

冷静分析:
首先,用户数量上百个,一个个查看虽然可行,但是效率太低。
那有没有从数据库查的方法呢?
keycloak数据库总共92个表。由于不太清楚各个表结构,所以索性直接导出整个库,数据也不大,966KB。

然后我根据用户名查,发现整个库只有一个地方包含用户名:user_entity 表的字段 username 。
通过这个表的username字段,找到用户名对应的 ID :bda51819-b9e1-409f-a90d-b8e93c79cc**
再,在整个库范围检索 bda51819-b9e1-409f-a90d-b8e93c79cc** ,发现了蛛丝马迹:

看起来是user_rule_mapping 这个表。但是这个表信息也是加密的。
换个思虑。
整个库检索:gis-web 。
发现了这串加密字符:野蛮一点。再次整个库检索:


终于盲生发现了华点:edit 和view,对应的好像正好是gis-web的编辑和查询权限?
最终,根据 user_role_mapping 表的 role_id 和 user_id,查找 user_entity 表的username,得出的就是拥有gis-web权限的 用户名了!


最后,就是把这9个用户配置OTP即可。


《完》
keycloak 找出特定客户端权限的user 配置OTP的更多相关文章
- Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)
要在hrml文件中找出特定的内容,首先需要观察该内容是什么东西,在什么位置,这样才能找出来. 假设html的文件名称是:"1.html".href属性全都在a标签里. 正则版: # ...
- c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)
c#封装DBHelper类 public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...
- Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...
- 用windbg+sos找出程序中谁占用内存过高,谁占用CPU过高(转载)
原文地址: http://www.cnblogs.com/Lawson/archive/2011/01/23/1942692.html 很早看到windbg+sos方面的知识,一直没仔细学习,也许因为 ...
- 使用 Visual Studio 分析器找出应用程序瓶颈(转)
使用 Visual Studio 分析器找出应用程序瓶颈 Hari Pulapaka and Boris Vidolov 本文讨论: 以性能瓶颈为目标 应用程序代码分析 比较分析数据 性能报告 本文使 ...
- 数据库管理——Powershell——使用Powershell脚本找出消耗最多磁盘空间的文件
原文:数据库管理--Powershell--使用Powershell脚本找出消耗最多磁盘空间的文件 原文译自: http://www.mssqltips.com/sqlservertip/2774/p ...
- 从零开始学习iftop流量监控(找出服务器耗费流量最多的ip和端口)
一.iftop是什么 iftop是类似于top的实时流量监控工具. 作用:监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等 官网:http://www.ex-parrot.com/~p ...
- 【CTF MISC】隐写术wireshark找出图片-“强网杯”网络安全挑战赛writeup
这场CTF中有一道题是分析pcap包的.. 13.大黑阔: 从给的pcap包里把图片提取出来,是一张中国地图. 题目提示是黑阔在聊天,从数据里可以找出几段话. 思路:主要考察wireshark的过滤规 ...
- 使用 Visual Studio 分析器找出应用程序瓶颈
VS的性能分析工具 性能分析工具的选择 打开一个“性能分析”的会话:Debug->Start Diagnotic Tools Without Debugging(或按Alt+F2),VS2013 ...
- 在 Linux 上找出并解决程序错误的主要方法【转】
转自:https://www.ibm.com/developerworks/cn/linux/sdk/l-debug/index.html 本文讨论了四种调试 Linux 程序的情况.在第 1 种情况 ...
随机推荐
- win10使用python自动化安装mysql8.0.11
流程概要 下载mysql-8.0.11-winx64压缩包 解压 编辑配置文件my.ini 管理员权限cmd安装(注意初始化时设置默认密码为空) pymysql连接,执行sql操作. 代码实现 依赖: ...
- 服务器设置导致mongo数据库的链接数受限
记录一次使用 mongoDB 遇到的BUG,就是服务链接mongodb报错 [05-Nov-2022 16:46:05] WARNING: [pool www] child 10231 said in ...
- Spring(IOC自动装配-基于注解开发)
Spring IoC 自动装载 autowire: 自动装载是Spring提供的一种更加简单的方式,来完成DI,不需要手动配置property ,IoC容器会自动选择Bean玩成注入. 自动装载俩种: ...
- 微信小程序使用vant组件样式不生效的问题
下面提供几个解决方案 方案一: 官方文档有说明,将 app.json 中的 "style": "v2" 去除,小程序的新版基础组件强行加上了许多样式,难以覆盖, ...
- 软件设计师考试备考之UML
UML 统一建模语言是面向对象软件的标准化建模语言. 事务 结构事务 UML模型中的名称,它们通常是模型的静态部分,描述概念或物理元素 图形表示: 行为事务 UML模型中的动态部分.它们是模型中的动词 ...
- dvwa靶场搭建
安装 root@kali:~# apt -y install apache2 mariadb-common mariadb-server php php-mysql php-gd root@kali: ...
- JZOJ 2022.02.26【提高A组】模拟
比赛总结 考场 \(T1,T2\) 思想切了 然而... \(\text{T1}\) 飞行棋 当然要 \(dp\),然而发现后六格有后效性 姑且设 \(f_i\) 表示从第 \(i\) 格到终点的期望 ...
- JZOJ 2022.02.10【提高组】模拟总结
\(\text{简要题解}\) \(\text{GDOI2012}\) 的题 不得不说当年的题做起来真的很不爽 整体看起来就是数据结构+博弈论+宽搜+背包dp优化 考场上 \(T1\) 十分钟解决过了 ...
- TNF诱导的关节破坏由IL-1介导
TNF诱导的关节破坏由IL-1介导Zwerina J, et al. PNAS.2007;104:11742-7.TNF拮抗剂有效抑制人类类风湿关节炎(RA)的炎症和结构破坏.然而截至目前还不清楚TN ...
- CF468E Permanent 题解
考虑暴力状压 DP. 按行 DP,记录列哪些被选过,可以做到 \(O(2^kk^2)\). 注意到某一列扫完了之后这一列选没选过不重要,可以减少这里的状态. 简单优化一下,每次选择最少的一列,使这一列 ...