5.2. unicornidm-tool(8)

5.2.1. 概要

unicornidm-tool <resource> <command> [<args>]
unicornidm-tool <command> [<args>]

5.2.2. 説明

このツールは Unicorn ID Manager に対してユーザー追加やグループ追加などの操作を 行うための機能を提供します。このツールを利用するためには 設定ファイル に設定を記述する必要があります。

resourceusergroupadmin および role のいずれかを選択します。

commandresource に対してどのような操作を実行するかを指定します。

args はそれぞれの resourcecommand の組み合わせに対する引数やオプションです。

5.2.3. 設定ファイル

unicornidm.conf に以下の内容を追記してください。

[client]
server_url = https://localhost:8443/
admin_name = test-admin
admin_password_file = /path/to/test-admin-password
uid = unicornidm
gid = unicornidm
timezone = Asia/Tokyo

[client] はクライアント設定のセクションが開始されることを示します。

server_url は Unicorn ID Manager が稼働するサーバーの URL です。

admin_name は Unicorn ID Manager に接続するための管理者名です。

admin_password_fileadmin_name のパスワードを格納したファイル名です。

uidgidunicornidm-tool adminunicornidm-tool role を実行する 際に利用されます。 Unicorn ID Manager の実行ユーザー/グループを指定してください。

timezone を指定することで、ユーザーやグループの操作時に出力される監査ログの 時刻が指定した timezone の時刻になります。

5.2.4. それぞれのコマンドの詳細

5.2.4.1. ユーザーに関する操作

unicornidm-tool user add [OPTIONS] TARGET CSV_FILE

ユーザーを追加します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool user modify [OPTIONS] TARGET CSV_FILE

ユーザーを修正します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool user enable [OPTIONS] TARGET CSV_FILE

ユーザーを有効化します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool user disable [OPTIONS] TARGET CSV_FILE

ユーザーを無効化します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool user changepassword [OPTIONS] TARGET CSV_FILE

ユーザーのパスワードを変更します。

CSV ファイルのヘッダに password カラム が存在しなければ、 Unicorn ID Manager のランダムパスワード生成規則に基づいて パスワードを自動生成します。自動生成されたパスワードは unicornidm-tool user getpassword [OPTIONS] TARGET で取得してください。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool user delete [OPTIONS] TARGET CSV_FILE

ユーザーを削除します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool user getpassword [OPTIONS] TARGET

自動生成されたユーザーのパスワードを取得します。

Arguments:
TARGET      対象のターゲット

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
unicornidm-tool user list [OPTIONS] TARGET

ユーザー一覧を取得します。

Arguments:
TARGET                              対象のターゲット

Options:
-A, --admin-name TEXT               管理者の名前
-P, --admin-password-file TEXT      管理者のパスワードを格納したファイル
-p, --page INTEGER                  リストのページ番号
--sort-by KEY                       KEY に基づいてソート
--sort-order [ascending|descending] ソートを昇順にするか降順にするか
--refresh                           キャッシュをリフレッシュして取得
--limit INTEGER                     1 ページあたりの表示数
                                    (0 の場合、すべて表示 (時間がかかります))
--filter TEXT                       検索フィルター
unicornidm-tool user result [OPTIONS] TARGET

ユーザーに対する操作結果を取得します。

Arguments:
TARGET                         対象のターゲット

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-p, --page INTEGER             リストのページ番号
--limit INTEGER                1 ページあたりの表示数
                               (0 の場合、すべて表示 (時間がかかります))
--filter TEXT                  検索フィルター

5.2.4.2. グループに関する操作

unicornidm-tool group add [OPTIONS] TARGET CSV_FILE

グループを追加します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool group modify [OPTIONS] TARGET CSV_FILE

グループを修正します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool group delete [OPTIONS] TARGET CSV_FILE

グループを削除します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool group addmembers [OPTIONS] TARGET CSV_FILE

グループにメンバーを追加します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool group deletemembers [OPTIONS] TARGET CSV_FILE

グループからメンバーを削除します。

Arguments:
TARGET      操作対象のターゲット
CSV_FILE    CSV ファイルのパス

Options:
-A, --admin-name TEXT           管理者の名前
-P, --admin-password-file TEXT  管理者のパスワードを格納したファイル
-b, --backends TEXT             バックエンド
unicornidm-tool group list [OPTIONS] TARGET

グループ一覧を取得します。

Arguments:
TARGET                              対象のターゲット

Options:
-A, --admin-name TEXT               管理者の名前
-P, --admin-password-file TEXT      管理者のパスワードを格納したファイル
-p, --page INTEGER                  リストのページ番号
--sort-by KEY                       KEY に基づいてソート
--sort-order [ascending|descending] ソートを昇順にするか降順にするか
--refresh                           キャッシュをリフレッシュして取得
--limit INTEGER                     1 ページあたりの表示数
                                    (0 の場合、すべて表示 (時間がかかります))
--filter TEXT                       検索フィルター
unicornidm-tool group listmembers [OPTIONS] TARGET GROUP_NAME

グループのメンバー一覧を取得します。

Arguments:
TARGET                              対象のターゲット
GROUP_NAME                          対象のグループ

Options:
-A, --admin-name TEXT               管理者の名前
-P, --admin-password-file TEXT      管理者のパスワードを格納したファイル
--refresh                           キャッシュをリフレッシュして取得
unicornidm-tool group result [OPTIONS] TARGET

グループに対する操作結果を取得します。

