ユーザープロファイル画面(管理者用)

UCIDM では ユーザープロファイル画面があり、主に以下の画面を提供しています。

  • ユーザー管理画面
  • グループ管理画面
  • CSV 一括処理画面
  • 履歴一覧画面
  • 属性権限設定画面
  • 表示・属性値設定画面
  • デザイン設定画面
  • パスワードポリシー設定画面
  • 初期値設定画面
  • ユーザーステータス設定画面

ユーザープロファイル画面へのアクセス

https://<ホスト名>/ui/admin/login にアクセスします。

ユーザープロファイル画面へのアクセス URL は環境によって異なるので、compose.yml の ucidm-ui の設定および nginx の設定を参照の上、アクセスを行ってください。

ログイン画面

ユーザー名/パスワードを入力し、「ログイン」ボタンを押下してログインを行います。パスワードリセットについては、ID 連携管理画面で行います。

ログイン後トップ画面

以下の画面に遷移するボタンが表示されます。

  • ユーザー管理
  • グループ管理
  • 履歴一覧
  • CSV 一括処理
    • CSV 一括取込
    • CSV 処理結果
  • 各種設定
    • 属性権限設定
    • 表示・属性値設定
    • デザイン設定
    • パスワードポリシー設定
    • 初期値設定
    • ユーザーステータス設定

画面左側に以下の各種メニューが表示されます。

  • ユーザー管理
    • ユーザー管理画面に遷移します。
  • グループ管理
    • グループ管理画面に遷移します。
  • CSV 一括処理
    • CSV 一括取込
      • CSV 一括取込画面に遷移します。
    • CSV 処理結果
      • CSV 処理結果画面に遷移します。
  • 履歴一覧
    • 履歴一覧画面に遷移します。
  • 各種設定
    • 属性権限設定
      • 属性権限設定画面に遷移します。
    • 表示・属性値設定
      • 表示・属性値設定画面に遷移します。
    • デザイン設定
      • デザイン設定画面に遷移します。
    • パスワードポリシー設定
      • パスワードポリシー設定画面に遷移します。
    • 初期値設定
      • 初期値設定画面に遷移します。
    • ユーザーステータス設定
      • ユーザーステータス設定画面に遷移します。

画面右上にユーザー名があり、このユーザー名を押下することで、以下の各種メニューが表示されます。

  • ログアウト
    • このリンクをクリックすることで、ログアウトが行われます。

ユーザー管理画面

  • ユーザーの管理が行えます。
  • キーワード検索では、検索ボックスに検索ワードを入れ検索ボタンを押下すると、表示・属性値設定画面で設定されている「検索対象」属性に対して検索ワードを含むユーザーを検索し、画面上に表示します。
  • 詳細検索では、表示・属性値設定画面で設定されている「検索対象」属性の項目が表示されます。オプションを設定している属性に対してはチェックボックスが表示されます。検索ボタンを押下することで絞り込み検索が行えます。
  • 検索結果の表示列は、表示・属性値設定画面で設定されている「表示」属性の項目がデフォルトになります。
  • 「CSV エクスポート」ボタンを押下することで、表示されているユーザーの一覧をCSV ファイルとしてエクスポートできます。表示・属性値設定画面で設定している属性が使用されます。「参照のみ」の属性は対象外となります。
  • ハンバーガーボタンを押すことで表示項目の一覧が表示されます。チェックボックスを操作することで画面上に表示する項目のon/offを切り替えられます。
  • 行内一番左側のアイコンはユーザーのステータスを表します。緑色のユーザーアイコンは有効状態であることを表し、グレーのユーザーアイコンに赤いバツ印のついたアイコンはユーザーが無効状態であることを表します。
  • 対象ユーザーの詳細画面に遷移するボタンと削除ボタンとユーザーのステータス切り替えボタンとパスワード変更ボタンと認証デバイスの設定を行うボタンが表示されます。
  • 登録ボタンを押下すると、ユーザー登録画面に遷移します。
  • 認証デバイス設定を行うボタンは、TOTP と Passkey の登録を行うURLが何も設定されていない場合は表示されません。

