1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LDAP Managerを使ってみた! 4. 利用者プロファイルメンテナンス編

Last updated at Posted at 2025-02-27

前回の続きです。

利用者プロファイルメンテナンスとは

ユーザ自身がパスワードやメールアドレスなどを更新できるWebアプリケーションおよびWebアプリケーションからの更新情報をLDAPサーバに反映するプラグインです。
LDAPフィルタでのアクセス制御や属性のマッピングが可能です。

事前準備

属性の追加

利用者プロファイルメンテナンスでは、「パスワード有効期限属性」が必須となります。
また、「追加グループ」の設定により、追加した入力項目の数だけ属性が必要になるため、それを整備します。
以下のような.ldifファイルを作成し、パスワード有効期限属性passwordExpirationTimeと追加グループ用の属性をオブジェクトクラスexgPersonに追加します。

dn: cn={1}esdssystem,cn=schema,cn=config
changetype: modify
add: olcAttributeTypes
olcAttributeTypes: {5}( 2.16.840.1.113730.3.1.91 NAME 'passwordExpirationTime' EQUALITY generalizedTimeMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
-
add: olcAttributeTypes
olcAttributeTypes: {6}( 1.3.6.1.4.1.*****.1.5002 NAME 'exgMailAddress1' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {7}( 1.3.6.1.4.1.*****.1.5003 NAME 'exgMailAddress2' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {8}( 1.3.6.1.4.1.*****.1.5004 NAME 'exgMailAddress3' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {9}( 1.3.6.1.4.1.*****.1.5005 NAME 'exgMailAddress4' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {10}( 1.3.6.1.4.1.*****.1.5006 NAME 'exgMailAddress5' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {11}( 1.3.6.1.4.1.*****.1.5007 NAME 'exgMailAddress6' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {12}( 1.3.6.1.4.1.*****.1.5008 NAME 'exgMailAddress7' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {13}( 1.3.6.1.4.1.*****.1.5009 NAME 'exgMailAddress8' SUP mail )
-
add: olcAttributeTypes
olcAttributeTypes: {14}( 1.3.6.1.4.1.*****.1.5010 NAME 'exgMailAddress9' SUP mail )
-
delete: olcObjectClasses
olcObjectClasses: {1}
-
add: olcObjectClasses
olcObjectClasses: {1}( 1.3.6.1.4.2 NAME 'exgPerson' SUP top AUXILIARY MUST ( cn $ objectclass ) MAY ( exgUserPassword $ exgEnabledFlag $ exgOldContainer $ exgPasswdInfo $ passwordExpirationTime $ exgMailAddress1 $ exgMailAddress2 $ exgMailAddress3 $ exgMailAddress4 $ exgMailAddress5 $ exgMailAddress6 $ exgMailAddress7 $ exgMailAddress8 $ exgMailAddress9 ))

設定後、以下のような.ldifファイルを用意するなどして、既存のユーザにパスワード有効期限属性を追加します。

dn: cn=user1,ou=users,dc=itdo,dc=example,dc=com
changetype: modify
add: passwordExpirationTime
passwordExpirationTime: 30241213120000Z

また、LDAP Managerにて、追加した属性を使用できるようにインポートします。
pic (1).png

Webアプリケーションのデプロイ・初期設定

UserProfileMaintenance\webmtnおよびwmconfフォルダを<tomcat_home>\webapps以下にコピーします。
pic (2).png
<tomcat_home>\webapps\wmconf\WEB-INF\classes\wmconf.xmlを編集して保存します。

wmconf.xml
<!--#webmtnインストールフォルダの絶対パス-->
<entry key="EditFile">(<tomcat_home>\webapps\webmtn の絶対パス \ は \\ と記述する)</entry>
<!--# LDAP Manager のホスト名またはIPアドレス-->
<entry key="Hostname">(LDAP Manager ホスト名)</entry>
<!--# LDAP Manager のポート番号-->
<entry key="Port">(LDAP Manager リモートポート)</entry>
</properties>

設定例
pic (3).png
保存したら、Tomcatを再起動します。

プラグイン側の設定

LDAP Manager コンソールから「環境設定」 > 「利用者プロファイルメンテナンス1」を選択します。
ここでは、対象ディレクトリのみの指定でも問題ありません。
Webアプリケーション側にて更新する属性とLDAP属性のマッピングを行うため、ここでの追加のマッピング設定は必須ではありません。
pic (4).png

Webアプリケーションの設定(プロファイルメンテナンス除く)

設定

Tomcatを起動、http://(ホスト名):(ポート番号)/wmconf/login/LoginAction.doにアクセスし、LDAP Managerのリモートユーザでログインします。
pic (5).png
ログイン後、次の画面に遷移します。
多言語設定は「利用しない」とします。
pic (6).png
「システム情報」では「利用者プロファイルメンテナンス」システムの各設定を行います。
システムを「稼働」とし、システムID欄には「LDAP Manager用」のシステムIDを設定します。
パスワード有効期限属性には追加した属性を指定し、期限切れの際にはログインできなくなるようにしました。
Top画面、パスワードメンテを有効とし、一旦プロファイルメンテは無効とします。ログイン後、Top画面が表示されるようにします。
ログイン者情報表示の部分には以下の通り設定し、LDAP属性cnが「ユーザ名: cn」のように埋め込まれるようにしました。

"<font color='#fffff'>ユーザ名: </font><font color='#e4007f'><b>" + cn + "</b></font>"

LDAPアドレス帳を有効にし、以下のURLを記載することでou=users,dc=itdo,dc=example,dc=com以下のユーザを検索できるようにしました。

ldap://192.168.181.41/ou=users,dc=itdo,dc=example,dc=com??sub?(objectclass=exgPerson)

また、外部メニューとして管理者メンテナンスを指定しました。
pic (7).png
変更できたら画面下部「SAVE」を押下して保存します。
このSAVE動作は今後1つの画面ごとに行います。
LDAPサーバ情報、LDAP Manager情報の設定ではそれぞれの接続情報を設定します。
pic (8).png
pic (9).png
LDAPログイン情報では、利用者プロファイルメンテナンスのユーザ側ログイン画面の各タイトルや表示と、ログインに使用するIDの属性を指定します。
ここでは仮に、ページタイトルを「Login - 検証用」とします。
pic (10).png
Top画面情報では、「情報タイトル」と「情報本文」に以下のようなテキストファイルの絶対パスを指定し、テキストファイルの内容が画面上に表示されるようにしました。

\temp\top.txt
<font size="5"><i>
  <font color="#FFC120">
    <center>Information</center>
</i></font>
\temp\topinfo.txt
<font size="3"><sub>
  <font color="#000000">
    <center>ようこそ!</center>
</sub></font>

pic (11).png
LDAPパスワード情報では、パスワードメンテナンス画面のタイトルと設定するパスワードのチェック、入力方法、パスワード以外で表示する項目について設定します。
pic (12).png
cnの文字列を含む場合エラーとするように設定しました。
また、氏名=sn givenNameuidを表示するようにしました。
pic (13).png
プロファイルメンテナンス情報の設定は後ほど行います。
カラーテーマはGreenにしました。
pic (14).png
これらの設定を行ったら、必ずFILE SAVEのボタンを押下してメモリ上の設定を設定ファイルに書き込む必要があります。
pic (15).png

確認

http://(ホスト名):(ポート)/webmtn/webMtnLogin.jspにアクセスします。
ページタイトルが「Login - 検証用」となっていることがわかります。
メンテナンスしたいLDAPユーザでログインします。
pic (16).png
ログインすると、Top画面に遷移します。
設定どおり、Informationというタイトルで"ようこそ!"という本文を持つ情報が掲載され、ログイン者情報として「ユーザ名: user1」と表示されています。
左メニューには「LDAPパスワード - 検証用」「LDAPアドレス帳」「管理者メンテナンス」と設定どおりの項目が見えています。ユーザープロファイルメンテナンスは有効化していないため、まだここにはありません。
pic (17).png
LDAPパスワード - 検証用を選択します。
次の画面に遷移します。設定どおり、氏名=sn givenNameuidが表示されています。
ここでuser1aaaというパスワードを設定してみます。
pic (18).png
こちらも設定どおり、cnの値を含むパスワードなのでエラーとなります。
pic (19).png
その他のパスワードであれば設定可能です。
pic (20).png
pic (21).png
pic (22).png
次に、LDAPアドレス帳を選択すると、標準のアドレス帳が起動します。
設定どおりou=users,dc=itdo,dc=example,dc=com以下のユーザエントリを確認できます。
pic (23).png
外部メニューの管理者メンテナンスを選択すると、設定どおり管理者メンテナンスのログイン画面に遷移します。
pic (24).png

プロファイルメンテナンスの設定

設定

まず、プロファイルメンテナンス有効フラグを「有効」とします。
pic (25).png
次に、プロファイルメンテナンス情報にて、追加実施最大数に9を、LDAP属性名添え字桁数を1に設定します。
これにより、今回用意したexgMailAddress1~9属性の範囲で追加グループの属性を使用できるようになります。
また、ページ情報からプロファイルメンテナンスを「有効」とします。
pic (26).png
タブの内部から設定します。タブを有効化、表示名として任意の名称を設定し、表示項目の番号1を選択して表示項目の設定に移ります。
pic (27).png
ここで、表示あるいは編集の対象とする項目について設定します。
英語姓=snについて設定しました。
pic (28).png
pic (29).png
パスワード=userPasswordなど、必要な項目を追加します。
pic (30).png
追加グループ用の項目も追加します。
サフィックスとなっている数字部分を除いた属性名を項目属性名に指定した項目を作成します。
pic (31).png
次に、項目タイプに「追加ボタン」を選択し、追加項目に先ほど作成した項目を指定した項目を作成します。
pic (32).png
このタブの表示項目はこのようになりました。
pic (33).png
タブに表示グループを追加します。(必須の設定ではありません)
pic (34).png
最後に、表示レイアウトの設定を行います。
タブ内で各項目をどのグループに、どの位置に配置するかここで決定します。
pic (35).png

確認

ここまでの設定内容を確認します。
メンテナンスしたいユーザでログインします。
左側メニューにプロファイルメンテナンスが追加されています。
pic (36).png
選択すると、次の画面に遷移します。
設定の通り、表示グループ「姓名」の左に表示名: 英語姓、接頭辞にsn=、説明欄に「英語姓を入力します」と書かれたsnの値が既に入力されているテキストボックスが存在し、表示グループ「パスワード」が閉じた状態で表示され、検証用の追加ボタンが表示グループ外に存在しています。
それぞれ設定どおりに動作しているため、例えば追加ボタンは9個追加した時点で追加上限を迎えるようになっています。
pic (37).png
属性の追加も正常に行えています。
pic (38).png
pic (39).png
pic (40).png

さらなる設定

タブを追加します。
pic (41).png
pic (42).png
pic (43).png
LDAPフィルタに(cn=user1)を設定します。これで、タブを見ることができるユーザはuser1のみになります。
またグループを追加し、表示グループ区切りを「線」とします。
pic (44).png
pic (45).png
pic (46).png
pic (47).png

さらなる設定の確認

まずはuser1ユーザでログインします。
pic (48).png
すると、「プロファイルメンテナンス」ページに「追加のタブ」が設定されていることわかります。
また、各項目も設定の通りになっていることがわかります。
pic (49).png
追加した項目を更新すると、LDAPエントリも正常に更新できます。
pic (50).png
pic (51).png
次に、user2ユーザでログインします。
すると、「検証用ページ」が左側メニューに追加されていることがわかります。
pic (52).png
pic (53).png
「プロファイルメンテナンス」ページには「追加のタブ」が存在しません。
pic (54).png
このようにして、LDAPフィルタを使ったアクセス制限が可能です。

パスワード有効期限切れの確認

「LDAPパスワード情報」にて拡張パスワード属性を設定します。
pic (55).png
ユーザのパスワード有効期限切れ属性を過去の日時に設定します。
pic (56).png
この状態でログインを試行すると、設定どおり拒否されます。
pic (57).png
「LDAPパスワード有効期限切れフラグ」を「パスワード変更のみ許可」とします。
pic (58).png
これでログインすると、次は「LDAPパスワード - 検証用」のみが表示されるようになります。
pic (59).png
このようにして、パスワード有効期限属性を使用することができます。

まとめ

利用者プロファイルメンテナンスの各機能についてのご紹介でした。今回は検証していませんが、利用者プロファイルメンテナンスにも入力補助を行う機能、マッピング機能があります。
次の記事では、LDAP ManagerのActive Directory連携機能を検証します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?