Arguments:
TARGET                         対象のターゲット

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-p, --page INTEGER             リストのページ番号
--limit INTEGER                1 ページあたりの表示数
                               (0 の場合、すべて表示 (時間がかかります))
--filter TEXT                  検索フィルター

5.2.4.3. 管理者に関する操作

管理者に関する操作で -R(–remote) オプションを指定しない場合、 ローカルサーバーの Unicorn ID Manager 上の管理者を操作します。 この時、 -A オプション及び -P オプションで指定する、管理者名、管理者パスワードは 不要です。

unicornidm-tool をパッケージではなく、ソースコードからビルドしてインストールした場合、 unicornidm-tool を実行できるユーザーであれば、誰でも管理者の操作ができますので、 適宜、 unicornidm-tool のパーミッションや owner/group を修正してください。

unicornidm-tool admin add [OPTIONS] NAME

管理者を追加します。

Arguments:
NAME                           追加する管理者の名前

Options:
--password TEXT                追加する管理者のパスワード
                               (指定がない場合プロンプトから入力)
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-r, --role TEXT                追加する管理者のロール
                               (デフォルトは SuperView)
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)
unicornidm-tool admin changepassword [OPTIONS] NAME

管理者のパスワードを変更します。

Arguments:
NAME                           パスワードを変更する管理者の名前

Options:
--password TEXT                パスワードを変更する管理者の新しいパスワード
                               (指定がない場合プロンプトから入力)
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)
unicornidm-tool admin changerole [OPTIONS] NAME ROLE

管理者のロールを変更します。

Arguments:
NAME                           ロールを変更する管理者の名前
ROLE                           ロール名

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)
unicornidm-tool admin delete [OPTIONS] NAME

管理者を削除します。

Arguments:
NAME                           削除する管理者の名前

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)
unicornidm-tool admin list [OPTIONS]

管理者の一覧を取得します。

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)

5.2.4.4. ロールに関する操作

ロールに関する操作で -R(–remote) オプションを指定しない場合、 ローカルサーバーの Unicorn ID Manager 上のロールを操作します。 この時、 -A オプション及び -P オプションで指定する、管理者名、管理者パスワードは 不要です。

unicornidm-tool をパッケージではなく、ソースコードからビルドしてインストールした場合、 unicornidm-tool を実行できるユーザーであれば、誰でもロールの操作ができますので、 適宜、 unicornidm-tool のパーミッションや owner/group を修正してください。

unicornidm-tool role add [OPTIONS] ROLE_FILE

ロールを追加します。

Arguments:
ROLE_FILE                      追加するロールの情報を格納したファイル

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)

ROLE_FILE は JSON フォーマットのファイルで、以下のようなファイルです。 この JSON オブジェクトには必ず nameprivileges を含まなければなりません。 また、 privileges は Array 型で、それぞれの要素は targetactions を含むオブジェクトでなければなりません。

{
  "name": "role_name",
  "privileges": [
    {
      "target": "target_name",
      "actions": [
        "user_list",
        "user_modify",
        "user_change_password"
      ]
    }
  ]
}

指定可能なアクションは以下のとおりです。 privileges 内の actions に ここで指定したアクションを含めることで、作成されるロールはこれらのアクションを 実行することが可能になります。

指定可能なアクション一覧
アクション名 アクションの説明
user_list ユーザー一覧参照操作
user_add ユーザー作成操作
user_modify ユーザー更新操作
user_enable ユーザー有効化操作
user_disable ユーザー無効化操作
user_delete ユーザー削除操作
user_rename ユーザーのリネーム操作
user_change_password ユーザーのパスワード変更操作
group_list グループ一覧参照操作
group_add グループ作成操作
group_modify グループ更新操作
group_delete グループ削除操作
group_rename グループのリネーム操作
group_add_members グループへのメンバー追加操作
group_delete_members グループからのメンバー削除操作
result 結果参照操作
get_password ランダム生成されたパスワードの取得操作

privileges 内のオブジェクトである、 target には * を指定することが可能です。これにより、すべてのターゲットに対する権限を 指定できます。

privileges 内のオブジェクトである、 actions 内に * を含めた場合、すべてのアクションを操作可能な権限を指定できます。

バージョン v3.7.9 で追加: v3.7.9 で actions に * を含めることができるようになりました。

unicornidm-tool role delete [OPTIONS] ROLE_NAME

ロールを削除します。

Arguments:
ROLE_NAME                      削除するロールの名前

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)
unicornidm-tool role list [OPTIONS]

ロールの一覧を取得します。

Options:
-A, --admin-name TEXT          管理者の名前
-P, --admin-password-file TEXT 管理者のパスワードを格納したファイル
-R, --remote                   リモートに対する操作かどうかのフラグ
                               (デフォルトは False)

5.2.4.5. バックアップ・リストアに関する操作

Unicorn ID Manager は管理者情報、ロール情報及び監査ログを データベースで保持しているため、それらデータをバックアップする機能を 持っています。また、バックアップしたデータからリストアする機能も備えています。 バックアップ及びリストアは Unicorn ID Manager が実行する MongoDB が起動されている 必要があります。

unicornidm-tool backup [OPTIONS]

バックアップを取得します。

Options:
-b, --backup-directory TEXT    バックアップデータ保存先ディレクトリー
                               (デフォルトは LOCALSTATE_DIRECTORY/backup)
-c, --backup-count INTEGER     バックアップ世代数 (デフォルトは 30)
unicornidm-tool restore BACKUP_ARCHIVE

BACKUP_ARCHIVE からデータをリストアします。

Arguments:
BACKUP_ARCHIVE      unicornidm-tool backup でバックアプしたアーカイブファイル