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 种情况 ...
随机推荐
- JAVA虚拟机05-内存溢出示例(jdk1.8)
1.JAVA虚拟机堆内存溢出OutOfMemoryError 1.1设置参数 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 最小堆的大小20m 最大堆 ...
- Windows Server 2016 安装AD和Exchange
一.AD虚拟机操作 1.安装net framework 4.8 下载链接:https://dotnet.microsoft.com/download/dotnet-framework/net48 安装 ...
- git操作出现 error: The following untracked working tree files would be overwritten by ...
命令行:git clean -d -fx,作用是:删除没有git add 的文件 ,执行之后解决了 error: The following untracked working tree files ...
- 关于vue项目和内嵌iframe页面之间的通信问题
最近项目中遇到一个与内嵌iframe页面之间通信的问题,起初与原生之间通信很简单,没想到过与vue项目通信的问题,霎时间一脸懵*啊,百度了一下,原来是那么简单,这里记录下以供下次参考 //vue页面 ...
- CSU2022-2023C语言期中考试机试
卡在出线概率了.40%,没想到遍历时反了,我去. 1.时钟加法 题目描述 小南最近迷上了各种形式的加法,例如时钟加法,时钟加法是指给定一个当前时间,其形式为h:m:s,计算加上n秒后新的时间.你能帮他 ...
- Spark系列 - (3) Spark SQL
3. Spark SQL 3.1 Hive.Shark和Sparksql Hive:Hadoop刚开始出来的时候,使用的是hadoop自带的分布式计算系统 MapReduce,但是MapReduce的 ...
- Linux服务器数据备份恢复
转载csdn: https://blog.csdn.net/weixin_33794672/article/details/92894022
- 免费ASP空间
free免费asp空间的申请方法: free免费asp空间的ftp使用方法: sise.host3v.vip/1
- vscode cmake工程launch和task文件设置
1.launch.json文件基本设置 { // Use IntelliSense to learn about possible attributes. // Hover to view descr ...
- Linux命令执行时,提示commond not found的处理办法
执行chattr命令时,或其他命令时,若出现命令没发现,commond not found 那么就是有可能命令文件丢了,执行find / -name chattr,如果没有命令了,可以拷贝一个或yum ...