5.1. unicornidm-tool(8)

5.1.1. 概要

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

5.1.2. 説明

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

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

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

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

5.1.3. unicornidm-tool に対する設定

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

[client]
server_url = https://localhost:443/
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 に接続するための管理者名です。 設定しておくと、 unicornidm-tool -A オプションを省略できます。

admin_password_file

admin_name のパスワードを格納したファイル名です。 設定しておくと、 unicornidm-tool -P オプションを省略できます。

timezone

unicornidm-tool result2 の出力の時刻のタイムゾーンを設定できます。

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

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

5.1.4.1. unicornidm-tool 共通のオプション

以下のオプションは unicornidm-tool のほとんどのサブコマンドで指定できます。

-A <文字列>, --admin-name <文字列>

コマンドを実行する UIDM の管理者の名前を指定します。 指定しない場合は unicornidm.conf[client] admin_name が使われます。 それも設定されていない場合はプロンプトが表示されます。

-P <ファイルパス>, --admin-password-file <ファイルパス>

コマンドを実行する UIDM の管理者のパスワードを指定します。 指定しない場合は unicornidm.conf[client] admin_password_file が使われます。 それも設定されていない場合はプロンプトが表示されます。

5.1.4.2. ユーザー/グループに対して操作を実行するコマンド

$ unicornidm-tool resource-type operation-name target csv-filepath [options]
5a30a5a964989b433b33b1f2

unicornidm-tool resource-type operation-name コマンドはバックエンドに対してユーザー/グループ情報を変更する操作を実行します。

操作が全て UIDM サーバー側で完了した後に実行した操作の submissionID を1つ出力し終了します。 結果を見たい場合には unicornidm-tool result2 コマンドに出力された submissionID を渡してください。以下はその例です。

$ unicornidm-tool result2 operations Target1 --filter submissionID=5a30a5a964989b433b33b1f2

以下が引数、オプションです。

resource-type

usergroup を指定してください。

operation-name
user の場合
  • add

  • modify

  • rename

  • delete

  • changepassword

  • enable

  • disable

group の場合
  • add

  • modify

  • rename

  • delete

  • addmembers

  • deletemembers

target

操作を実行するターゲットを指定してください。

csv-filepath

CSVファイルのパスを指定してください。 CSVファイルの詳細については 一括操作のための CSV ファイルのフォーマットについて を参照ください。

-b <カンマ区切りの文字列>, --backends <カンマ区切りの文字列>

操作を実行するバックエンドを指定してください。

例: ldap-backend1,ad-backend1

指定しない場合は、ターゲットに属する全てのバックエンドで操作が実行されます。

-A <文字列>, --admin-name <文字列>
-P <ファイルパス>, --admin-password-file <ファイルパス>

5.1.4.3. ユーザー/グループの情報を取得するコマンド

$ unicornidm-tool user getpassword [options] target

自動生成されたユーザーのパスワードを取得します。 一度取得したパスワードを再度取得することはできません。

Arguments:
TARGET      対象のターゲット

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

ユーザー一覧を取得します。 結果はCSV形式で出力されます。

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                       検索フィルター
-a, --all-attributes                全属性を取得
unicornidm-tool user get [OPTIONS] TARGET NAME

単一ユーザーの詳細情報を取得します。 結果はJSON形式で出力されます。

Arguments:
TARGET                              対象のターゲット
NAME                                対象のユーザー名

Options:
-A, --admin-name TEXT               管理者の名前
-P, --admin-password-file TEXT      管理者のパスワードを格納したファイル

--refresh                           キャッシュをリフレッシュして取得
unicornidm-tool group list [OPTIONS] TARGET

グループ一覧を取得します。 結果はCSV形式で出力されます。

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                       検索フィルター
-a, --all-attributes                全属性を取得
unicornidm-tool group get [OPTIONS] TARGET NAME

単一グループの詳細情報を取得します。 結果はJSON形式で出力されます。

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

Options:
-A, --admin-name TEXT               管理者の名前
-P, --admin-password-file TEXT      管理者のパスワードを格納したファイル

--refresh                           キャッシュをリフレッシュして取得
unicornidm-tool group listmembers [OPTIONS] TARGET GROUP_NAME [BACKEND]

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

Arguments:
TARGET                              対象のターゲット
GROUP_NAME                          対象のグループ
BACKEND                             対象のバックエンド

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

5.1.4.4. 結果取得用の操作

unicornidm-tool result2 は操作結果を JSON 形式で取得します。

$ unicornidm-tool result2 type target [options]

引数、およびオプションは以下です。

type

submissionsoperations を指定してください。前者がサマリーで後者が詳細です。

