第15章 イベントを追跡する監査の設定
Red Hat build of Keycloak には、一連の監査機能が含まれています。すべてのログインおよび管理者のアクションを記録し、管理コンソールでそれらのアクションを確認できます。Red Hat build of Keycloak には、イベントをリッスンしてアクションをトリガーできる Listener SPI も含まれています。ビルトインリスナーの例には、ログファイルとイベント発生時のメールの送信が含まれます。
15.1. ユーザーイベントの監査 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに影響するすべてのイベントを記録および表示できます。Red Hat build of Keycloak は、ユーザーがログインに成功した場合、ユーザーが間違ったパスワードを入力した場合、ユーザーがアカウントを更新した場合などのアクションに対して、ログインイベントをトリガーします。デフォルトでは、Red Hat build of Keycloak は、管理コンソールにイベントを保存または表示しません。管理コンソールとサーバーのログファイルにエラーイベントのみがログに記録されます。
手順
この手順を使用して、ユーザーイベントの監査を開始します。
- メニューで Realm settings をクリックします。
- Events タブをクリックします。
- User events settings タブをクリックします。
Save events を ON に切り替えます。
ユーザーイベントの設定
- Expiration フィールドにイベントを保存する時間を指定します。
Add saved types をクリックして、保存できる他のイベントを表示します。
タイプを追加
- Add をクリックします。
保存したすべてのイベントを削除するには、Clear user events をクリックします。
手順
イベントを閲覧できるようになりました。
メニューの Events タブをクリックします。
ユーザーイベント
イベントをフィルタリングするには、Search user event をクリックします。
ユーザーイベントの検索
15.1.1. イベントタイプ リンクのコピーリンクがクリップボードにコピーされました!
ログインイベント:
| イベント | 説明 |
|---|---|
| ログイン | ユーザーがログインする。 |
| 登録 | ユーザーが登録する。 |
| ログアウト | ユーザーがログアウトする。 |
| トークンへのコード | アプリケーションまたはクライアントはトークンのコードを交換する。 |
| トークンの更新 | アプリケーションまたはクライアントはトークンを更新する。 |
ブルートフォース保護:
| イベント | 説明 |
|---|---|
| 永続的なロックアウトによるユーザーの無効化 | ログイン失敗回数が多すぎるため、ブルートフォース保護によりユーザーアカウントが永久に無効になりました。 |
| 一時的なロックアウトによるユーザーの無効化 | ログイン失敗回数が多すぎるため、ブルートフォース保護によりユーザーアカウントが一時的に無効になりました。 |
Identity Brokering:
| イベント | 説明 |
|---|---|
| フェデレーションアイデンティティーリンクのオーバーライド | 既存のフェデレーションアイデンティティーリンクがオーバーライドされました |
| フェデレーションアイデンティティーリンクのオーバーライドエラー | 既存のフェデレーションアイデンティティーリンクをオーバーライドしようとしたときにエラーが発生しました |
OAuth:
| イベント | 説明 |
|---|---|
| OAuth2 拡張付与 | OAuth2 の付与が実行されました |
| OAuth2 拡張付与エラー | OAuth2 の付与実行中にエラーが発生しました |
アカウントイベント:
| イベント | 説明 |
|---|---|
| ソーシャルリンク | ユーザーアカウントはソーシャルメディアプロバイダーにリンクされます。 |
| ソーシャルリンクの削除 | ソーシャルメディアアカウントからユーザーアカウントへのリンク。 |
| メールの更新 | アカウントのメールアドレスを変更します。 |
| プロファイルの更新 | アカウントのプロファイルを変更します。 |
| パスワードリセットの送信 | Red Hat build of Keycloak は、パスワードリセットメールを送信します。 |
| パスワードの更新 (非推奨) | アカウントのパスワードを変更します。 |
| 認証情報の更新 | アカウントのパスワードまたは (時間ベースの) ワンタイムパスワード (OTP/TOTP) 設定が変更されます。 |
| TOTP の更新 (非推奨) | アカウントの時間ベースのワンタイムパスワード (TOTP) 設定を変更します。 |
| TOTP の削除 (非推奨) | Red Hat build of Keycloak は、アカウントから TOTP を削除します。 |
| 認証情報の削除 | Red Hat build of Keycloak はアカウントから認証情報を削除します。 |
| 確認メールの送信 | Red Hat build of Keycloak は、メールを検証するためのメールを送信します。 |
| メールの確認 | Red Hat build of Keycloak は、アカウントのメールアドレスを検証します。 |
各イベントには、対応するエラーイベントがあります。
15.1.2. イベントリスナー リンクのコピーリンクがクリップボードにコピーされました!
イベントリスナーはイベントをリッスンし、そのイベントに基づいてアクションを実行します。Red Hat build of Keycloak には、Logging Event Listener と Email Event Listener の 2 つのビルトインリスナーが含まれています。
15.1.2.1. Logging Event Listener (ロギングイベントリスナー) リンクのコピーリンクがクリップボードにコピーされました!
Logging Event Listener を有効にすると、このリスナーはエラーイベントの発生時にログファイルに書き込みます。
Logging Event Listener からのログメッセージの例:
Logging Event Listener を使用して、ハッカーのボット攻撃から保護できます。
-
LOGIN_ERRORイベントのログファイルを解析します。 - 失敗したログインイベントの IP アドレスを抽出します。
- IP アドレスを侵入防止ソフトウェアフレームワークツールに送信します。
Logging Event Listener は、イベントを org.keycloak.events ログカテゴリーに記録します。Red Hat build of Keycloak には、デフォルトでサーバーログにデバッグログイベントが含まれていません。
デバッグログイベントをサーバーログに含めるには、以下を実行します。
-
org.keycloak.eventsカテゴリーのログレベルを変更します。 - Logging Event Listener によって使用されるログレベルを変更します。
Logging Event Listener によって使用されるログレベルを変更するには、以下を追加します。
bin/kc.[sh|bat] start --spi-events-listener-jboss-logging-success-level=info --spi-events-listener-jboss-logging-error-level=error
bin/kc.[sh|bat] start --spi-events-listener-jboss-logging-success-level=info --spi-events-listener-jboss-logging-error-level=error
ログレベルの有効な値は debug、info、warn、error、および fatal です。
15.1.2.2. Email Event Listener (メールイベントリスナー) リンクのコピーリンクがクリップボードにコピーされました!
Email Event Listener は、イベントが発生したときにユーザーのメールアドレスにメッセージを送信し、次のイベントをサポートします。
- ログインエラー
- パスワードの更新
- 時間ベースのワンタイムパスワード (TOTP) の更新
- ワンタイムパスワード (OTP) の削除
- 認証情報の更新
- 認証情報の削除
以下は設定できるオプションのイベントです。
- 永続的なロックアウトによるユーザーの無効化
- 一時的なロックアウトによるユーザーの無効化
メールを送信するには、次の条件を満たす必要があります。
- ユーザーにメールアドレスがある。
- ユーザーのメールアドレスが確認済みとしてマークされている。
前提条件
- レルムのメール設定が行われている。
手順
メールリスナーを有効にするには、以下を実行します。
- メニューで Realm settings をクリックします。
- Events タブをクリックします。
- Event listeners フィールドをクリックします。
emailを選択します。Event listeners
--spi-events-listener-email-exclude-events 引数を使用してイベントを除外できます。以下に例を示します。
kc.[sh|bat] --spi-events-listener-email-exclude-events=UPDATE_CREDENTIAL,REMOVE_CREDENTIAL
kc.[sh|bat] --spi-events-listener-email-exclude-events=UPDATE_CREDENTIAL,REMOVE_CREDENTIAL
オプションのイベントを有効にするには、次のコマンドを使用します。
kc.[sh|bat] --spi-events-listener-email-include-events=USER_DISABLED_BY_TEMPORARY_LOCKOUT_ERROR,USER_DISABLED_BY_PERMANENT_LOCKOUT
kc.[sh|bat] --spi-events-listener-email-include-events=USER_DISABLED_BY_TEMPORARY_LOCKOUT_ERROR,USER_DISABLED_BY_PERMANENT_LOCKOUT