IdM API の使用
Python スクリプトによる IdM API の使用
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 IdM API の概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Identity Management のサービスには、コマンドラインおよび Web ベースのインターフェイスを使用してアクセスできます。Identity Management API を使用すると、Python で記述されたサードパーティーのアプリケーションやスクリプトを通じて Identity Management サービスと対話できます。
Identity Management API は、JavaScript Object Notation Remote Procedure Call (JSON-RPC) インターフェイスを備えています。さまざまな重要な部分で自動化を使用するには、Python を介して Identity Management API にアクセスします。たとえば、利用可能なすべてのコマンドを使用してサーバーからメタデータを取得できます。
第2章 IdM API の基本 リンクのコピーリンクがクリップボードにコピーされました!
IdM API を使用すると、カスタムスクリプトにより IdM 環境へのアクセスを自動化できます。
2.1. IdM API の初期化 リンクのコピーリンクがクリップボードにコピーされました!
IdM API を使用するには、まず環境内で IdM API を初期化します。
前提条件
- IdM サーバーまたは IdM クライアントパッケージがインストールされている。
- 有効な Kerberos チケットが発行されている。
手順
IdM API を初期化するには、スクリプトの先頭に次のコードを含めます。
from ipalib import api api.bootstrap(context="server") api.finalize()
from ipalib import api api.bootstrap(context="server") api.finalize()Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP サーバーとの接続を確立するには、API の初期化後に次のロジックをスクリプトに追加します。
if api.env.in_server: api.Backend.ldap2.connect() else: api.Backend.rpcclient.connect()if api.env.in_server: api.Backend.ldap2.connect() else: api.Backend.rpcclient.connect()Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM サーバーでスクリプトを実行する場合、このロジックにより、スクリプトが LDAP サーバーに直接接続できるようになります。
- IdM クライアントでスクリプトを実行する場合、スクリプトはリモートプロシージャコール (RPC) クライアントを使用します。
2.2. IdM API コマンドの実行 リンクのコピーリンクがクリップボードにコピーされました!
スクリプト内で IdM API コマンドを実行できます。IdM API コマンドを実行するには、スクリプトで api.Command 構造を使用します。
前提条件
- IdM API が初期化されている。詳細は、IdM API の初期化 を参照してください。
手順
たとえば、ユーザーに関する情報をリスト表示するには、スクリプトに次のコードを含めます。
api.Command.user_show("user_name", no_members=True, all=True)api.Command.user_show("user_name", no_members=True, all=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、引数とオプションもコマンド
user_showに渡しています。
2.3. IdM API コマンドの出力構造 リンクのコピーリンクがクリップボードにコピーされました!
各 IdM API コマンドの出力には、4 つのセクションがあります。これらのセクションには、コマンドの実行に関するさまざまな情報が含まれています。
IdM API の出力構造
result- このセクションには、コマンドの結果が示されます。これには、コマンドに渡されたオプションや引数など、コマンド操作に関するさまざまな詳細が含まれます。
values- このセクションには、コマンドの引数が示されます。
messages-
このセクションには、コマンド実行後に
ipaツールが提供するさまざまな情報が示されます。 summary- このセクションには、操作の概要が示されます。
この例では、スクリプトは add_user コマンドを実行します。
api.Command.user_add("test", givenname="a", sn="b")
api.Command.user_add("test", givenname="a", sn="b")
このコマンドの出力構造は次のとおりです。
2.4. IdM API コマンドとパラメーターのリスト リンクのコピーリンクがクリップボードにコピーされました!
コマンド command_show および param_show を使用すると、IdM API コマンドとそのパラメーターに関する情報をリスト表示できます。
前提条件
- IdM API が初期化されている。詳細は、IdM API の初期化 を参照してください。
手順
user_addコマンドに関する情報を表示するには、次のコードを実行します。api.Command.command_show("user_add")api.Command.command_show("user_add")Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの結果は次のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow user_addコマンドのgivennameパラメーターに関する情報を表示するには、次のコードを実行します。api.Command.param_show("user_add", name="givenname")api.Command.param_show("user_add", name="givenname")Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドの結果は次のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. バッチを使用した IdM API コマンドの実行 リンクのコピーリンクがクリップボードにコピーされました!
batch コマンドを使用すると、複数の IdM API コマンドを 1 回の呼び出しで実行できます。次の例は、複数の IdM ユーザーを作成する方法を示しています。
前提条件
- IdM API が初期化されている。詳細は、IdM API の初期化 を参照してください。
手順
1 つのバッチで 100 人の IdM ユーザーを作成するには、次のコードをスクリプトに含めます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. IdM API コンテキスト リンクのコピーリンクがクリップボードにコピーされました!
IdM API コンテキストは、API が使用するプラグインを決定するものです。コンテキストは API の初期化中に指定します。IdM API コンテキストの使用方法の例は、IdM API の初期化 を参照してください。
IdM API コンテキスト
server- 実行のために IdM API コマンドに渡される引数とオプションを検証するプラグインのセット。
client- 実行のために IdM サーバーに転送される引数とオプションを検証するプラグインのセット。
installer- インストールプロセスに固有のプラグインのセット。
updates- 更新プロセスに固有のプラグインのセット。
第3章 IdM API と IdM CLI コマンドの比較 リンクのコピーリンクがクリップボードにコピーされました!
IdM API コマンドは、Python 対話型コンソールで使用できます。IdM API コマンドは、ipa ツールのコマンドとは異なります。
IdM CLI と IdM API コマンドの違い
- コマンドの命名構造
-
ipaCLI コマンドでは、user-addのようにハイフンが使用されますが、IdM API コマンドでは、user_addのように、代わりにアンダースコアが使用されます。 - パラメーターの命名
-
パラメーターは、IdM CLI コマンドと IdM API コマンドで異なります。たとえば、IdM CLI
user-addコマンドにはfirstパラメーターがありますが、IdM APIuser_addコマンドにはgivennameパラメーターがあります。 - 日付書式
IdM CLI では次の日付形式を使用できます。
-
%Y%m%d%H%M%SZ -
%Y-%m-%dT%H:%M:%SZ -
%Y-%m-%dT%H:%MZ -
%Y-%m-%dZ -
%Y-%m-%d %H:%M:%SZ %Y-%m-%d %H:%MZさらに、IdM API では Python のビルトインクラス
datetimeを使用できます。
-
便利な CLI ツール
-
consoleは対話型の Python コンソールを起動します。これを使用すると、IdM API コマンドを実行できます。 -
helpコマンドは、さまざまな例を含むトピックとコマンドの説明を表示します。 -
show-mappingコマンドは、CLI パラメーター名と LDAP 属性の間のマッピングを表示します。
第4章 IdM API のサンプルシナリオ リンクのコピーリンクがクリップボードにコピーされました!
次の例では、IdM API コマンドを使用する一般的なシナリオを示します。
4.1. IdM API コマンドを使用したユーザーの管理 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、IdM API コマンドを使用して IdM ユーザーを管理する方法の一般的なシナリオを示しています。
IdM API コマンドを使用した IdM ユーザーの管理の例
- IdM ユーザーの作成
この例では、ユーザー名
exampleuserとサポートされているユーザーのone-time password (OTP)認証を使用して IdM ユーザーを作成します。api.Command.user_add("exampleuser", givenname="Example", sn="User", ipauserauthtype="otp")api.Command.user_add("exampleuser", givenname="Example", sn="User", ipauserauthtype="otp")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM ユーザー情報の表示
この例では、IdM ユーザー
exampleuserに関する入手可能な情報をすべて表示します。api.Command.user_show("exampleuser", all=True)api.Command.user_show("exampleuser", all=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM ユーザーの変更
この例では、IdM ユーザー
exampleuserのメールアドレスを変更します。api.Command.user_mod("exampleuser", mail="exampleuser@example.org")api.Command.user_mod("exampleuser", mail="exampleuser@example.org")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM ユーザーの検索
この例では、IdM グループ
admins内のexampleuserに一致するすべての IdM ユーザーを検索します。api.Command.user_find(criteria="exampleuser", in_group="admins")
api.Command.user_find(criteria="exampleuser", in_group="admins")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM ユーザーの削除
この例では、IdM ユーザー
exampleuserを削除します。api.Command.user_del("exampleuser")api.Command.user_del("exampleuser")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 後でユーザーを復元するには、
preserveオプションを使用します。このオプションを使用すると、user_undelコマンドでユーザーを復元できます。- IdM ユーザーの証明書の追加と削除
user_add_certおよびuser_remove_certコマンドを使用すると、ユーザーのBase64 encoded証明書を追加または削除できます。この例では、ユーザーexampleuserの証明書を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM ユーザーの有効化と無効化
user_enableおよびuser_disableコマンドを使用すると、IdM ユーザーを有効または無効にできます。この例では、IdM ユーザーexampleuserを無効にします。api.Command.user_disable("exampleuser")api.Command.user_disable("exampleuser")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. IdM API コマンドを使用したグループの管理 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、IdM API コマンドを使用して IdM グループを管理する方法の一般的なシナリオを示しています。
IdM API コマンドを使用した IdM ユーザーの管理の例
- IdM グループの作成
この例では、指定のグループ ID 番号を使用して IdM グループ
developersを作成します。api.Command.group_add("developers", gidnumber=500, description="Developers")api.Command.group_add("developers", gidnumber=500, description="Developers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ユーザーをメンバーとして IdM グループに追加する
この例では、
adminユーザーをdevelopersグループに追加します。api.Command.group_add_member("developers", user="admin")api.Command.group_add_member("developers", user="admin")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サービスをメンバーとして IdM グループに追加する
この例では、
HTTP/server.ipa.testサービスをdevelopersグループに追加します。api.Command.group_add_member("developers", service="HTTP/server.ipa.test")api.Command.group_add_member("developers", service="HTTP/server.ipa.test")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - グループをサブグループとして IdM グループに追加する
この例では、別のグループ
adminsをdevelopersグループに追加します。api.Command.group_add_member("developers", group="admins")api.Command.group_add_member("developers", group="admins")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループマネージャーの追加
この例では、
bobユーザーをdevelopersグループのグループマネージャーとして追加します。api.Command.group_add_member_manager("developers", user="bob")api.Command.group_add_member_manager("developers", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループの検索
さまざまなパラメーターを使用して IdM グループを検索できます。この例では、ユーザー
bobが管理しているすべてのグループが検索されます。api.Command.group_find(membermanager_user="bob")
api.Command.group_find(membermanager_user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループ情報の表示
この例では、メンバーリストを表示せずに、
developersグループに関するグループ情報を表示します。api.Command.group_show("developers", no_members=True)api.Command.group_show("developers", no_members=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループの変更
この例では、非 POSIX グループの
testgroupを POSIX グループに変換します。api.Command.group_mod("testgroup", posix=True)api.Command.group_mod("testgroup", posix=True)Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループからのメンバーの削除
この例では、
adminユーザーをdevelopersグループから削除します。api.Command.group_remove_member("developers", user="admin")api.Command.group_remove_member("developers", user="admin")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループマネージャーの削除
この例では、マネージャーであるユーザー
bobをdevelopersグループから削除します。api.Command.group_remove_member_manager("developers", user="bob")api.Command.group_remove_member_manager("developers", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IdM グループの削除
この例では、
developersグループを削除します。api.Command.group_del("developers")api.Command.group_del("developers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. IdM API コマンドを使用したアクセス制御の管理 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、IdM API コマンドを使用して、アクセス制御を管理する方法の一般的なシナリオを示しています。
IdM API コマンドを使用したアクセス制御の管理の例
- ユーザー作成用の権限の追加
この例では、ユーザーを作成するための権限を追加します。
api.Command.permission_add("Create users", ipapermright='add', type='user')api.Command.permission_add("Create users", ipapermright='add', type='user')Copy to Clipboard Copied! Toggle word wrap Toggle overflow - グループメンバーシップを管理する権限の追加
この例では、ユーザーをグループに追加するための権限を追加します。
api.Command.permission_add("Manage group membership", ipapermright='write', type='group', attrs="member")api.Command.permission_add("Manage group membership", ipapermright='write', type='group', attrs="member")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ユーザー作成プロセスでの権限の追加
この例では、ユーザーの作成、グループへの追加、およびユーザー証明書の管理のための権限を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 権限を使用したロールの追加
この例では、前の例で作成した権限を使用してロールを追加します。
api.Command.role_add("usermanager", description="Users manager") api.Command.role_add_privilege("usermanager", privilege="User creation")api.Command.role_add("usermanager", description="Users manager") api.Command.role_add_privilege("usermanager", privilege="User creation")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ユーザーへのロールの割り当て
この例では、
usermanagerロールをユーザーbobに割り当てます。api.Command.role_add_member("usermanager", user="bob")api.Command.role_add_member("usermanager", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - グループへのロールの割り当て
この例では、
usermanagerロールをmanagersグループに割り当てます。api.Command.role_add_member("usermanager", group="managers")api.Command.role_add_member("usermanager", group="managers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. IdM API コマンドを使用した sudo ルールの管理 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、IdM API コマンドを使用して sudo ルールを管理する方法の一般的なシナリオを示しています。
IdM API コマンドを使用した sudo ルールの管理の例
- sudo ルールを作成する
この例では、時間変更コマンドを保持する sudo ルールを作成します。
api.Command.sudorule_add("timechange")api.Command.sudorule_add("timechange")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo コマンドを作成する
この例では、
datesudo コマンドを作成します。api.Command.sudocmd_add("/usr/bin/date")api.Command.sudocmd_add("/usr/bin/date")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo コマンドを sudo ルールに割り当てる
この例では、
datesudo コマンドをtimechangesudo ルールに割り当てます。api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")api.Command.sudorule_add_allow_command("timechange", sudocmd="/usr/bin/date")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo コマンドのグループを作成して割り当てる
この例では、複数の sudo コマンドを作成して、新しく作成した
timecmdssudo コマンドグループに追加し、そのグループをtimechangesudo ルールに割り当てます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo コマンドを拒否する
この例では、
rmコマンドが sudo として実行されることを拒否します。api.Command.sudocmd_add("/usr/bin/rm") api.Command.sudorule_add_deny_command("timechange", sudocmd="/usr/bin/rm")api.Command.sudocmd_add("/usr/bin/rm") api.Command.sudorule_add_deny_command("timechange", sudocmd="/usr/bin/rm")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo ルールにユーザーを追加する
この例では、ユーザー
bobをtimechangesudo ルールに追加します。api.Command.sudorule_add_user("timechange", user="bob")api.Command.sudorule_add_user("timechange", user="bob")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 指定したホストでのみ sudo ルールを使用できるようにする
この例では、
timechangeルールをclient.ipa.testホストでしか使用できないように制限します。api.Command.sudorule_add_host("timechange", host="client.ipa.test")api.Command.sudorule_add_host("timechange", host="client.ipa.test")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo ルールを別のユーザーとして実行するように設定する
デフォルトでは、sudo ルールは
rootとして実行されます。この例では、代わりにaliceユーザーとして実行されるようにtimechangesudo ルールを設定します。api.Command.sudorule_add_runasuser("timechange", user="alice")api.Command.sudorule_add_runasuser("timechange", user="alice")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo ルールをグループとして実行するように設定する
この例では、
sysadminsグループとして実行されるようにtimechangesudo ルールを設定します。api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")api.Command.sudorule_add_runasgroup("timechange", group="sysadmins")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo ルールの sudo オプションを設定する
この例では、
timechangesudo ルールの sudo オプションを設定します。api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")api.Command.sudorule_add_option("timechange", ipasudoopt="logfile='/var/log/timechange_log'")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo ルールを有効にする
この例では、
timechangesudo ルールを有効にします。api.Command.sudorule_enable("timechange")api.Command.sudorule_enable("timechange")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - sudo ルールを無効にする
この例では、
timechangesudo ルールを無効にします。api.Command.sudorule_disable("timechange")api.Command.sudorule_disable("timechange")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. IdM API コマンドを使用したホストベースのアクセス制御の管理 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、IdM API コマンドを使用してホストベースのアクセス制御 (HBAC) を管理する方法の一般的なシナリオを示しています。
IdM API コマンドを使用した HBAC の管理の例
- HBAC ルールの作成
この例では、SSH サービスアクセスを処理する基本ルールを作成します。
api.Command.hbacrule_add("sshd_rule")api.Command.hbacrule_add("sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールへのユーザーの追加
この例では、ユーザー
johnをsshd_ruleHBAC ルールに追加します。api.Command.hbacrule_add_user("sshd_rule", user="john")api.Command.hbacrule_add_user("sshd_rule", user="john")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールへのグループの追加
この例では、グループ
developersをsshd_ruleHBAC ルールに追加します。api.Command.hbacrule_add_user("sshd_rule", group="developers")api.Command.hbacrule_add_user("sshd_rule", group="developers")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールからのユーザーの削除
この例では、ユーザー
johnをsshd_ruleHBAC ルールから削除します。api.Command.hbacrule_remove_user("sshd_rule", user="john")api.Command.hbacrule_remove_user("sshd_rule", user="john")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しいターゲット HBAC サービスの登録
ターゲットサービスを HBAC ルールに割り当てる前に、ターゲットサービスを登録する必要があります。この例では、
chronydサービスを登録します。api.Command.hbacsvc_add("chronyd")api.Command.hbacsvc_add("chronyd")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登録済みサービスの HBAC ルールへの割り当て
この例では、
sshdサービスをsshd_ruleHBAC ルールに割り当てます。このサービスはデフォルトで IPA に登録されているため、事前にhbacsvc_addで登録する必要はありません。api.Command.hbacrule_add_service("sshd_rule", hbacsvc="sshd")api.Command.hbacrule_add_service("sshd_rule", hbacsvc="sshd")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールへのホストの追加
この例では、
workstationsホストグループをsshd_ruleHBAC ルールに追加します。api.Command.hbacrule_add_host("sshd_rule", hostgroup="workstations")api.Command.hbacrule_add_host("sshd_rule", hostgroup="workstations")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールのテスト
この例では、
workstation.ipa.testホストに対してsshd_ruleHBAC ルールを使用します。ユーザーjohnからのサービスsshdをターゲットとしています。api.Command.hbactest(user="john", targethost="workstation.ipa.test", service="sshd", rules="sshd_rule")
api.Command.hbactest(user="john", targethost="workstation.ipa.test", service="sshd", rules="sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールの有効化
この例では、
sshd_ruleHBAC ルールを有効にします。api.Command.hbacrule_enable("sshd_rule")api.Command.hbacrule_enable("sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow - HBAC ルールの無効化
この例では、
sshd_ruleHBAC ルールを無効にします。api.Command.hbacrule_disable("sshd_rule")api.Command.hbacrule_disable("sshd_rule")Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 IdM API 操作の監査 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) サーバーは、systemd ジャーナルを使用して、すべての IdM API 操作の監査レコードを作成します。操作を監査し、問題をトラブルシューティングするには、ジャーナルを照会して、誰が、いつ、どのサーバー上でアクションを実行したかを確認できます。
5.1. IdM API 監査の概要 リンクのコピーリンクがクリップボードにコピーされました!
IdM サーバーは、Identity Management (IdM) API の使用をすべて systemd ジャーナルに記録します。これにより、API 操作を監査するためのログを収集する方法が一元化されます。
systemd ジャーナルを使用すると、個々のシステムからのログを一元的に収集できます。その後、ログの照会やフィルタリングを行うことができます。
各ログエントリーには、IPA.API というマーカーでタグ付けされており、構造化された形式で次の詳細が含まれています。
-
アクションを実行した認証済みの Kerberos プリンシパル、または操作が LDAPI を介してサーバー上で直接
rootユーザーによって実行されたかどうか。 - 実行された API コマンドの名前。
-
実行の結果。
SUCCESSか例外名のどちらかです。 - LDAP バックエンドインスタンスの識別子。この識別子は、同じリクエストの一部として実行されたすべての操作で共通です。
- コマンドに渡された引数とオプションのリスト (JSON 形式)。
これらのエントリーは journalctl ユーティリティーを使用して照会できます。journalctl を -x オプション付きで使用すると、関連するドキュメントへのリンクを含む、より詳細なログエントリーの説明が人間が読める形式で表示されます。
すべての IdM API 監査エントリーの MESSAGE_ID プロパティーには、アプリケーションの UID 6d70f1b493df36478bc3499257cd3b17 が設定されます。
5.2. IdM API 監査ログの表示 リンクのコピーリンクがクリップボードにコピーされました!
systemd ジャーナルを照会することで、IdM API 監査ログと特定のエントリーの詳細を表示できます。この手順では、IdM API を使用してユーザーの削除のログを特定および表示する方法を示します。
前提条件
- IdM サーバーへの root アクセス権限がある。
- IdM サーバーで RHEL 9.5 以降を実行している。
手順
ジャーナルに記録されたすべての IdM API 操作のリストを表示するために、ジャーナルを
IPA.APIマーカーでフィルタリングします。journalctl -g IPA.API May 23 10:30:15 idmserver.idm.example.com /usr/bin/ipa[247422]: [IPA.API] [autobind]: user_del: SUCCESS [ldap2_140328582446688] {"uid": ["example_user"], "continue": false, "version": "2.253"} May 23 10:32:01 idmserver.idm.example.com /usr/bin/ipa[247555]: [IPA.API] admin@IDM.EXAMPLE.COM: user_add: SUCCESS [ldap2_140328582446999] {"uid": ["new_user"], "givenname": "New", "sn": "User", "cn": "New User"} May 23 10:33:10 idmserver.idm.example.com /mod_wsgi[247035]: [IPA.API] admin@IDM.EXAMPLE.COM: ping: SUCCESS [ldap2_139910420944784] {"version": "2.253"} May 23 10:34:05 idmserver.idm.example.com /usr/bin/ipa[247888]: [IPA.API] [autobind]: group_add_member: SUCCESS [ldap2_140328582447111] {"cn": "admins", "user": "new_user"}# journalctl -g IPA.API May 23 10:30:15 idmserver.idm.example.com /usr/bin/ipa[247422]: [IPA.API] [autobind]: user_del: SUCCESS [ldap2_140328582446688] {"uid": ["example_user"], "continue": false, "version": "2.253"} May 23 10:32:01 idmserver.idm.example.com /usr/bin/ipa[247555]: [IPA.API] admin@IDM.EXAMPLE.COM: user_add: SUCCESS [ldap2_140328582446999] {"uid": ["new_user"], "givenname": "New", "sn": "User", "cn": "New User"} May 23 10:33:10 idmserver.idm.example.com /mod_wsgi[247035]: [IPA.API] admin@IDM.EXAMPLE.COM: ping: SUCCESS [ldap2_139910420944784] {"version": "2.253"} May 23 10:34:05 idmserver.idm.example.com /usr/bin/ipa[247888]: [IPA.API] [autobind]: group_add_member: SUCCESS [ldap2_140328582447111] {"cn": "admins", "user": "new_user"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、ユーザー、コマンド、結果、一意の接続 ID、使用されたパラメーターなど、各 API 呼び出しの概要が表示されます。
-
調べる必要がある特定エントリーの一意の識別子を特定します。たとえば、
user_del呼び出しの LDAP バックエンドインスタンスの ID が、ldap2_140328582446688であるとします。 ユーザー削除ログエントリーの詳細な説明を取得するために、
-xオプションと一意の識別子の値を指定してjournalctlを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
-
システム上の
journalctl(1)man ページ