搜索

第 14 章 配置审计来跟踪事件

download PDF

红帽构建的 Keycloak 包括一组审计功能。您可以记录每个登录和管理员操作,并在管理控制台中查看这些操作。红帽构建的 Keycloak 还包括一个 Listener SPI,它侦听事件并可触发操作。内置监听程序的示例包括日志文件并在发生事件时发送电子邮件。

14.1. 审计用户事件

您可以记录和查看影响用户的每个事件。红帽构建的 Keycloak 会触发登录事件,如成功用户登录、输入错误密码或用户帐户更新等操作。默认情况下,红帽构建的 Keycloak 不存储或显示管理控制台中的事件。只有错误事件会记录到管理控制台和服务器的日志文件。

流程

使用这个流程开始审核用户事件。

  1. 点菜单中的 Realm settings
  2. 单击 Events 选项卡。
  3. User events settings 选项卡。
  4. Save 事件 切换为 ON

    用户事件设置

    User events settings

  5. 指定在 Expiration 字段中存储事件的时间长度。
  6. Add saved types 查看您可以保存的其他事件。

    添加类型

    Add types

  7. 点击 Add

当您要删除所有保存的事件时,点 Clear user events

流程

现在,您可以查看事件。

  1. 单击菜单中的 Events 选项卡。

    用户事件

    Login Events

  2. 要过滤事件,请点 Search user event

    搜索用户事件

    Search user event

14.1.1. 事件类型

登录事件:

事件描述

登录

用户登录。

注册

用户注册。

退出

用户注销。

令牌代码

应用或客户端交换令牌的代码。

刷新令牌

应用或客户端会刷新令牌。

brute 强制保护:

事件描述

由永久锁定禁用的用户

静默强制因为太多登录失败而永久禁用用户帐户。

通过临时锁定禁用的用户

静默强制因为太多登录失败而临时禁用用户帐户。

帐户事件:

事件描述

社交链接

用户帐户链接到社会媒体提供商的链接。

删除交换链接

从社交介质帐户链接到用户帐户 severs。

更新电子邮件

帐户更改的电子邮件地址。

更新配置文件

帐户更改的配置集。

发送密码重置

红帽构建的 Keycloak 会发送密码重置电子邮件。

更新密码

帐户更改的密码。

更新 TOTP

帐户更改的基于时间的一次性密码(TOTP)设置。

删除 TOTP

红帽构建的 Keycloak 从帐户中删除 TOTP。

发送验证电子邮件

红帽构建的 Keycloak 发送电子邮件验证电子邮件。

验证电子邮件

红帽构建的 Keycloak 会验证帐户的电子邮件地址。

每个事件都有对应的错误事件。

14.1.2. 事件监听程序

事件监听器侦听事件并根据该事件执行操作。红帽构建的 Keycloak 包括两个内置监听程序,即 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

您可以使用 Logging Event Listener 来防止黑客 bot 攻击:

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

Logging Event Listener 将事件记录到 org.keycloak.events 日志类别。默认情况下,Red Hat build of Keycloak 不会在服务器日志中包括调试日志事件。

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

  1. 更改 org.keycloak.events 类别的日志级别
  2. 更改日志记录事件监听器使用的日志级别。

要更改日志记录事件监听程序使用的日志级别,请执行以下操作:

bin/kc.[sh|bat] start --spi-events-listener-jboss-logging-success-level=info --spi-events-listener-jboss-logging-error-level=error

日志级别的有效值为 debuginfowarn、error、errorfatal

14.1.2.2. 电子邮件事件 Listener

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

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

流程

启用 Email Listener:

  1. 点菜单中的 Realm settings
  2. 单击 Events 选项卡。
  3. Event listeners 字段。
  4. 选择 电子邮件

    事件监听程序

    Event listeners

您可以使用 --spi-events-listener-email-exclude-events 参数排除事件。例如:

kc.[sh|bat] --spi-events-listener-email-exclude-events=UPDATE_TOTP,REMOVE_TOTP
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.