ユーザー詳細

  • ユーザーの属性を更新します。
  • 画面上部の削除ボタンからユーザーの削除が行えます。
  • 画面上部の無効化ボタンからユーザーの無効化が行えます。またすでに無効状態のユーザーの場合は有効化ボタンになり、ユーザーの有効化が行えます。無効になったユーザーはユーザープロファイル画面にログインできなくなります。
  • 編集したい属性の値を書き換えて更新ボタンを押すと、ユーザーの属性を更新出来ます。
  • テキストボックス下部のプラスボタンを押すと、テキストボックスが1つ追加されます。また、テキストボックス右側のマイナスボタンを押すと、テキストボックスが1つ削除されます。
  • 更新ボタン上部のプラスボタンを押すと編集属性を追加出来ます。また、属性名左側のゴミ箱ボタンを押すと編集属性を削除出来ます。
  • テキストボックス内が空の場合は更新時には値なしとして無視されます。
  • 画面下部の所属グループのテーブルにて、現在所属しているグループの一覧を確認できます。
  • 所属グループ名を選択すると、選択した所属グループのグループ詳細画面に遷移します。
  • 所属グループのテーブル上部の「所属グループ登録」から、任意のグループへの所属処理が行えます。所属したいグループにチェックを入れて「所属グループ登録」ボタンを押してください。
  • 所属グループのテーブル上部の「所属グループ削除」から、任意のグループへの所属解除処理が行えます。所属解除したいグループにチェックを入れて「所属グループ削除」ボタンを押してください。

ユーザーパスワード変更

  • ユーザーのパスワードを管理者が設定します。
  • このときのパスワードルールとして、パスワードの長さと禁止文字が適用されます。
  • ポリシーを満たすパスワードを入力し、更新ボタンを押すことでパスワードを更新出来ます。
  • AD に存在するユーザーのパスワード変更の場合、LDAPS 接続である必要があります。

ユーザー登録

  • ユーザーの登録が行えます。
  • 値のテキストボックスに設定する値を入力し、画面下部の登録ボタンを押して登録してください。
  • マルチバリューのテキストボックス下部のプラスボタンを押すと、テキストボックスが1つ追加されます。また、テキストボックス右側のマイナスボタンを押すと、テキストボックスが1つ削除されます。
  • 登録ボタン上部のプラスボタンを押すと属性を追加出来ます。
  • テキストボックス内が空の場合、登録時にはその属性は無視されます。また、更新時には値なしとして無視されます。
  • parentDNという属性は特殊な属性になります。ユーザーを登録するOUを指定出来ます。ベースのsuffixが dc=example,dc=com の場合、parentDNに ou=User と指定すると ou=User,dc=example,dc=com にユーザーを登録します。parentDNを入力しない場合はデフォルト通り dc=example,dc=com に登録します。
  • すべての属性で複数値を設定出来ますが、サーバー側で SINGLE-VALUE 制約をかけていた場合、登録に失敗する場合があります。
  • 任意の属性名の属性を設定できますが、サーバー側で未定義の属性は登録に失敗する場合があります。
  • パスワード属性( userPassword )は該当するパスワードポリシーのチェックが行われます。ポリシーを満たさない場合は登録ボタンが無効化されます。
  • 該当するパスワードポリシーは各属性や parentDN を入力するたびに、適切なパスワードポリシーを検索します。

認証デバイス設定画面

  • TOTP と Passkey の設定を行う画面が表示されます。
  • 認証デバイス設定画面では、認証デバイスの削除のみ行えます。
  • TOTP の設定では、デバイス情報が見つかる場合は現在のデバイス情報が表示されます(リカバリーコードは表示されません)。
  • Passkey の設定では、デバイス情報が見つかる場合は現在のデバイス情報の一覧が表示されます。

