概要
LDAPで管理しているユーザ情報に対して、WEB画面からパスワードの変更操作を可能とするアプリケーションを作成しております。
パスワード変更時、LDAPで設定している「パスワードポリシー」に準拠したチェックがLDAPにて行われることを期待していたのですが、チェックが効かず、パスワード更新がされてしまいました。
実装方法について色々探したのですが、ポリシーを効かせるための実装が分からず、もしご存知の方がいらっしゃいましたら、以下の①または②の何れかご教授頂きたいです。
①LDAPでパスワードポリシー準拠のチェックを行い、そのチェック結果をJavaでハンドリングする方法
②LDAPで管理しているパスワードポリシーの情報は取得出来るので、それを元にWEBでのチェックは可能
(パスワードの最小桁数など)だが、一部ポリシーチェックの実現方法が不明(詳細は「補足」の2ポチ目に記載致しました)
Java(手打ちのため、ソース誤りはご容赦下さい。更新メソッドのみ抜き出して記載しております)
1@Autowird 2Private LdapTemplate ldapTemplate 3 4public void modify(){ 5 Name dn = LdapNameBuilder.newInstance() 6 .add("ou","aaaa") 7 .add("uid","bbbb") 8 .buil(); 9 10 DirContextOperations context = ldapTemplate.lookupContext(dn); 11 context.setAttributeValue("userPassword","xxx"); 12 13 ldapTemlate.modifyAttributes(context); 14}
開発環境
・STS4
・Java(spring-framework)
実行環境
・LinuxOS
・openLDAP/phpLDAPadmin
補足
・STSで開発してるため、springframework(もしくは通常のJavaAPI)を利用した実装方針で考えております。
・LDAPで登録されているパスワードポリシーのポリシー内容について取得することは出来るため、WEBアプリ側でも
一部ポリシーについてチェックは可能なのですが、以下ポリシーに関しては情報がLDAPにしか登録されていないため、
WEB側でもチェックすることができず手詰まりとなっています。
<WEB側でチェックできないパスワードポリシー>
・世代チェック → 「何世代前に遡ってチェックを行うか?」という世代数は取得することが出来るが、変更前パスワードの履歴情報がLDAPにしかなく取得方法が不明のため、WEB側でチェックができない。
・パスワード有効期限チェック → 該当ユーザのパスワードの更新日がLDAP側にしかなく、取得方法が不明のため、WEBでのチェックが出来ない。
<LDAPで登録しているパスワードポリシー>
最小桁数、世代数、有効期限など
あなたの回答
tips
プレビュー