5.3. unicornidm.conf¶
5.3.1. 概要¶
unicornidm.conf
5.3.2. 説明¶
unicornidm.conf
は Unicorn ID Manager の設定ファイルです。このファイルは Python
の configparser モジュールを利用して読み込まれます。 configparser モジュールの詳細
については、 https://docs.python.org/3/library/configparser.html をご覧ください。
unicornidm.conf
は大きく分けて次のセクションで構成されています。
- メインセクション
Unicorn ID Manager サービス全体に及ぶ設定を記述するセクションです。
- ターゲットセクション
ターゲットに関するセクションです。ターゲットがどのバックエンドに紐付いているか、 どのようなパスワードポリシーを適用するかを定義します。
- バックエンドセクション
バックエンドに関するセクションです。バックエンドへの接続用パラメーターなどを 定義します。バックエンドセクションはバックエンドの type によって設定パラメーター が異なります。なお、バックエンドセクションにはかならずテンプレートファイルが 必要になります。テンプレートファイルは
unicornidm.conf
と同じディレクトリにある、templates/
ディレクトリ内に、backend-name.py
のファイル名で登録します。backend-name
はバックエンドの名前です。- クライアントセクション
Unicorn ID Manager に付属する unicornidm-tool(8) で使用されるセクションです。
5.3.3. メインセクション¶
メインセクションは [__main__] という名前のセクションで定義されます。 ここでは以下のパラメーターを定義できます。
- debug_level¶
Unicorn ID Manager のデバッグレベルを定義します。定義可能な値は以下のとおりです。
DEBUG すべてのデバッグログを出力 INFO DEBUG を除いたデバッグログを出力 WARNING DEBUG, INFO を除いたデバッグログを出力 ERROR DEBUG, INFO, WARNING を除いたデバッグログを出力 CRITICAL DEBUG, INFO, WARNING, ERROR を除いたデバッグログを出力
- debug_file¶
Unicorn ID Manager のデバッグ情報を出力するファイルパスを定義します。
- targets¶
ターゲット一覧をカンマ区切りで定義します。ターゲット文字列内に : を含む場合、 : の左側がシステムで利用するためのターゲット名になり、 右側の文字列はターゲットの表示名になります。システムで利用するターゲット名は URL 等に利用されます。ターゲットの表示名は管理画面のダッシュボード上で ターゲットを表示するために利用されます。 : を含まない場合、システムで利用するターゲット名とターゲットの表示名は同一になります。
- session_time_out¶
ログインしたアカウントのセッションタイムアウト (単位: 秒) を定義します。 デフォルト値は 3600 です。
- password_cache_duration¶
ランダム生成されたパスワードを保持する期間 (単位: 秒) を設定します。 デフォルト値は 86400 です。
- items_per_page¶
ユーザーやグループの一覧取得時に出力する項目数を指定します。 デフォルト値は 20 です。
- multi_valued_attributes¶
複数値を持つフロントエンド属性をカンマ区切りで指定します。 デフォルト値は
mail,phoneNumbers,img,photo,streetAddress,locality,region,postalCode,country,entitlement,role,x509Certificate,azureLicense
です。なお、Active Directory において
mail
属性に複数の値を入れることはできないので、 Active Directory でmail
に複数値を格納したい場合には Active Directory のテンプレートファイル上でmail
フロントエンド属性を 別のバックエンド属性に紐付ける必要があります。
- user_viewable_attributes¶
ユーザー一覧取得時に出力するフロントエンド属性名をカンマ区切りで定義します。 デフォルト値は
userName,familyName,givenName
です。
- group_viewable_attributes¶
グループ一覧取得時に出力するフロントエンド属性名をカンマ区切りで定義します。 デフォルト値は
groupName,description
です。
- admin_lockout_policy_duration¶
管理者のロックアウト期間 (単位: 秒) を定義します。デフォルト値は 3600 です。 ロックアウトを無効化したいときは 0 に設定してください。
- admin_lockout_policy_max_failure¶
管理者が連続で何回ログインに失敗したあとにロックアウトするかを定義します。 デフォルト値は 3 です。
- admin_lockout_policy_failure_count_interval¶
認証失敗時刻の情報が存続する期間 (単位: 秒) を定義します。 デフォルト値は 1800 です。この値を 0 にした場合、 認証失敗時刻情報が削除されないため、 lockout_policy_max_failure で 定義した回数だけ連続で認証が失敗すれば、たとえどんなに期間を空けても 必ずロックアウトされます。
- allowed_hosts¶
UnicornIDM が動作しているサーバーのホスト名をカンマ区切りで設定してください。 例えば、
allowed_host = host1, host2
のように指定します。 UnicornIDM は HTTP リクエストのHost
ヘッダーがこの設定で指定されている ホスト名のいずれにも一致しない場合にそのリクエストを拒否することがあります。何も設定していない状態でも、 localhost 、 127.0.0.1 および サーバーの FQDN ホスト名 からのアクセスは許可されます。 これらのアクセスに加えて別のホスト名での HTTP リクエストを許可したいときに 追加のホスト名を指定してください。
use_x_forwarded_host
設定をyes
にしている場合には、Host
ヘッダーの代わりにX-Forwarded-Host
ヘッダーが検証されます。
- use_x_forwarded_host¶
HTTPヘッダーの
X-Forwarded-Host
ヘッダーをHost
ヘッダーより優先するかどうかを設定します。yes
に設定するとX-Forwarded-Host
が優先されます。デフォルト値はno
です。X-Forwarded-Host
ヘッダーは UnicornIDM をリバースプロキシを使った構成で使用する場合などに使用されます。 この設定は主に一般ユーザーへのパスワードリセットメールに書くパスワード変更URLを構成する際に使われます。Added in version 3.11.6.
- client_ip_address_http_header¶
どの HTTPヘッダーからクライアントの IPアドレスを推測するかを設定します。 推測したIPアドレスは操作結果に記録されます。 デフォルトではTCPコネクションの情報からIPアドレスを取得します。
Added in version 3.16.4.
注釈
このパラメータは
header_auth_trust_ips
の挙動には影響を与えません。
5.3.4. ターゲットセクション¶
ターゲットセクションは [target:<name>] という名前のセクションで定義されます。 <name> はメインセクションの targets で列挙したうちのターゲット名になります。
たとえば、以下のようになります。
[__main__]
targets = Sales, Finance, Tech
[target:Sales]
...
[target:Finance]
...
[target:Tech]
...
ターゲットセクションでは以下のパラメーターを定義できます。
- backends¶
ターゲットに紐づくバックエンドをカンマ区切りで定義します。
- backends_add¶
ユーザー/グループの追加処理を行う時にデフォルトで有効になるバックエンドをカンマ区切りで定義します。 ここで定義されたバックエンド以外のバックエンドを利用する場合は、手動でチェックボックスにチェックを付ける必要があります。 バックエンドをひとつも指定しなかった場合、デフォルトで全てのバックエンドが有効になります。
- backends_default_select¶
バックエンドを選択するチェックボックスのデフォルトのチェック状態を定義します。 デフォルト値は true (チェック済み) です。 また
backends_add
が同時に設定された場合は、 ユーザー/グループの追加時のみbackends_add
の設定が反映されます。Added in version 3.18.7.
- authentication_backends¶
一般ユーザーの認証を行うバックエンドを条件式のように
and
とor
でつなげて指定します。 バックエンド名、and
、or
の間には半角スペースを間に入れてください。例1:
backend1 or backend2
この場合
backend1
,backend2
のどちらかで認証が成功すれば、一般ユーザーはログインできます。 認証はbackend1
,backend2
の順に実行され、backend1
で認証成功するとbackend2
での認証を実行されません。例2:
backend1 and backend2
この場合
backend1
,backend2
の両方で認証が成功すれば、一般ユーザーはログインできます。 認証はbackend1
,backend2
の順に実行され、backend1
で認証失敗するとbackend2
での認証を実行されません。複雑な条件式を書くときには半角括弧(
()
)を使うことができます。 例えば以下は同じ意味です:backend1 and backend2 or backend3 and backend4 (backend1 and backend2) or (backend3 and backend4)
以下のように書くと上記と認証の挙動が変わります:
backend1 and (backend2 or backend3) and backend4
この場合、
backend1
で認証が成功し、backend2
またはbackend3
で認証が成功し、backend4
で認証が成功した場合にログインが成功します。 認証実行順序は先ほどのバックエンド2つの例の規則に自然に従います。backends
に列挙していないバックエンドを含めることはできません。指定しなかった場合、
backends
の中のコマンドバックエンド以外を全て順に or でつなげた条件式がデフォルト値として使用されます。Added in version 3.16.4: 以前のバージョンでは上記デフォルト値の挙動になっていました。
- displayName¶
ターゲットの表示名です。 [__main__] セクションの targets で : を指定しなくても、このパラメーターによってターゲットの表示名を指定できます。
- password_policy_max¶
パスワードポリシーのうち、パスワードの最大長を定義します。 この値を
100
に設定すると、一般ユーザーのパスワード変更画面でパスワードの最大長の情報が表示されなくなります。 デフォルト値は16
です。バージョン 3.11.5 で変更:
100
に設定した場合の挙動が上記に変更されました。
- password_policy_min¶
パスワードポリシーのうち、パスワードの最小長を定義します。 デフォルト値は 8 です。
- password_policy_alphabet¶
一般ユーザーがパスワードを変更する際にパスワードに含めなければならない英語アルファベットの数(大文字小文字の区別はなし)を設定します。 デフォルト値は 0 です。
- password_policy_upper¶
パスワードポリシーのうち、パスワードに含めなければならない英大文字の数を定義します。 デフォルト値は 1 です。
- password_policy_lower¶
パスワードポリシーのうち、パスワードに含めなければならない英小文字の数を定義します。 デフォルト値は 1 です。
- password_policy_symbol¶
パスワードポリシーのうち、パスワードに含めなければならない印字 ASCII 記号の数を 定義します。デフォルト値は 0 です。
- password_policy_digit¶
パスワードポリシーのうち、パスワードに含めなければならない数字の数を定義します。 デフォルト値は 1 です。
- password_policy_complexity¶
パスワードポリシーのうち、パスワードの複雑性を定義します。 具体的には、英大文字、英小文字、記号、数字という 4 つのカテゴリのうち、 いくつのカテゴリをパスワードに含める必要があるかを定義します。 デフォルト値は 3 です。このパラメーターに 4 より大きい数字を指定した場合、 password_policy_complexity は 4 とみなされます。
- password_policy_prohibited¶
パスワードポリシーのうち、パスワードに含めてはならない文字 (禁止文字) を定義します。 デフォルト値は空文字 (禁止文字はなし) です。
- password_policy_must_not_contain_name¶
パスワードポリシーのうち、パスワードにユーザーの名前を含めてよいかどうかを定義します。 デフォルト値は true (名前を含めてはならない) です。
- password_policy_must_be_different_from_old¶
パスワードポリシーのうち、パスワードが 1 つ前のパスワードと異なる必要が あるかを定義します。デフォルト値は true (異なる必要がある) です。
- password_policy_must_be_various¶
パスワードポリシーのうち、パスワードが多様な種類の文字で構成される必要があるか を定義します。デフォルト値は true (多様である必要がある) です。 このパラメーターは、 password_policy_complexity と組み合わせてより複雑な パスワードを強制したい場合に利用します。 たとえば、 password_policy_complexity が 4 の場合、 aA1-aA1- という パスワードは許可されますが、実際のところ、使われている文字は、 a 、 A 、 1 、 - の 4 種類の文字だけです。 このようなパスワードを許可したくない場合に password_policy_must_be_various を利用します。
- password_policy_must_be_disorder¶
パスワードポリシーのうち、パスワードが不規則である必要があるかどうかを定義します。 デフォルト値は true (不規則である必要がある) です。 たとえば、 abcde や 12345 などの規則的な並びの文字列を禁止します。
- password_policy_message_path¶
一般ユーザーなどのパスワード変更画面で、ユーザーオリジナルのポリシーメッセージが 格納されたファイルパスを定義します。デフォルト値はありません。 このパラメーターの指定がない場合、 システムが自動生成するポリシーメッセージが出力されます。 このパラメーターに指定したファイルの拡張子が .html の場合、 ユーザーオリジナルのポリシーメッセージを HTML ファイルとみなします。
- password_policy_random_prohibited¶
このパラメータには UnicornIDM によって自動生成されるパスワードに含めたくない文字を列挙します。 デフォルト値は記号類と誤読しやすい英数字です。(
!"#$%%&'()*+,-./:;<=>?@[\]^_`{|}~0DOQ1lI2Z5S6G8B9q
)デフォルト値にパスワード生成に利用される記号が全て含まれているため、 記号を含めたい場合はデフォルト値から設定を変更してください。
- password_policy_random_length¶
パスワード自動生成時に使用されるパスワード文字数です。 デフォルト値は 8 です。
- password_print_message_path¶
管理者によるパスワード変更後などで、更新したパスワードを印刷する時フッターに出力する、 ユーザーオリジナルのメッセージが格納されたファイルパスを定義します。デフォルト値はありません。 このパラメーターの指定がない場合、フッターには何も出力されません。 このパラメーターに指定したファイルの拡張子が .html の場合、 ユーザーオリジナルのメッセージを HTML ファイルとみなします。
Added in version 3.16.10.
- lockout_policy_duration¶
ユーザーのロックアウト期間 (単位: 秒) を定義します。デフォルト値は 3600 です。 ロックアウトを無効化したいときは 0 に設定してください。
- lockout_policy_max_failure¶
ユーザーが連続で何回ログインに失敗したあとにロックアウトするかを定義します。 デフォルト値は 3 です。
- lockout_policy_failure_count_interval¶
認証失敗時刻の情報が存続する期間 (単位: 秒) を定義します。 デフォルト値は 1800 です。この値を 0 にした場合、 認証失敗時刻情報が削除されないため、 lockout_policy_max_failure で 定義した回数だけ連続で認証が失敗すれば、たとえどんなに期間を空けても 必ずロックアウトされます。
- self_password_reset¶
self_password_reset を利用するかどうかを定義します。この機能を 有効にすることで、ユーザーが自分自身でパスワードリセットを行うことが できるようになります。
UIDM のパスワードリセット機能は リセットメールを送るアドレスをユーザーに入力させ、 そのアドレスがそのユーザーの mail 属性の複数の値の どれかに一致していた場合に入力されたアドレスのみに リセットメールを送るという仕様になっています。
デフォルト値は no (self_password_reset は利用しない) です。
Added in version 3.4.0.
- self_password_reset_mail_attribute¶
Unicorn ID Manager は self_password_reset 有効時、 パスワードリセット用 URL をユーザーに伝達します。このときの伝達には メールが使われます。この設定は、 メール を示す フロントエンド属性 が何かを指定するために使われます。デフォルト値は mail です。
Added in version 3.4.0.
- self_password_reset_url_duration¶
self_password_reset 有効時、 パスワードリセット用 URL の有効期間 (単位: 秒) を定義します。デフォルト値は 3600 です。
Added in version 3.4.0.
- self_password_reset_smtp_host¶
self_password_reset 有効時、メール配送に利用する SMTP サーバーのホスト名を 指定します。デフォルト値は "" (localhost に配送) です。
Added in version 3.4.0.
- self_password_reset_smtp_port¶
self_password_reset 有効時、メール配送に利用する SMTP サーバーのポート番号を 指定します。デフォルト値は 0 (self_password_reset_smtp_tls が有効な場合 465 、 無効な場合 25 に配送) です。
Added in version 3.4.0.
- self_password_reset_smtp_tls¶
self_password_reset 有効時、メール配送に利用する SMTP サーバーへの接続に、 TLS を利用するかどうかのフラグを指定します。 デフォルト値は no (TLS は利用しない) です。
Added in version 3.4.0.
- self_password_reset_smtp_login_name¶
self_password_reset 有効時、メール配送に利用する SMTP サーバーへの接続時に、 認証を行うためのユーザー名を指定します。 デフォルト値は "" です。 "" の場合、 SMTP 接続時の認証は行われません。
Added in version 3.4.0.
- self_password_reset_smtp_login_password_file¶
self_password_reset_smtp_login_name のパスワードを格納したファイルパスを 指定します。デフォルト値は "" です。
Added in version 3.4.0.
- self_password_reset_from¶
self_password_reset 有効時、メール配送の際の From: を指定します。 デフォルト値は "" (Unicorn ID Manager のインストールされたホスト名) です。
Added in version 3.4.0.
- self_password_reset_bcc¶
self_password_reset 有効時、メール配送の際の Bcc: を指定します。 デフォルト値は "" (Bcc: に値はセットされない) です。
Added in version 3.4.0.
- self_password_reset_subject¶
self_password_reset 有効時、メール配送の際の件名を指定します。 デフォルト値は "" (システムで自動生成) です。
Added in version 3.4.0.
- self_password_reset_body_file¶
self_password_reset 有効時、メール配送の際のボディの内容を含むファイルパスを指定します。 デフォルト値は "" (システムで自動生成) です。
ボディに %(url)s というプレースホルダーを含めると、そのプレースホルダーに パスワードリセット用の URL が挿入されます。 %(url)s が含まれない場合、ボディの 末尾にパスワードリセット用の URL が追記されます。
ボディに %(name)s というプレースホルダーを含めると、そのプレースホルダーに ユーザー名が挿入されます。 %(name)s が含まれない場合、 ボディにユーザー名は含まれません。
例:
%(name)s様 ご利用のアカウントに対してパスワードリセットの要求が行われました。 以下の URL にアクセスしてパスワードリセットを行ってください。 %(url)s なお、この URL は一定時間経過後、無効になります。
Added in version 3.4.0.
- self_password_reset_message_path¶
一般ユーザーのパスワードリセット画面で、ユーザーオリジナルのメッセージが 格納されたファイルパスを定義します。デフォルト値はありません。 このパラメーターの指定がない場合、追加のメッセージは出力されません。 このパラメーターに指定したファイルの拡張子が .html の場合、 ユーザーオリジナルのメッセージを HTML ファイルとみなします。
Added in version 3.16.24.
- attribute-display-names¶
そのターゲットで使用する属性表示名セクションのIDを指定します。 詳しくは 属性表示名・属性の説明セクション を参照ください。
Added in version 3.16.0.
- attribute-descriptions¶
そのターゲットで使用する属性説明セクションのIDを指定します。 詳しくは 属性表示名・属性の説明セクション を参照ください。
Added in version 3.16.0.
- self_modify¶
self_modify を利用するかどうかを定義します。この機能を 有効にすることで、ユーザーが自身の属性を変更することが できるようになります。 デフォルト値は no (self_modify は利用しない) です。
Added in version 3.7.0.
- self_modify_attributes¶
self_modify を利用する際、どのフロントエンド属性を変更可能かを指定します。 デフォルト値は familyName, givenName, mail です。
Added in version 3.7.0.
- self_modify_duration¶
self_modify を利用する際のユーザーのセッションタイムアウトを指定します。 デフォルト値は 3600 (秒) です。
Added in version 3.7.0.
- self_modify_message_path¶
一般ユーザーが自身の属性を変更する画面で、ユーザーオリジナルのメッセージが 格納されたファイルパスを定義します。デフォルト値はありません。 このパラメーターの指定がない場合、追加のメッセージは出力されません。 このパラメーターに指定したファイルの拡張子が .html の場合、 ユーザーオリジナルのメッセージを HTML ファイルとみなします。
Added in version 3.17.9.
- readonly_by_self_attributes¶
このパラメーターに列挙されたフロントエンド属性は、一般ユーザーの自己属性変更画面で値が表示されますが、更新はできなくなります。
self_modify_attributes
と同じ属性を含めた場合、こちらのパラメーターの挙動が優先されます。デフォルト値は属性なしです。
Added in version 3.16.1.
- header_auth¶
HTTPヘッダーによる認証(ヘッダー認証)を有効にするかどうかを定義します。 この機能が有効の場合、
header_auth_user_header
で設定されたHTTPヘッダーに ユーザー名が入っていれば、他の認証情報なしでそのユーザーをログイン済みとして 扱います。 ただしその HTTPリクエストがheader_auth_trust_ips
で指定した IP アドレスから の場合に限ります。デフォルト値は no (ヘッダー認証は利用しない) です。
Added in version 3.7.1.
バージョン 3.11.5 で変更: この属性を
yes
に設定した場合、一般ユーザーは他の認証方式ではログインできなくなるようになりました。
- header_auth_trust_ips¶
header_auth
を利用する際の信頼できるソース IP アドレスを カンマ区切りで指定します。 ソース IP アドレスは CIDR 表記やサブネットマスクによる表記で 指定することもできます。その場合、表記のネットワークアドレス範囲内に ソース IP アドレスが含まれれば、そのアクセスは信頼できるアクセスと みなされます。デフォルト値は127.0.0.1
です。Added in version 3.7.1.
- header_auth_user_header¶
header_auth
を利用する際のユーザー名を示すヘッダー名を指定します。header_auth
機能では、この属性で示したヘッダー名を参照します。 デフォルト値はRemote-User
です。Added in version 3.7.1.
- header_auth_require_old_password¶
header_auth を利用する際パスワード変更画面で、古いパスワードの 入力を要求するかどうかを指定します。 デフォルト値は
yes
(古いパスワードの入力が必要) です。Added in version 3.7.2.
- extension_ldap_ppolicy_unlock¶
ldap_ppolicy_unlock 拡張を利用するかどうかを定義します。この拡張は ldap バックエンドが OpenLDAP でかつ、 ppolicy overlay を利用してアカウントロックを 実装している場合に、ロック状態のアカウントをブラウザーからアンロックできるようにする 機能です。デフォルト値は no (ldap_ppolicy_unlock 拡張は利用しない) です。
5.3.5. バックエンドセクション¶
バックエンドセクションは [backend:<name>] という名前のセクションで定義されます。 <name> はターゲットセクションの backends で列挙したうちのバックエンド名になります。
注意
バックエンド名を and
や or
の部分文字列に設定しないでください。
例えばバックエンド名を a
や or
にすると正しく動かない場合があります。
たとえば、以下のようになります。
[__main__]
targets = Sales, Finance, Tech
[target:Sales]
backends = b1, b2
[target:Finance]
backends = b2
[target:Tech]
backends = b3
[backend:b1]
...
[backend:b2]
...
[backend:b3]
...
バックエンドセクションはバックエンドのタイプによって定義可能なパラメーターが異なります。 詳細は以下の各章をご覧ください。
5.3.6. 属性表示名・属性の説明セクション¶
これらのセクションでは、ユーザー・グループ追加・更新画面に表示される、各属性の表示名と説明を設定することができます。 日本語と英語で2通りの表記を指定することができます。
表示名も説明も設定の仕方はほぼ同じです。
セクション名を以下のようにします。
表示名の場合:
[attribute-display-names:<ID>:リソースタイプ:言語]
説明の場合:
[attribute-descriptions:<ID>:リソースタイプ:言語]
<ID>
の部分は好きな値を指定してください。リソースタイプ の部分には
User
かGroup
を指定してください。言語 の部分には
ja
かen
を指定してください。
セクションの中に1行ずつ
<属性名> = 表示名または説明
と書いてください(以下の例参照)。ターゲットセクションの
attribute-display-names
およびattribute-descriptions
に<ID>
(以下の例だと、names1
およびdescriptions1
)を指定してください。指定した表示名・説明がそのターゲットで使われます。
以下は設定の例です。
[target:Target1]
...
attribute-display-names = names1
attribute-descriptions = descriptions1
...
[attribute-display-names:names1:User:ja]
userName = ユーザーID
givenName = 名
familyName = 姓
password = パスワード
mail = メールアドレス
description = 説明
displayName = 表示名
[attribute-display-names:names1:User:en]
userName = User ID
givenName = Given Name
familyName = Family Name
password = password
mail = Email Addresses
description = Description
displayName = Display Name
[attribute-descriptions:descriptions1:User:ja]
userName = ユーザーIDです。
givenName = 下の名前を入力してください。
familyName = 苗字を入力してください。
password = パスワードを入力してください。長くすることが推奨されます。
mail = メールアドレスを入力してください。複数入力できます。
description = このユーザーに関する説明です。
displayName = このシステム以外ではこの値でユーザーが表示されます。
[attribute-descriptions:descriptions1:User:en]
userName = Your user ID.
givenName = Ypur given name。
familyName = Your family name。
password = Your password. Longer is better.
mail = Your email addresses.
description = Description about you.
displayName = You are displayed as this value on other systems.
[attribute-display-names:names1:Group:ja]
groupName = グループID
description = 説明
リソースタイプや言語が異なるセクションに同じIDを割り当てることで、複数のセクションをターゲットに紐付けることができます(上記の例だと、 names1
は異なるリソースタイプ、言語で3回定義されている)。
5.3.7. クライアントセクション¶
クライアントセクションは unicornidm-tool(8) で利用されます。詳細は unicornidm-tool(8) をご覧ください。