グループ管理画面

  • グループの管理が行えます。
  • キーワード検索では、検索ボックスに検索ワードを入れ検索ボタンを押下すると、表示・属性値設定画面で設定されている「検索対象」属性に対して検索ワードを含むグループを検索し、画面上に表示します。
  • 詳細検索では、表示・属性値設定画面で設定されている「検索対象」属性の項目が表示されます。オプションを設定している属性に対してはチェックボックスが表示されます。検索ボタンを押下することで絞り込み検索が行えます。
  • 検索結果の表示列は、表示・属性値設定画面で設定されている「表示」属性の項目がデフォルトになります。
  • 「CSV エクスポート」ボタンを押下することで、表示されているグループの一覧をCSV ファイルとしてエクスポートできます。表示・属性値設定画面で設定している属性が使用されます。「参照のみ」の属性は対象外となります。
  • ハンバーガーボタンを押すことで表示項目の一覧が表示されます。チェックボックスを操作することで画面上に表示する項目のon/offを切り替えられます。
  • 対象グループの詳細画面に遷移するボタンと削除ボタンが表示されます。
  • 登録ボタンを押下すると、グループ登録画面に遷移します。

グループ詳細

  • グループの属性を更新します。
  • 画面上部の削除ボタンからグループの削除が行えます。
  • 編集したい属性の値を書き換えて更新ボタンを押すと、グループの属性を更新出来ます。
  • テキストボックス下部のプラスボタンを押すと、テキストボックスが1つ追加されます。また、テキストボックス右側のマイナスボタンを押すと、テキストボックスが1つ削除されます。
  • 更新ボタン上部のプラスボタンを押すと編集属性を追加出来ます。また、属性名左側のゴミ箱ボタンを押すと編集属性を削除出来ます。
  • テキストボックス内が空の場合は更新時には値なしとして無視されます。

グループ登録

  • グループの登録が行えます。
  • 値のテキストボックスに設定する値を入力し、画面下部の登録ボタンを押して登録してください。
  • マルチバリューのテキストボックス下部のプラスボタンを押すと、テキストボックスが1つ追加されます。また、テキストボックス右側のマイナスボタンを押すと、テキストボックスが1つ削除されます。
  • 登録ボタン上部のプラスボタンを押すと属性を追加出来ます。
  • テキストボックス内が空の場合、登録時にはその属性は無視されます。また、更新時には値なしとして無視されます。
  • parentDNという属性は特殊な属性になります。グループを登録するOUを指定出来ます。ベースのsuffixが dc=example,dc=com の場合、parentDNに ou=Group と指定すると ou=Gropu,dc=example,dc=com にグループを登録します。parentDNを入力しない場合はデフォルト通り dc=example,dc=com に登録します。
  • すべての属性で複数値を設定出来ますが、サーバー側で SINGLE-VALUE 制約をかけていた場合、登録に失敗する場合があります。
  • 任意の属性名の属性を設定できますが、サーバー側で未定義の属性は登録に失敗する場合があります。
  • 画面下部の所属メンバーのテーブルにて、現在所属しているメンバーの一覧を確認できます。
  • メンバー名を選択すると、選択したメンバーのユーザー詳細画面に遷移します。
  • 所属メンバーのテーブル上部の「メンバー登録」から、任意のメンバーの登録処理が行えます。登録したいメンバーにチェックを入れて「メンバー登録」ボタンを押してください。
  • 所属メンバーのテーブル上部の「メンバー削除」から、任意のメンバーの削除処理が行えます。削除したいメンバーにチェックを入れて「メンバー削除」ボタンを押してください。

CSV 一括処理画面

  • CSV 一括取込画面で、CSV 一括処理を行えます。
    • CSV ファイル、リソースタイプ、操作種別を選択後、CSV 一括取込ボタンを押下することで、CSV データの内容が送信されます。
    • CSV ファイルを選択後、プレビューボタンを押下することで、CSV の内容(最初の 1000 件が表示されます。)
  • CSV の一括処理が完了した後、CSV 処理結果画面でその結果を確認できます。
    • 失敗のレコードがある場合、失敗のレコード数右のダウンロードアイコンを押下することで、一括処理に失敗したレコードだけが抽出された CSV ファイルをダウンロードできます。
    • テーブル一番右のアイコンを押下することで、CSV ID に対応する一括処理の履歴の詳細を確認できます。

履歴一覧画面

  • ログイン関係の認証履歴と LDAP の操作履歴の確認が行えます。
  • 履歴の検索が行えます。
  • エクスポート機能を使うことで特定の期間の全てのログを1つのファイルにまとめられます。

属性権限設定画面

  • ロールとタイプの権限設定が表示されます。
  • 設定したい項目の鉛筆マークを押下することで、その詳細画面に遷移します。

