OpenLDAP 外部連携モジュール
UCIDM は OpenLDAP に対して ID 連携できます。
OpenLDAP 外部連携モジュールはコンテナとして稼働させます。次のように compose.yml に設定します。
ここで参照する環境変数は .env に設定します。
起動時のオプション設定
entrypoint では次の設定ができます。
-verbose: デバッグログを出力-jsonl: JSON 形式でログを出力
環境変数の設定
OpenLDAP 動作設定
管理画面にて OpenLDAP の動作設定をすることができます。
設定項目と内容は次になります。
- TLS の検証をスキップ
- TLS の検証をスキップするかを指定します
- 有効無効設定情報を使用する
- ユーザープロファイルのステータス設定画面で指定した有効無効設定の情報を利用して、ユーザーのステータスの値を取得する場合は は on にします
- ステータス用属性名
- 有効無効設定情報を使用しない場合にこちらの設定が使われます
- OpenLDAP ではユーザのステータス用の属性がなく、OpenLDAP 外部連携モジュールでは、ユーザエントリのパスワードの値を書き換えることで、有効化/無効化の制御をしています
- マッピング後の属性について、true/false のステータスとして使いたい属性を指定します(有効化の場合は true、無効化の場合は false が割り当てられる必要があります)
- ステータス用属性に指定した属性については、LDAP のユーザ送信データにそのまま含まれるということはありません
- 値が未設定の場合は、連携先 LDAP へのステータス情報の反映は行われません
- ドライランモード
- 接続の取得やエントリの検索は行いますが、実際にエントリの追加/変更/削除は行わないモードとなります
- 主にテスト時の動作確認等に使うことを想定しています
- ユーザー追加/更新を行わない
- OpenLDAP に対してユーザー追加/更新を行わない場合は、この項目をオン(true)にしてください
- ユーザー削除を行わない
- OpenLDAP に対してユーザー削除を行わない場合は、この項目をオン(true)にしてください
- ユーザーパスワード更新を行わない
- OpenLDAP に対してユーザーパスワード更新を行わない場合は、この項目をオン(true)にしてください
- グループ追加/更新を行わない
- OpenLDAP に対してグループ追加/更新を行わない場合は、この項目をオン(true)にしてください
- グループ削除を行わない
- OpenLDAP に対してグループ削除を行わない場合は、この項目をオン(true)にしてください
- グループメンバー追加を行わない
- OpenLDAP に対してグループメンバー追加を行わない場合は、この項目をオン(true)にしてください
- グループメンバー削除を行わない
- OpenLDAP に対してグループメンバー削除を行わない場合は、この項目をオン(true)にしてください
OpenLDAP マッピング設定
OpenLDAP は次のマッピング設定をすることができます。
- DN マッピング
- ObjectClass マッピング
- 属性マッピング
それぞれのマッピング設定について説明します。
DN マッピング
UCIDM で保持するエントリは DN がキーとなり連携されてきます。
この DN の値を、OpenLDAP の DN の値にマッピングする設定をすることができます。
- DN の変換元部分
- 変換前の DN にて、変換したい箇所を指定します
- DN の変換先部分
- 上記変換したい箇所に、変換したい値を指定します
- DN 変換先の RDN 属性名
- 変換後の DN において、最初の要素の属性名を指定します
例えば、uid=test01,dc=srcldap,dc=com を cn=test01,dc=example,dc=com にマッピングしたい場合は、次のように指定します。
- DN の変換元部分
- dc=srcldap,dc=com
- DN の変換先部分
- dc=example,dc=com
- DN 変換先の RDN 属性名
- cn
ObjectClass マッピング
連携元からくる ObjectClass のデータを、連携先の OpenLDAP に連携するための ObjectClass にマッピングする設定をすることができます。
- 連携先に追加で連携する ObjectClass
- 連携先 LDAP に追加で連携する ObjectClass を指定します
- 複数値を指定することができます
- 連携先に連携しない ObjectClass
- 連携元からくる ObjectClass のデータにて、連携先 LDAP に連携しない ObjectClass を指定します
- 複数値を指定することができます
例えば、連携元から、["top", "inetOrgPerson", "organizationalPerson"] のデータが来た際に、連携先に送信する ObjectClass として、["top", "inetOrgPerson", "posixAccount"] を指定したい場合は、次のように設定します。
- 連携先に追加で連携する ObjectClass
- posixAccount
- 連携先に連携しない ObjectClass
- organizationalPerson
属性マッピング
次の 属性マッピング設定 を参考にしてください。
ユーザーステータスの有効化/無効化の制御をしたい場合は、ステータス用の属性のマッピングも指定してください。
前処理・後処理スクリプト設定
UCIDM では、外部連携処理の前後で任意のシェルスクリプトを実行することができます。
次の 外部連携の前処理/後処理で実行するスクリプトの配置 を参考に、スクリプトファイルを配置後、外部連携の前処理/後処理で実行するスクリプトの設定 を参考に、実行したいスクリプトファイルを指定してください。
OpenLDAP 外部連携モジュールの留意事項
ユーザステータスの有効化/無効化は、OpenLDAP の userPassword 属性の値を変更することで制御しており、次のような形で値が入ります。
- ハッシュ化されたパスワードの場合
- 有効の場合
- {CRYPT}xxxxxxxx
- 無効の場合
- {CRYPT}!xxxxxxxx
- 有効の場合
- 平文パスワードの場合
- 有効の場合
- xxxxxxxx
- 無効の場合
- {DISABLED}xxxxxxxx
- 有効の場合