target

ターゲットID を指定してください。

-f <文字列>, --filter <文字列>

取得する結果を絞り込みます。 複数個指定できます。

個々のオプションは -f <フィールド名>=<値> の形式である必要があります。 <フィールド名> にはこのコマンドの出力として返ってくる JSON 内のフィールド名を指定してください。 フィールドの型によって <値> の形式が異なります。

文字列

文字列をそのまま指定してください。 指定するフィールドによって部分一致か全体一致か、大文字小文字を区別しないかなどが変わります。

整数

整数を指定してください。

真偽値

真偽値 true で検索したい場合、文字列 true (大文字小文字は区別しない)を指定してください。 それ以外の文字列の場合は真偽値 false で検索します。

日時

<日時>,<日時> とコンマで2つ日時を指定することで範囲検索ができます。 上限を指定しないときには <日時>, と指定し、 下限を指定しないときには ,<日時> と指定してください。

<日時> のフォーマットは ISO 8601 形式で指定してください。 例: 2017-12-13T11:48:25+09:00

日付よりも細かい単位は省略しても構いません。 例: 2017-12-13

タイムゾーンは省略すると unicornidm.conf[client] セクションで指定したタイムゾーンが使われます。

IPアドレス

範囲検索をしたいときには CIDR 形式を利用してください。 例: 192.168.0.0/16

特定のアドレスを検索したいときには / 移行を除いてください。 例: 192.168.0.1

-s <文字列>, --sort <文字列>

結果をソートします。 複数回指定できます。

-s <フィールド名> または -s -<フィールド名> の形式で指定してください。 前者は昇順になり、後者は降順になります。

-l <整数>, --limit <整数>

結果の最大取得数を設定します。 デフォルトは 10000 です。

-o <整数>, --offset <整数>

検索して得られた結果のうち、先頭 <整数> 分だけを出力しません。 デフォルトは 0 です。

-A <文字列>, --admin-name <文字列>
-P <ファイルパス>, --admin-password-file <ファイルパス>

バージョン 3.15.0 で追加: unicornidm-tool result2 コマンドが追加されました。

unicornidm-tool result [OPTIONS] TARGET

リソースに対する操作結果をCSV形式で取得します。

バージョン 3.20.0 で非推奨: 代わりに unicornidm-tool result2 を使ってください。 CSV 形式で結果を取得したい場合は、 JSON から CSV に変換するスクリプトを用意してください。

Arguments:
TARGET                          対象のターゲット

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

--old                          UnicornIDM 3.14.0 にアップデートする前に発生した操作の結果を取得します

5.1.4.5. 管理者に関する操作

ローカルサーバーの Unicorn ID Manager 上の管理者を操作します。 これらのコマンドは Unicorn ID Manager を起動してから行う必要があります。

unicornidm-tool admin add [OPTIONS] NAME

管理者を追加します。

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

Options:
--password TEXT                追加する管理者のパスワード
                               (指定がない場合プロンプト又は標準入力から入力)
-r, --role TEXT                追加する管理者のロール
                               (デフォルトは SuperView)
unicornidm-tool admin changepassword [OPTIONS] NAME

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

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

Options:
--password TEXT                パスワードを変更する管理者の新しいパスワード
                               (指定がない場合プロンプトから入力)
unicornidm-tool admin changerole [OPTIONS] NAME ROLE

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

Arguments:
NAME                           ロールを変更する管理者の名前
ROLE                           ロール名
unicornidm-tool admin delete [OPTIONS] NAME

管理者を削除します。

Arguments:
NAME                           削除する管理者の名前
                               (デフォルトは False)
unicornidm-tool admin list [OPTIONS]

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

5.1.4.6. ロールに関する操作

ローカルサーバーの Unicorn ID Manager 上のロールを操作します。 これらのコマンドは Unicorn ID Manager を起動してから行う必要があります。

unicornidm-tool role add [OPTIONS] ROLE_FILE

ロールを追加します。

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

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 内に * を含めた場合、すべてのアクションを操作可能な権限を指定できます。

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

unicornidm-tool role delete [OPTIONS] ROLE_NAME

ロールを削除します。

Arguments:
ROLE_NAME                      削除するロールの名前
                               (デフォルトは False)
unicornidm-tool role list [OPTIONS]

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

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

Unicorn ID Manager が内部のデータベースに保持している管理者情報、ロール情報及び監査ログを バックアップ、復元するコマンドです。 これらのコマンドは Unicorn ID Manager を起動してから行う必要があります。

unicornidm-tool backup [OPTIONS]

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

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

BACKUP_ARCHIVE からデータを内部データベースに復元します。

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