属性権限設定詳細画面

  • 属性名は、表示設定画面で設定したユーザーとグループの属性が使用されます。使用しない場合は、全ての権限をオフにします。
  • 属性に対して、「参照」、「編集」、「削除」を設定し、「更新」ボタンを押下することで、更新できます。
  • 参照権限が与えられていない属性は、ユーザー属性変更画面に表示されません。
  • 参照権限は、一般ユーザーは更新できず、表示のみになります。
  • 編集権限は、一般ユーザーが変更できるようになります。
  • 削除権限は、一般ユーザーが何も入力しない状態で更新を行うと、その属性が削除されます。
  • 「インポート」ボタンを押下することで、選択された JSON ファイルの情報をそのままセットできます。「更新」ボタンを押下しないと反映されません。
  • 「エクスポート」ボタンを押下することで、設定された情報を JSON ファイルとして保存できます。
  • 「編集」ボタンを押下してオンにすると、自動で「参照」ボタンがオンになります。
  • 「削除」ボタンを押下してオンにすると、自動で「編集」ボタンがオンになります。

表示・属性値設定画面

  • 一般とユーザーとグループとOpenAMの日本語/英語の表示設定が表示されます。
  • 設定したい項目の鉛筆マークを押下することで、その詳細画面に遷移します。

表示・属性値設定詳細画面

  • 属性に対して以下の設定が可能です。
    • 表示名
    • 注意事項
      • 注意事項においては、HTML 形式での記述が可能となります。
    • 表示順(ユーザーとグループのみ)
    • 必須(ユーザーとグループのみ)
    • 多値(ユーザーとグループのみ)
    • 参照のみ(ユーザーとグループのみ)
      • この設定を on にした場合、対応する属性値の参照のみが許可されます。属性値を更新することはできなくなります。
    • オプション値(ユーザーとグループのみ)
    • マッピング設定(ユーザーとグループのみ)
  • 必須権限は、必須属性になります。対象属性が入力されていないと更新できません。
  • 多値権限は、対象属性に対して複数の値を入力できるようになります。
  • 「インポート」ボタンを押下することで、選択された JSON ファイルの情報をそのままセットできます。「更新」ボタンを押下しないと反映されません(ユーザーとグループのみ)。
  • 「エクスポート」ボタンを押下することで、設定された情報を JSON ファイルとして保存できます(ユーザーとグループのみ)。
  • 表示名と注意事項とオプション値について設定したい場合は、「詳細設定」ボタンを押下することで、設定できます。
  • 細かい設定の仕様については以下になります。
    • 一般と OpenAM
      • 表示名と注意事項の日本語/英語については必ず入力する必要があります。
      • 日本語と英語のどちらかのみの設定はできません。
      • 一般の注意事項においては、HTML 形式での記述が可能となります。
        • HTML 形式で記述をする際は、div タグがトップの要素となる(<div> で始まり、</div> で終わる)よう記述をする必要があります。
    • ユーザー/グループ
      • 表示名の日本語/英語については必ず入力する必要があります。
      • 注意事項については何も入力しない状態で設定できます。
      • 日本語と英語のどちらかのみの設定はできません。
  • 属性値についてマッピングを設定できます。
    • スクリプト内で「使用する属性」とスクリプトを入力します。
    • リクエストデータに「使用する属性」が存在するときのみ、スクリプトが実行されます。
    • スクリプトはエントリ登録時にadd関数、エントリ更新時にmodify関数が呼び出されます。
    • 「関数呼び出し確認」ボタンを押下することで、指定した関数の動作を確認することができます。

マッピング設定のスクリプト例

  • ステータス設定のスクリプトとは仕様が異なります。
  • エントリーに対する処理種別に対応する関数名を設定します。
    • 一部の処理種別 (たとえば更新のときであれば modify) のスクリプトのみ定義できます。
    • 処理種別に対応する関数が定義されていない場合はスクリプトを実行しません。
  • 引数から渡されるオブジェクトのキー (属性名) は全て小文字に変換されます。
    • キー (属性名) に対応する値は文字列の配列になります。
  • 引数のロール名 (roleName) は取得できない状況があることを考慮する必要があります。
    • ユーザーエントリー以外のエントリーを扱うときは空文字になります。
    • カスタムロールを使うときにロール属性をリクエストデータから参照できないときは空文字になります。
  • 関数の戻り値は文字列の配列を返します。
    • 戻り値として空の配列を返した場合はその属性を削除します。
    • 戻り値として null または undefined を返した場合は値をセットしません。
