Keycloak 在登录过程中添加动态用户会话注释

2023-12-27

我是 Keycloak 的新手,并尝试自定义登录阶段以添加动态参数作为用户会话注释。

在旧系统中,用户使用用户名、密码和附加参数登录 - 让我们称之为动态参数。 该动态参数在每个用户登录中可以不同,并且取决于用户。 当用户向服务发送请求时,它用于安全检查。

当转向 Keycloak 时,我尝试找到一种在登录阶段添加动态参数的方法,因此当使用令牌向服务发送请求时,该服务可以检索该动态参数并执行安全检查。 我没能找到一种方法来很好地利用 Keycloak 当前的功能。

是否可以通过 UsernamePasswordForm 添加任何执行流程来实现此目的?

我发现的最接近的事情是建议自行开发 Authenticator 的线程:

  • 登录时添加属性 https://lists.jboss.org/pipermail/keycloak-user/2018-November/016231.html
  • 如何在 UserSession 中添加自定义信息(会话注释) https://lists.jboss.org/pipermail/keycloak-user/2018-February/013141.html

最后,我通过实现 Authenticator 和 AuthenticatorFactory 创建了自定义身份验证器,将动态参数作为用户会话注释。 下列的如何创建自定义验证器 https://www.keycloak.org/docs/latest/server_development/#_auth_spi_walkthrough.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Keycloak 在登录过程中添加动态用户会话注释 的相关文章

随机推荐

  • selenium / capybara - 无法加载 Firefox 配置文件

    当我使用 selenium 运行测试时 浏览器会反复弹出 指出找不到 firefox 配置文件 我准备了一个与 selenium 一起使用的 Firefox 配置文件 我只是不确定如何告诉 selenium 该配置文件所在的位置 我如何告诉
  • 加载 Magento 页面时出现奇怪的错误

    当我加载前端时 我的浏览器返回那些奇怪的错误 Uncaught ReferenceError Mage is not defined Uncaught ReferenceError Varien is not defined Uncaugh
  • 会话存储安全吗?

    我想使用会话存储来查询数据库中的用户数据一次 然后简单地使用JS来检索它 所以我正在考虑使用会话存储 接下来我的问题是 这样安全吗 请注意 1 JS 无法插入到带有表单的页面 表单只接受字母数字值 因此它只能来自 URL 1 1php 中不
  • Python - 通过代理使用socket.gethostbyname

    我正在使用 TOR 来代理连接 但在代理 DNS 查找时遇到困难socket gethostbyname www yahoo com 我通过使用wireshark 嗅探流量了解到它没有通过代理发送DNS 流量 这是我正在使用的代码的副本 i
  • 如何更改VS的编译器?

    我正在使用 VS 2010 我更改了编译器 C 代码而不是 C 的设置 它工作正常 但问题是 MS 编译器不支持 C99 标准 因此我正在寻找可以与 VS 10 一起使用的 C 编译器 如何做到这一点 提前致谢 MS Visual Stud
  • 我怎样才能知道我的日历意图的结果?

    从我的应用程序中 我启动日历的目的是 Calendar cal Calendar getInstance Intent intent new Intent Intent ACTION EDIT intent setType vnd andr
  • 返回 varchar(max) 存储过程的输出参数截断为 4000 个字符

    我有一个带有 SQL2012 数据库的经典 ASP 应用程序 我最近将表列从 varchar 8000 更改为 varchar max 因为它不够大 无法存储所需的数据 我可以使用需要存储的所有数据更新列 但我用来返回列数据作为输出参数的
  • EKEventStore.calendars 返回不存在的“日历”对象

    当使用 IOS5 获取所有日历时 EKEventStore eventStore EKEventStore alloc init NSArray calendars eventStore calendars 返回了一个名为 calendar
  • iOS 13 设备上语音识别(支持OnDevice Recognition 标志)

    我正在尝试让 iOS 13 OnDevice 语音识别正常工作 但是 验证 supportOnDeviceRecognition 标志 这是启用 OnDevice 识别的初步步骤 始终返回 false 我使用的是装有 iOS 13 3 的第
  • 如何在 Flutter 中构建 apk 创建旧版本应用程序

    我正在尝试在 Flutter 中构建我的发布应用程序 当我运行时 flutter run 在调试和测试模式下一切正常 但是当我尝试使用以下方法构建发布应用程序时 flutter build apk 它创建了我的一个旧的首次发布应用程序 我之
  • 打印 Haskell 的评估(重写)步骤以用于教育/学习目的。是否可以?

    我用书上的例子来描述这个问题 Simon Thompson 的书 HASKELL 函数式编程的技巧 第 82 页 见下图 显示了以下评估步骤 fac 4 问题 是否可以使用某些工具或 Haskell 调试器 来写出 GHCi 在评估以下值时
  • RecyclerView ItemTouchHelper.Callback:拖动交换条件

    我想以这样的方式实现拖动卡片 当我拖动的卡片与元素不完全重叠而仅重叠 50 时 卡片就会开始重新排列 看一个例子 现在 为了将右侧的卡片移至左侧 我需要将其与我正在拖动的卡片完全重叠 我尝试从 ItemTouchHelper Callbac
  • 为 Winforms DataGrid 控件添加超链接列

    如何为 Winforms DataGrid 控件添加超链接列 现在我正在添加一个像这样的字符串列 DataColumn dtCol new DataColumn dtCol DataType System Type GetType Syst
  • 如何计算IEEE 802.11 CRC-32 FCS?

    这是来自 IEEE Std 802 11 2012 第 8 2 4 8 FCS 字段 我无法理解最后两段 除法的初始余数预设为全部 是什么意思 为什么我们需要这样做 计算字段和 FCS 的串行输入位 是什么意思 将 CRC 初始化为全 1
  • 警告:与字符串文字比较会导致未指定的行为

    我正在开始一个用 C 语言为 linux 编写一个简化 shell 的项目 我对 C 和 Linux 一点也不精通 这正是我认为这是一个好主意的原因 从解析器开始 我已经遇到了一些问题 代码应该很简单 这就是为什么我没有包含任何注释 我收到
  • openssl c++ 3DES 文件加密解密失败

    我正在使用 openssl c lib 使用 3DES 加密解密文件 如果文件包含几个单词 则文件将被加密并解密 但如果源纯文件包含更多单词 则解密不正确 任何建议都会很友善 include
  • 如何在JSP中包含HTML?

    我搜索过这个问题 有一些答案 但与我的问题不完全一样 所以 这是我的jsp代码
  • TransactionScope 默认超时值是多少?

    当我创建 TransactionScope 对象时 如下所示 using TransactionScope ts new TransactionScope Do stuff 给定 ts 对象的默认事务超时是多少 根据 David Brown
  • OpenAL - 确定最大来源

    是否有 API 允许您定义底层声音硬件允许的 OpenAL 源 最大数量 在互联网上搜索 我发现了 2 个建议 继续生成 OpenAL 源 直到出现错误 然而 FreeSL OpenAL 包装器 中有一条注释指出 这 非常糟糕 甚至可能使库
  • Keycloak 在登录过程中添加动态用户会话注释

    我是 Keycloak 的新手 并尝试自定义登录阶段以添加动态参数作为用户会话注释 在旧系统中 用户使用用户名 密码和附加参数登录 让我们称之为动态参数 该动态参数在每个用户登录中可以不同 并且取决于用户 当用户向服务发送请求时 它用于安全