背景:项目组中有用到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的更多相关文章

  1. Python每日一练(2):找出html中的所有链接(Xpath、正则两个版本)

    要在hrml文件中找出特定的内容,首先需要观察该内容是什么东西,在什么位置,这样才能找出来. 假设html的文件名称是:"1.html".href属性全都在a标签里. 正则版: # ...

  2. c#封装DBHelper类 c# 图片加水印 (摘)C#生成随机数的三种方法 使用LINQ、Lambda 表达式 、委托快速比较两个集合,找出需要新增、修改、删除的对象 c# 制作正方形图片 JavaScript 事件循环及异步原理(完全指北)

    c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> ...

  3. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

  4. 用windbg+sos找出程序中谁占用内存过高,谁占用CPU过高(转载)

    原文地址: http://www.cnblogs.com/Lawson/archive/2011/01/23/1942692.html 很早看到windbg+sos方面的知识,一直没仔细学习,也许因为 ...

  5. 使用 Visual Studio 分析器找出应用程序瓶颈(转)

    使用 Visual Studio 分析器找出应用程序瓶颈 Hari Pulapaka and Boris Vidolov 本文讨论: 以性能瓶颈为目标 应用程序代码分析 比较分析数据 性能报告 本文使 ...

  6. 数据库管理——Powershell——使用Powershell脚本找出消耗最多磁盘空间的文件

    原文:数据库管理--Powershell--使用Powershell脚本找出消耗最多磁盘空间的文件 原文译自: http://www.mssqltips.com/sqlservertip/2774/p ...

  7. 从零开始学习iftop流量监控(找出服务器耗费流量最多的ip和端口)

    一.iftop是什么 iftop是类似于top的实时流量监控工具. 作用:监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等 官网:http://www.ex-parrot.com/~p ...

  8. 【CTF MISC】隐写术wireshark找出图片-“强网杯”网络安全挑战赛writeup

    这场CTF中有一道题是分析pcap包的.. 13.大黑阔: 从给的pcap包里把图片提取出来,是一张中国地图. 题目提示是黑阔在聊天,从数据里可以找出几段话. 思路:主要考察wireshark的过滤规 ...

  9. 使用 Visual Studio 分析器找出应用程序瓶颈

    VS的性能分析工具 性能分析工具的选择 打开一个“性能分析”的会话:Debug->Start Diagnotic Tools Without Debugging(或按Alt+F2),VS2013 ...

  10. 在 Linux 上找出并解决程序错误的主要方法【转】

    转自:https://www.ibm.com/developerworks/cn/linux/sdk/l-debug/index.html 本文讨论了四种调试 Linux 程序的情况.在第 1 种情况 ...

随机推荐

  1. EPICS Archiver Appliance在Centos7的定制部署

    EPICS Archiver Appliance的定制部署1 EPICS Archiver Appliance的定制部署2 上面两篇是在Centos8下成功,后来又想在Centos7下跑成功,按上面的 ...

  2. Istio 升级后踩的坑

    背景 前段时间我们将 istio 版本升级到 1.12 后导致现有的应用监控有部分数据丢失(页面上显示不出来). 一个是应用基础信息丢失. 再一个是应用 JVM 数据丢失. 接口维度的监控数据丢失. ...

  3. 基于Kali Linux的渗透测试工具-Discover脚本

    简介  这篇文章主要介绍了基于Kali Linux的渗透测试工具-Discover脚本以及相关的经验技巧,文章约5629字,浏览量510,点赞数9,值得参考! 如果你正在使用Kali Linux,那么 ...

  4. ArcGIS Pro SDK 002 对数据文件的读取和操作

    做系统开发或者数据处理的时候,我一般还是喜欢使用文件数据源,例如矢量用.shp文件存储,栅格数据用.tif或者.img文件存储.ArcGIS Pro SDK中对数据源操作的API和ArcObjects ...

  5. LinkedList内部实现原理

    LinkedList内部实现原理 java list 同ArrayList内部原理一样 我们先创建一个LinkedList对象LinkedList<String> li = new Lin ...

  6. 【雅礼联考DAY02】Revolution

    #include<cstdio> #include<queue> using namespace std; const int N = 210 , M = 210000 , I ...

  7. 欢迎来到 SIXIANG 的 blog~

    很欢迎呢~ SX,海豹叉 Luogu OIer,whker,养老人

  8. 在真实世界中观察目标治疗策略实施1年对初诊RA患者的影响

    在真实世界中观察目标治疗策略实施1年对初诊RA患者的影响 Tan AL, et al. Rheumatology 2016.Present ID: 083. 背景:制订目标治疗(T2T)建议是要将获得 ...

  9. 基于Python的OpenGL 01 之Hello Triangle

    1. 引言 本文基于Python语言,描述OpenGL的绘制流程,这里描述的是OpenGL的核心模式(Core-profile) 本文基于GLFW与PyOpenGL库进行开发,Python语言下的Op ...

  10. 微信小程序扫码

    前言:微信小程序-->调用摄像头,扫描二维码/条形码,并获取信息,一连串操作,只需要调用微信小程序提供的 wx.scanCode API. 一.生成测试二维码 随便网上找个二维码生成器. 二.实 ...