function add(req, roleName) {
  // エントリーを登録するときにこの関数が呼ばれる
  // 第1引数の req にはリクエストデータの属性がセットされる
  //   参照例) req.givenname[0], req.uidnumber[0]
  // 第2引数の roleName にはユーザー登録のみ、ロール名がセットされる (それ以外は空文字)
  return ["value1", "value2"];
}

function modify(attr, reqUpd, reqDel, roleName) {
  // エントリーを更新するときにこの関数が呼ばれる
  // 第1引数の attr には変更前エントリーの属性がセットされる
  //   参照例) attr.givenname[0]
  // 第2引数の reqUpd にはリクエストデータの更新属性がセットされる
  //   参照例) reqUpd.uidnumber[0]
  // 第3引数の reqDel にはリクエストデータの削除属性がセットされる
  //   参照例) reqDel.description[0], Object.hasOwn(reqDel, 'displayname')
  // 第4引数の roleName にはユーザー更新のみ、ロール名がセットされる (それ以外は空文字)
  return ["value3"];
}

function passwordModify(attr, roleName) {
  // パスワードを更新するときにこの関数が呼ばれる
  // 第1引数の attr には変更前エントリーの属性がセットされる
  //   参照例) attr.givenname[0]
  // 第2引数の roleName にはユーザー登録のみ、ロール名がセットされる (それ以外は空文字)
  return ["value4"];
}

以下に実際のスクリプト設定例をいくつか記載します。

  • homeDirectory 属性に対してレコード登録時に /home/<uid> をセットしたい場合
    • スクリプトで使用する属性:uid
function add(req, roleName) {
    return [`/home/${req.uid[0]}`];
}
  • mail 属性に対してレコード登録時に <uid>@example.com をセットしたい場合
    • スクリプトで使用する属性:uid
function add(req, roleName) {
   return [`${req.uid[0]}@example.com`];
}
  • displayName 属性に対してレコード登録時に <sn> <givenName> をセットしたい場合
    • スクリプトで使用する属性:sn, givenname
function add(req, roleName) {
  return [`${req.sn[0]} ${req.givenname[0]}`]
}

デザイン設定画面

  • ヘッダーとフッターとパスワードポリシーの日本語/英語の設定が表示されます。
  • 設定したい項目の鉛筆マークを押下することで、その詳細画面に遷移します。

デザイン設定詳細画面

  • ヘッダーとフッターをカスタマイズする画面が表示されます。
  • ヘッダーとフッターどちらを編集するか選択し、コード編集欄に HTML を記述します(背景色は選択しない場合、transparent になります)。
  • 編集後、「確認」ボタンを押下することで、どのような画面になるかを確認できます。
  • 「保存」ボタンを押下することで、編集内容を保存できます。
  • ヘッダーのロゴ画像については、images/header ディレクトリにロゴ画像を置くことで設定できます。ファイル名は logo.xxx(xxx は拡張子)にする必要があります。
  • ファビコンの画像については、images/favicon ディレクトリに画像を置くことで設定できます。ファイル名は favicon.xxx(xxx は拡張子)にする必要があります。
  • その他の画像については、images ディレクトリに配置することで、サンプルファイルのように画像を表示することが可能になります(パスワードポリシーでは対応していません)。
  • パスワードポリシーの内容は、ユーザー登録画面、パスワード変更画面、パスワードリセット画面に表示されます。

パスワードポリシーの埋め込み変数

パスワードポリシーで設定されている値を表示するために埋め込み変数が用意してあります。デザイン設定のプレビュー画面では、デフォルトパスワードポリシーの値が表示されます。

埋め込み変数説明
.PwdMaxLengthパスワードの最大長
.PwdMinLengthパスワードの最小長
.PwdAlphabetCountアルファベットの文字数
.PwdUpperCount大文字の文字数
.PwdLowerCount小文字の文字数
.PwdSymbolCount記号の文字数
.PwdDigitCount数字の文字数
.PwdComplexityCountパスワードの複雑性
.PwdProhibitedStringパスワードの禁止文字
.PwdNotContainNameユーザー名を含めない
.PwdNotSameOldPasswordパスワードが1つ前と異なる

