第 14 章 配置审核以跟踪事件
Red Hat Single Sign-On 包括一组审计功能。您可以记录每个登录和管理员操作,并在管理控制台中查看这些操作。Red Hat Single Sign-On 还包括侦听事件的 Listener SPI,它可以触发操作。内置监听程序示例包括日志文件,并在事件发生时发送电子邮件。
14.1. 登录事件 复制链接链接已复制到粘贴板!
您可以记录并查看影响用户的每个事件。Red Hat Single Sign-On 会触发登录事件,例如成功用户登录、用户输入错误的密码或用户帐户更新等操作。默认情况下,Red Hat Single Sign-On 不会将事件存储在管理控制台中。只有错误事件才会记录到 Admin 控制台和服务器的日志文件。
要开始保存事件,请启用存储。
流程
- 点菜单中的 Events。
点 Config 选项卡。
事件配置
将事件 保存到 ON。
保存事件
- 在 Saved Types 字段中指定要存储的事件。
您可以点击 清除的事件 按钮删除所有事件。
在到期字段中指定存储事件 的时间长度。当您启用登录事件存储并启用设置时,点 Save 按钮。
点 Login Events 选项卡查看事件。
登录事件
您可以使用 Filter 按钮过滤事件。
登录事件过滤器
在这个示例中,我们只过滤 登录 事件。点 Update 运行过滤器。
14.1.1. 事件类型 复制链接链接已复制到粘贴板!
登录事件:
| 事件 | 描述 |
|---|---|
| 登录 | 用户登录。 |
| 注册 | 用户注册。 |
| 退出 | 用户注销。 |
| 令牌的代码 | 应用程序或客户端会交换令牌的代码。 |
| 刷新令牌 | 应用程序或客户端会刷新令牌。 |
帐户事件:
| 事件 | 描述 |
|---|---|
| 社交链接 | 用户帐户链接到社会媒体提供程序的链接。 |
| 删除社交链接 | 来自社交媒体帐户的链接到用户帐户位。 |
| 更新电子邮件 | 帐户更改的电子邮件地址。 |
| 更新配置集 | 帐户更改的配置集。 |
| 发送密码重置 | Red Hat Single Sign-On 发送密码重置电子邮件。 |
| 更新密码 | 帐户更改的密码。 |
| 更新 TOTP | 帐户更改基于时间的一次性密码(TOTP)设置。 |
| 删除 TOTP | Red Hat Single Sign-On 从帐户中删除 TOTP。 |
| 发送验证电子邮件 | Red Hat Single Sign-On 发送一封电子邮件验证电子邮件。 |
| 验证电子邮件 | 红帽单点登录验证帐户的电子邮件地址。 |
每个事件都有对应的错误事件。
14.1.2. 事件监听程序 复制链接链接已复制到粘贴板!
事件监听器侦听事件,并根据该事件执行操作。Red Hat Single Sign-On 包括两个内置监听程序,即 Logging Event Listener 和 Email Event Listener。
14.1.2.1. 日志记录事件监听程序 复制链接链接已复制到粘贴板!
当启用 Logging Event Listener 时,此监听器会在发生错误事件时写入日志文件。
Logging Event Listener 中的日志消息示例:
您可以使用日志记录事件 Listener 来防止黑客 bot 攻击:
-
解析
LOGIN_ERROR事件的日志文件。 - 提取失败的登录事件的 IP 地址。
- 将 IP 地址发送到入侵检测软件框架工具。
Logging Event Listener 日志事件到 org.keycloak.events 日志类别。默认情况下,Red Hat Single Sign-On 在服务器日志中不包含调试日志事件。
在服务器日志中包含 debug 日志事件:
-
编辑
standalone.xml文件。 - 更改日志记录事件监听程序使用的日志级别。
另外,您可以为 org.keycloak.events 配置日志级别。
例如,要更改日志级别并添加以下内容:
要更改日志记录事件监听程序使用的日志级别,请添加以下内容:
日志级别的有效值为 debug、info、warn、error、fatal。
14.1.2.2. 电子邮件事件 Listener 复制链接链接已复制到粘贴板!
当事件发生时,电子邮件事件 Listener 将电子邮件发送到用户帐户,并支持以下事件:
- 登录错误。
- 更新密码.
- 更新基于时间的一次性密码(TOTP)。
- 删除基于时间的一次性密码(TOTP)。
流程
启用电子邮件 Listener:
- 点菜单中的 Events。
- 点 Config 选项卡。
- 点 Event Listeners 字段。
-
选择
电子邮件。
您可以通过编辑您的分发中包含的 standalone.xml、standalone-ha.xml 或 domain.xml 配置文件来排除事件。例如:
您可以通过编辑 standalone.xml、standalone-ha.xml 或 domain.xml 配置文件,为数据库设置最大长度。如果某个字段(例如 redirect_uri)是较长的,则此设置很有用。例如:
有关 standalone.xml、standalone-ha.xml 或 domain.xml 文件的位置的详细信息,请参阅 服务器安装和配置指南。