少し前になりますが、あるActive Directoryと連携して外部DBとして利用する製品で、アカウントのパスワード変更が暗号化通信のLDAPS(636)じゃないとダメというものがあったので、暗号化ナシのLDAP(389)は接続不可という仕様なのかと思ったら設定で変更できるようです。
情報元はこちら。
ActiveDirectoryのユーザのパスワードを更新するための権限について
質問の抜粋です。
ActiveDirectoryのユーザのパスワードを変更するスクリプト(ruby)を作成しました。
LDAPSでアクセスしています。該当ユーザはDomain Usersのみに参加しており、BINDは該当ユーザで実施、
BINDは可能ですが、パスワードの更新ができませんでした。以下のブログを参考にして、該当ユーザにAdministratorsを付与したところ、
パスワードの更新ができました。https://blog.cles.jp/item/10893
このようなケースの場合は、BINDするユーザにAdministratorsを付与しないと
いけないでしょうか?回避策があればご教授いただきたいです。
よろしくお願いいたします。
質問内容自体は、LDAP接続する際の権限に関する質問ですね。
Domain Adminsつけたくないってことでしょうか。
下記が期待したものか、セキュリティ的にどうなのかはわかりませんが
OUのセキュリティタブで、Domain Userの対象アカウントに
種類:許可
アクセス:パスワードのリセット,すべてのプロパティの読み取り
適用先:子ユーザー オブジェクト
で権限を付与すればDomain UsersのメンバーでLdp.exeで接続してパスワードが変更できるのは確認できます。
389で接続してLDAP_OPT_ENCRYPT 1をつけてます。
389で接続してLDAP_OPT_ENCRYPT 1をつけてますとありますので、必ずしもLDAPSである必要はなさそうですが、セキュリティ的には暗号化されているほうが望ましいです。
後、パスワードリセットの最低権限についての回答です。
パスワード リセットのための最低権限は
- パスワードのリセット
- lockoutTime の読み込み
- lockoutTime の書き込み
後、Active Directoryの標準機能である「委任」を使うと簡単に設定できるとありますので、パスワードリセット機能をスクラッチで実装した場合は、参考になりますね。
Anker ウルトラスリム Bluetooth ワイヤレスキーボード iOS/Android/Mac/Windows対応/長時間稼働 ホワイト テレワーク リモート 在宅勤務 |