サンプルのカスタムファイル

用意しているカスタムファイルの中身は以下になります。

ヘッダーとフッターのhtml ファイル

<div>
	<h1>UCIDM</h1>
	<img src="/images/osstech-logo-s.png" alt="サンプルロゴ" width="188" height="64" />
</div>

ヘッダーとフッターのcss ファイル

body { background-color: transparent; }

パスワードポリシーのhtml ファイル

<div style="padding: 1rem">
	<table
		style="
			min-width: 100%;
			background-color: rgb(255 255 255);
			border-width: 1px;
			border-color: rgb(209 213 219);
		"
	>
		<thead>
			<tr style="background-color: rgb(229 231 235)">
				<th class="tableContents">ルール</th>
				<th class="tableContents">説明</th>
			</tr>
		</thead>
		<tbody>
			<tr>
				<td class="tableContents">最大文字数</td>
				<td class="tableContents">.PwdMaxLength</td>
			</tr>
			<tr>
				<td class="tableContents">最小文字数</td>
				<td class="tableContents">.PwdMinLength</td>
			</tr>
			<tr>
				<td class="tableContents">パスワードに含めるアルファベットの文字数</td>
				<td class="tableContents">.PwdAlphabetCount</td>
			</tr>
			<tr>
				<td class="tableContents">パスワードに含める大文字の数</td>
				<td class="tableContents">.PwdUpperCount</td>
			</tr>
			<tr>
				<td class="tableContents">パスワードに含める小文字の数</td>
				<td class="tableContents">.PwdLowerCount</td>
			</tr>
			<tr>
				<td class="tableContents">パスワードに含める記号の数</td>
				<td class="tableContents">.PwdSymbolCount</td>
			</tr>
			<tr>
				<td class="tableContents">パスワードに含める数字の数</td>
				<td class="tableContents">.PwdDigitCount</td>
			</tr>
			<tr>
				<td class="tableContents">パスワードの複雑度</td>
				<td class="tableContents">
					英大文字、英小文字、数字、記号という4つのカテゴリから、.PwdComplexityCountつのカテゴリをパスワードに含める必要があります。
				</td>
			</tr>
			<tr>
				<td class="tableContents">禁止文字</td>
				<td class="tableContents">
					これらの文字(例: .PwdProhibitedString)を含めてはいけません。
				</td>
			</tr>
			<tr>
				<td class="tableContents">ユーザー名を含めない</td>
				<td class="tableContents">.PwdNotContainName</td>
			</tr>
			<tr>
				<td class="tableContents">1つ前のパスワードと異なる</td>
				<td class="tableContents">.PwdNotSameOldPassword</td>
			</tr>
		</tbody>
	</table>
	<style>
		.tableContents {
			padding-top: 0.5rem;
			padding-bottom: 0.5rem;
			padding-left: 1rem;
			padding-right: 1rem;
			border-width: 1px;
			border-color: rgb(209 213 219);
		}
	</style>
</div>

パスワードポリシーのcss ファイル

body { background-color: transparent; }

パスワードポリシー設定画面

  • パスワードポリシーが表示されます。
  • 「検索」ボタンを押下することで、設定名と対象ベース DN で検索が行えます。
  • 「登録」ボタンを押下することで、パスワードポリシー登録画面に遷移します。
  • 鉛筆マークを押下することで詳細画面に遷移します。
  • ゴミ箱を押下することで、パスワードポリシーを削除できます。デフォルトポリシーを削除することはできません。
  • 選択されたパスワードポリシーを JSON ファイルとして保存できます。

パスワードポリシー設定登録

  • パスワードポリシーの登録を行います。「登録」ボタンを押下することで、パスワードポリシーを登録します。
  • 「インポート」ボタンを押下することで、選択された JSON ファイルの情報をそのままセットできます。「登録」ボタンを押下しないと登録されません。

パスワードポリシー適用条件

パスワードポリシー登録時・更新時にパスワードポリシーを適用するユーザーの条件を設定できます。 ある程度複雑な条件も設定できますので、いくつかの例を以下に示します。

