搜索

第 14 章 配置审核以跟踪事件

download PDF

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 控制台和服务器的日志文件。

要开始保存事件,请启用存储。

流程

  1. 点菜单中的 Events
  2. Config 选项卡。

    事件配置

    Event Configuration

  3. 将事件 保存到 ON

    保存事件

    Save Events

  4. Saved Types 字段中指定要存储的事件。

您可以点击 清除的事件 按钮删除所有事件。

在到期字段中指定存储事件 的时间长度。当您启用登录事件存储并启用设置时,点 Save 按钮。

Login Events 选项卡查看事件。

登录事件

Login Events

您可以使用 Filter 按钮过滤事件。

登录事件过滤器

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 中的日志消息示例:

11:36:09,965 WARN  [org.keycloak.events] (default task-51) type=LOGIN_ERROR, realmId=master,
                    clientId=myapp,
                    userId=19aeb848-96fc-44f6-b0a3-59a17570d374, ipAddress=127.0.0.1,
                    error=invalid_user_credentials, auth_method=openid-connect, auth_type=code,
                    redirect_uri=http://localhost:8180/myapp,
                    code_id=b669da14-cdbb-41d0-b055-0810a0334607, username=admin

您可以使用日志记录事件 Listener 来防止黑客 bot 攻击:

  1. 解析 LOGIN_ERROR 事件的日志文件。
  2. 提取失败的登录事件的 IP 地址。
  3. 将 IP 地址发送到入侵检测软件框架工具。

Logging Event Listener 日志事件到 org.keycloak.events 日志类别。默认情况下,Red Hat Single Sign-On 在服务器日志中不包含调试日志事件。

在服务器日志中包含 debug 日志事件:

  1. 编辑 standalone.xml 文件。
  2. 更改日志记录事件监听程序使用的日志级别。

另外,您可以为 org.keycloak.events 配置日志级别。

例如,要更改日志级别并添加以下内容:

<subsystem xmlns="urn:jboss:domain:logging:...">
    ...
    <logger category="org.keycloak.events">
        <level name="DEBUG"/>
    </logger>
</subsystem>

要更改日志记录事件监听程序使用的日志级别,请添加以下内容:

<subsystem xmlns="urn:jboss:domain:keycloak-server:...">
    ...
    <spi name="eventsListener">
      <provider name="jboss-logging" enabled="true">
        <properties>
          <property name="success-level" value="info"/>
          <property name="error-level" value="error"/>
        </properties>
      </provider>
    </spi>
</subsystem>

日志级别的有效值为 debuginfowarnerrorfatal

14.1.2.2. 电子邮件事件 Listener

当事件发生时,电子邮件事件 Listener 将电子邮件发送到用户帐户,并支持以下事件:

  • 登录错误。
  • 更新密码.
  • 更新基于时间的一次性密码(TOTP)。
  • 删除基于时间的一次性密码(TOTP)。

流程

启用电子邮件 Listener:

  1. 点菜单中的 Events
  2. Config 选项卡。
  3. Event Listeners 字段。
  4. 选择 电子邮件

您可以通过编辑您的分发中包含的 standalone.xmlstandalone-ha.xmldomain.xml 配置文件来排除事件。例如:

<spi name="eventsListener">
  <provider name="email" enabled="true">
    <properties>
      <property name="exclude-events" value="[&quot;UPDATE_TOTP&quot;,&quot;REMOVE_TOTP&quot;]"/>
    </properties>
  </provider>
</spi>

您可以通过编辑 standalone.xmlstandalone-ha.xmldomain.xml 配置文件,为数据库设置最大长度。如果某个字段(例如 redirect_uri)是较长的,则此设置很有用。例如:

<spi name="eventsStore">
    <provider name="jpa" enabled="true">
        <properties>
            <property name="max-detail-length" value="1000"/>
        </properties>
    </provider>
</spi>

有关 standalone.xmlstandalone-ha.xmldomain.xml 文件的位置的详细信息,请参阅 服务器安装和配置指南

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.