LDAP Managerを使ってみた！ 10-3. IDワークフロー応用編

[前回](https://qiita.com/ahra_/items/6740277e930364bfaf36)の続きです。
## グループを使用する
### 設定
「グループを使用する」設定でワークフローを検証します。
IDワークフローの「グループ情報設定」にて、以下のように設定します。
![スクリーンショット 2024-12-24 143835.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/81876ad7-3e52-ae18-2ec5-c08eeaebf175.png)
LDAPグループは以下のようなルート・メンバ、階層番号=`departmentNumber`の振り分けとなっています。
![スクリーンショット 2024-12-24 142523.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/c4690558-e169-c7c0-e449-9e9c6c80fee9.png)
![スクリーンショット 2024-12-24 142530.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/7c5e7413-9ae9-dd73-2058-97c9ace9adb9.png)
![スクリーンショット 2024-12-24 142536.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/4d4e0f4d-6eef-fbf7-7507-a580c03a488b.png)
続いて上長を設定します。
対象グループの階層番号と、グループの上長の名称を指定します。
これで、**申請者が所属しているグループツリーの階層番号1のグループの上長メンバ** を上長に設定できます。
![スクリーンショット 2024-12-24 143333.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/98ee5e82-aa4f-d21e-84c7-a89f04710ab5.png)
ルートテンプレートの設定を行います。
グループを使用する設定では、「承認者登録」にてユーザ、グループ、上長を選択できます。
![スクリーンショット 2024-12-24 142659.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/877a7bf7-316c-5c68-90bc-39de8efadcbb.png)
まずは初めとなるグループの「生産技術課」を選択します。
「グループメンバ」を「複数」の承認者とします。
![スクリーンショット 2024-12-24 143420.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/50bd4eda-5078-d838-f12d-f36ff59203dd.png)
![スクリーンショット 2024-12-24 143443.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/786b095e-adad-477f-5e43-e87c13169d7c.png)
続けて、「技術部」グループのグループ上長を承認者とします。
![スクリーンショット 2024-12-24 143600.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/e97c7b34-c763-63d1-0d4f-b9fc9f0187e0.png)
最後に、階層番号1の上長「部長」を承認者とします。
![スクリーンショット 2024-12-24 143647.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/566c2d33-9233-fbce-e6f7-878f86e4b2e1.png)
![スクリーンショット 2024-12-24 143717.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/559749b5-675a-f028-c2b2-1cc7edabcc95.png)
申請書のルートテンプレートを変更します。
![スクリーンショット 2024-12-24 145041.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/d3dccd5a-b574-86d8-7c46-d2f4e4b3c0fb.png)
### 確認
`生産技術課`グループのユーザ`user8`でログインし、申請書を作成します。
※グループを使用する設定の場合、どのグループにも所属していないユーザはサインインできません。
![スクリーンショット 2024-12-24 145525.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/872ba27f-c910-03c3-47d2-bf9b017dcf33.png)
申請すると、`生産技術課`グループのメンバに承認依頼が届きます。
![スクリーンショット 2024-12-24 145545.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/863826a0-1485-65dd-b3b7-fa43658fbe10.png)
承認します。
![スクリーンショット 2024-12-24 145555.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/931eb37d-ec4a-bba8-32fc-bd0a8eb6a4bb.png)
すると、`技術部`グループの`exexgmember1`属性値に指定されているユーザ=`user1`に承認依頼が届きます。
![スクリーンショット 2024-12-24 145621.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/4bd08a4c-0254-0c9f-ca52-ec6542a3db47.png)
承認します。
![スクリーンショット 2024-12-24 145632.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/4872739d-4716-f95a-c808-a4d7522f3b21.png)
最後に、`user8`ユーザが所属しているグループツリーの階層番号1番のグループ=`技術部`グループの`exexgmember1`属性値に指定されているユーザ=`user1`に承認依頼が届きます。
![スクリーンショット 2024-12-24 145651.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/e50bdaec-6d19-d582-a7d1-bda82d9ffcb7.png)
承認して、予約エントリ反映を行うと、ユーザエントリが追加されます。
![スクリーンショット 2024-12-24 145705.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/a73178ca-1b27-7dad-db5e-2923a06d2306.png)
![スクリーンショット 2024-12-24 145723.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/bbb26c93-695a-84c6-51e3-7d6fd86c6afa.png)
![スクリーンショット 2024-12-24 145745.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/2f95cdbb-81ca-949e-88fe-ae8795365b9d.png)
## 代理承認・権限移譲を使用する
代理承認機能を使用すると、他のユーザが自身に代わって承認などの処理を行います。
### 期間代理承認者の設定
こちらは期間を設定して代理認証者を設定します。
IDワークフロー「代理承認設定」からユーザを設定します。
![スクリーンショット 2024-12-24 153259.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/53f9ad8f-e9c2-0e3c-f664-1d71e6269197.png)
![スクリーンショット 2024-12-24 153559.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/af7a97b7-bdb4-fa62-d9af-4d8592697350.png)
![スクリーンショット 2024-12-24 153613.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/57cfd6b6-e262-0705-7b0d-09e6445c9db8.png)
![スクリーンショット 2024-12-24 153633.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/aedd10b6-76ad-b6cf-0516-c9289780bdfc.png)
![スクリーンショット 2024-12-24 153654.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/dab48af4-62b2-e4aa-954d-60bcc416281c.png)
こうすることで、通常`user1`の承認が必要なステップで、対象期間に限って`user2`が代わって承認など各処理を行えるようになります。
![スクリーンショット 2024-12-24 153909.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/306e020f-5e19-7cf9-9501-eee26cf724b5.png)
### 永時代理承認者
「代理承認者情報格納LDAP属性名」に指定した属性に対象のメンバを設定します。
![スクリーンショット 2024-12-24 154130.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/f7c97676-e8ec-4735-0046-f06ef2dc076d.png)
すると、そのメンバが代わって承認などの各処理を行えるようになります。
![スクリーンショット 2024-12-24 154435.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/3e4ea409-14f8-ff7f-4090-272a79f46d95.png)
![スクリーンショット 2024-12-24 154505.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/24b5a9e1-5738-d3e9-6cb9-5ce4e68da514.png)
いずれの方法でも、ログ上には代理で処理を行った旨が記録されます。
![スクリーンショット 2024-12-24 154628.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/0c6671c7-ab2d-bf40-943e-4792152dcf36.png)
### 権限移譲
権限移譲をすることで、自身の承認処理を他のユーザに転送することができます。
![スクリーンショット 2024-12-24 155400.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/38f7c02b-f3b6-8083-97ba-d21700de3fc7.png)
![スクリーンショット 2024-12-24 155413.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/0eb17fd7-4c40-60fe-f803-23835db3b687.png)
![スクリーンショット 2024-12-24 154901.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/1513c52e-53ef-3e4c-6ec7-b68cd521a40a.png)
![スクリーンショット 2024-12-24 155633.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/9e81590a-4c8e-eba5-6d43-4efa118e8f52.png)
ログ上ではこのようになります。
![スクリーンショット 2024-12-24 155657.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/18097a59-c7ee-9480-d872-4a259f5fb387.png)
## その他の設定
### 可変パラメータ
ユーザ、グループの属性を可変パラメータとして設定することで、各フィルタ等にログインユーザの属性値を埋め込み、閲覧可能な範囲の指定などに使うことができます。
今回は`businessCategory`属性をユーザの可変パラメータに設定しているので、これを使用します。
属性`title`のデフォルト値に`="%u0%"`を指定します。
![スクリーンショット 2024-12-24 164825.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/bc18d4f2-c0c7-4b49-32a2-3af9d67bd55e.png)
以下のような`businessCategory`を持つ`user1`でログインし、申請書の作成を行います。
![スクリーンショット 2024-12-24 164836.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/beac73c4-7208-16bc-a442-0942590cf580.png)
![スクリーンショット 2024-12-24 164955.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/43c92fb1-7bcd-789b-f63a-4502eac08d37.png)
この時、可変パラメータを設定した属性`title`を表示させると、以下のように可変パラメータが計算されて値がセットされます。
![スクリーンショット 2024-12-24 165002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/f87807e4-b4ca-4e40-c00d-6ca1455a2f93.png)
複数値属性を可変パラメータに設定した時、置き換えられる値は最初に読み出された値になります。
### 条件情報の設定
申請書テンプレート上で「条件情報」を選択することで、対象の属性が条件を満たしたときのみ承認を必要とさせるような設定ができます。
下記のようなルートテンプレートを作成します。
![スクリーンショット 2024-12-24 170707.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/56567e43-b683-98e5-25cf-27fa6a3b79d0.png)
作成したルートテンプレートを指定した申請書テンプレートを作成します。
![スクリーンショット 2024-12-24 173256.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/49c2131e-adda-d9af-4cea-33fe41742bb0.png)
![スクリーンショット 2024-12-24 173311.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/36e8cc5b-c1e9-abde-8a78-e8c3e2212b87.png)
![スクリーンショット 2024-12-24 173321.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/1aaae93d-ab1a-440c-55cf-8a5ba9f45cae.png)
パスワード変更時のみ承認者「パスワード変更時」の承認が必要になるように、`パスワード!=%OldValue%`の条件を設定します。
![スクリーンショット 2024-12-24 173450.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/498b5131-2c09-dbde-37f2-983e2f22962e.png)
これで申請書を作成します。
まずはパスワード以外を変更します。
![スクリーンショット 2024-12-24 173535.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/0f781e6c-a633-33d6-e51e-c733c1ef6162.png)
`技術部`グループに承認依頼が届きます。承認を行います。
![スクリーンショット 2024-12-24 173558.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/93ccd841-2f8f-c0b0-0cda-675ef3c6ddb5.png)
![スクリーンショット 2024-12-24 173619.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/37df4662-cd14-93dc-5293-f9ff6c61e8e7.png)
パスワードを変更していないため、これで決裁が通ります。
![スクリーンショット 2024-12-24 173938.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/fbb708d3-626e-40e6-ab28-1274f7c0651c.png)
パスワードを変更します。
![スクリーンショット 2024-12-24 174007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/1aa61dae-bda0-f128-35b3-47a12d2f46a4.png)
承認します。
![スクリーンショット 2024-12-24 174034.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/471659b4-d112-99f6-a36e-8a7774cd7d8a.png)
まだ決裁は通らず、承認者「パスワード変更時」の承認を必要としていることがわかります。
![スクリーンショット 2024-12-24 174057.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3900965/f78ea14b-8c9a-e684-1c6f-6c1a4f0ef100.png)
このようにして、条件を指定して承認ステップを変更することが可能です。
## まとめ
IDワークフロー、そしてLDAP Managerについての検証は以上になります。
今回検証した各ツール・プラグインにはご紹介しきれなかった機能が多くありますし、検証を行わなかったツール・プラグインも沢山存在します。（数えた所未検証のものが **25個** ありました）
それほど多くの機能を持つLDAP Managerについて、一連の記事を通して少しでも知っていただけていれば幸いです。
ここまでご覧いただきありがとうございました。