シンプルな例
{"attributes.gidNumber": "10000"}

attributes.<属性名> と値をキーバリューとしたJSON形式で記述します。 属性名のキーは attributes. を付与する必要があり attributes. で始まらない場合は構文エラーになります。 値は文字列で指定する必要があり 10000 (数字)としたり、 [10000, 20000] (配列)とすると構文エラーになります。

ここで利用する属性は権限設定より参照権限が付与されている必要があります。参照権限がない場合は属性の取得が出来ず、クエリは常に適用されなくなります。

and条件
{"attributes.gidNumber": "10000", "attributes.employeeType": "staff"}

複数の条件を列挙することでand条件を利用できます。 この場合 gidNumberが10000かつ、employeeTypeがstaff のユーザーにのみ適用されるポリシーになります。

or条件
{"or": [{"attributes.gidNumber": "10000"}, {"attributes.gidNumber": "20000"}]}

or というキーワードを指定し、値に条件のリストを指定することで、 リスト内の条件のいずれかを満たす、or条件を利用できます。 この場合 gidNumberが10000または、gidNumberが20000 のユーザーにのみ適用されるポリシーになります。

複雑な条件
{
  "or": [
    {"attributes.gidNumber": "10000"},
    {"attributes.gidNumber": "20000"}
  ],
  "attributes.employeeType": "staff"
}

みやすさのために改行入れています。 実際に入力する際は改行は不要です。 前述したand条件とor条件を組み合わせた複雑な条件になります。 この場合、gidNumberが10000か20000かつ、employeeTypeがstaff のユーザーにのみ適用されるポリシーになります。

利用不可能な条件

現在の仕様上利用できない条件をいくつか提示します。

  • 否定
    • employeeTypeがstudent以外、のような否定条件分は利用出来ません。
  • 不等号
    • gidNumberが1000以上や、uidNumberが3000未満のような条件は設定できません。
  • 正規表現
    • 正規表現を用いたパターンマッチングは利用できません。
条件エディタ

パスワードポリシーの適用条件を作成できるUIです。 属性名と値を設定すると該当するエントリにのみパスワードポリシーが適用されるようになります。 条件の追加には条件エディタ中央下部にあるプラスボタンを押してください。

条件にはAND条件とOR条件を設定出来ます。 AND条件に含まれている条件はすべて満たす必要があり、 OR条件に含まれている条件はいずれかを満たす必要があります。

  • AND条件の中には属性の条件かOR条件を含めることが出来ます
  • OR条件の中にはAND条件を含めることが出来ます
  • AND条件、OR条件、属性条件ともに外枠右上のバツボタンを押すと条件が削除されます

パスワードポリシー設定詳細画面

  • パスワードポリシーを編集します。「更新」ボタンを押下して更新を行います。
  • 対象ベース DN と条件に一致したユーザーにそのパスワードポリシーが適用されます。何も一致するパスワードポリシーが存在しない場合はデフォルトポリシーが適用されます。
  • 「インポート」ボタンを押下することで、選択された JSON ファイルの情報をそのままセットできます。「更新」ボタンを押下しないと反映されません。
  • 「エクスポート」ボタンを押下することで、設定された情報を JSON ファイルとして保存できます。
  • 「削除」ボタンを押下することで、表示されているパスワードポリシーは削除されます。デフォルトポリシーを削除することはできません。

パスワードポリシー

  • パスワードポリシーでは以下のルールを設定できます。
    • 最大文字数
      • パスワードの最大文字数を設定します。
    • 最小文字数
      • パスワードの最小文字数を設定します。
    • アルファベットの文字数
      • パスワードに含めなければならないアルファベットの最小文字数を設定します。
    • 大文字の文字数
      • パスワードに含めなければならない大文字アルファベットの最小文字数を設定します。
    • 小文字の文字数
      • パスワードに含めなければならない小文字アルファベットの最小文字数を設定します。
    • 記号の文字数
      • パスワードに含めなければならない記号の最小文字数を設定します。
    • 数字の文字数
      • パスワードに含めなければならない数字の最小文字数を設定します。
    • 複雑度
      • 英大文字、英小文字、数字、記号という 4 つのカテゴリから、いくつのカテゴリをパスワードに含めるかを設定します。
    • 禁止文字
      • パスワードに含めてはいけない禁止文字を設定します。
    • ユーザー名を含めない
      • ユーザー名をパスワードに含めるかどうかを設定します。オンでパスワードにユーザー名を含めてはならないになります。
    • 1 つ前のパスワードと異なる
      • 1 つ前のパスワードと同じパスワード更新を許可するかどうかを設定します。オンで 1 つ前のパスワードと異なる必要があるになります。

初期値設定画面

  • ユーザーとグループの初期値設定が表示されます。
  • 登録ボタンを押下して必要な情報を入力することで、新しく設定を登録できます。
  • 編集したい設定の鉛筆マークを押下することで、詳細画面に遷移します。
  • 削除したい設定のゴミ箱マークを押下することで、設定が削除されます。

初期値設定詳細画面

  • 設定を編集します。
    • objectClass 設定では、ユーザー/グループ登録時に付与される objectClass を設定します。
    • その他の属性設定では、各属性の初期値を設定します。

ユーザーステータス設定画面

  • ユーザーのステータス変更時に使用される属性名やスクリプトを設定します。
  • 「ステータス機能を有効にする」がオンになっている場合、ステータス変更時に設定内容が使用されます。オフになっている場合は、この画面の設定内容は使用されません。
  • ステータス属性に入力した属性の値は、ユーザーのステータス変更時に更新されます。
  • 「ステータス属性のスクリプトを利用する」がオンになっている場合、スクリプトがステータス変更時に呼び出されるようになります。オフになっている場合は、スクリプトは呼び出されません。
  • 「関数呼び出し確認」ボタンを押下することで、指定した関数の動作を確認することができます。

ユーザーステータス設定のスクリプト例

  • 属性マッピング設定のスクリプトとは仕様が異なります。
  • ユーザーエントリーに対する処理種別に対応する関数名を設定します。
  • 必ず関数の戻り値を返す必要があります。
    • 関数の戻り値として null または undefined を返した場合はエラーになります。

例えば Active Directory の userAccountControl 属性を変換するときは次のようになります。

function view(values) {
  // ユーザーエントリーが有効か無効かを判別するときにこの関数が呼ばれる
  // 第1引数の values にはステータス属性の値が文字列の配列として渡される
  // 関数の戻り値は有効・無効を表す boolean 値を返す
  return (Number(values[0]) & 2) != 2;
}

function modify(values, enabled) {
  // ユーザーエントリーの有効・無効を切り替えるときにこの関数が呼ばれる
  // 第1引数の values にはステータス属性の値が文字列の配列として渡される
  // 第2引数の enabled には有効・無効を表す boolean 値が渡される
  // 関数の戻り値は文字列の配列を返す
  return [enabled ? String(Number(values[0]) & ~2) : String(Number(values[0]) | 2)];
}

カスタムロール有効設定画面

  • 一般ユーザーがログインするときにカスタムロールを使うときの属性名やスクリプトを設定します。
  • 「カスタムロールを有効にする」がオンになっている場合、カスタムロール属性の値をカスタムロールとして使用されます。オフになっている場合は、この画面の設定内容は使用されません。
  • 「カスタムロール属性のスクリプトを利用する」がオンになっている場合、カスタムロールを取得するときにスクリプトが呼び出されるようになります。オフになっている場合は、スクリプトは呼び出されません。
  • 「関数呼び出し確認」ボタンを押下することで、指定した関数の動作を確認することができます。

カスタムロール有効設定のスクリプト例

  • ユーザーステータス設定のスクリプトとは仕様が異なります。
  • カスタムロール名を返す getRoleName() という名前で関数を設定します。
  • 必ず関数の戻り値を返す必要があります。
    • 関数の戻り値として null または undefined を返した場合は一般ログイン時のときはデフォルトロールが使われます。

例えば、カスタムロール属性の値の2番目の要素をカスタムロール名とするときは次のようになります。

function getRoleName(values) {
  // カスタムロールを取得するときにこの関数が呼ばれる
  // 第1引数の values にはカスタムロール属性の値が文字列の配列として渡される
  // 関数の戻り値はカスタムロールの名前を表す string 値を返す
  return values[1];
}