* LDAPでのアカウント管理 [#rac89cb1]

- ページ: [[BugTrack2]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体新機能
- 投稿日: 2015-07-07 (火) 00:54:46
- バージョン: 1.5.0
- リリース予定バージョン: 1.5.1

** メッセージ [#rcadc217]
PukiWiki独自にアカウントを作るのではなく既存のLDAPアカウントを使って認証を行いたい

ユーザー認証時に、LDAP上のユーザー情報を参照し、そのユーザー名を使ってPukiWiki上のアクセス制御(閲覧・編集制限)を行う。


** 仕様(2016-01-21) [#n0c953c3]

pukiwiki.ini.php にて
 $auth_type = AUTH_TYPE_FORM;

 /////////////////////////////////////////////////
 // LDAP
 $ldap_user_account = 1; // (0: Disabled, 1: Enabled)
 $ldap_url = 'ldap://ldapserver:389/dc=example,dc=com';
 $ldap_bind_dn = 'cn=read-only-admin,dc=example,dc=com';
 $ldap_bind_password = 'password';


** 実装 [#fbfe26eb]

- [[commit:ac4cd5fda0e208c55d9dbcaa91ca64c251c402ef]] 設置値の追加
- [[commit:f18af249f26b46413b233e2a6e2a7e1df1733908]] LDAPによるアカウント管理実装
- [[commit:f50271d7309dbc61fdcc612d889ee0aeef48582c]] SSL対応
- [[commit:54d4acaf14e03c73cc19a27fee0b1c41edeaeb3b]] 検索文字列のエスケープ。ldap_get_entries戻り値のエラーチェック

--------
- 開発サイト内でLDAPあたりのまとめがあるのは、認証パスワード関連を拡張した時の[[BugTrack/709#cc57dfa0]]ぐらい?と関連リンク --  &new{2015-07-07 (火) 18:41:13};
- 現状のパスワードフォーマットがOpenLDAP実装互換になっているんですね。参考にします。外部のLDAPサーバーとも通信して認証したいと思って実装してみています -- [[umorigu]] &new{2015-07-10 (金) 02:49:28};
- 実運用においては通信路(LDAPサーバーとPukiWiki、PukiWikiとユーザー)の暗号化をお忘れなく -- [[henoheno]] &new{2015-07-11 (土) 10:31:18};
- 暗号化→そうですね。LDAPS(ssl)で接続できるようにもしたいです。 -- [[umorigu]] &new{2015-07-14 (火) 05:39:15};
- LDAP認証というのはちょっと言葉として違う気がしたのでタイトルを変えてみました。「LDAPでの認証に対応してほしい」→「LDAPでのアカウント管理」 -- [[umorigu]] &new{2015-07-14 (火) 05:43:15};
- 対応しました [[branch_r1_5>sfjp:projects/pukiwiki/scm/git/pukiwiki/commits?branch=branch_r1_5]] -- [[umorigu]] &new{2016-01-21 (木) 06:06:40};
- 走らせてないけど気になったのはget_ldap_user_info()で、返り値がFALSEの場合もあるとldap_get_entries()のマニュアルにはあるのに $info = $entries[0]; と配列前提の造りになっているようなので、大丈夫なのかな~と --  &new{2016-02-14 (日) 10:06:59};
- あと、設定を誤った場合などのために、ldap_connect()が存在しない(LDAPが無効でビルドされているなど)場合の保険とかは必要なのかな?(常にFALSEを返すだけとか、''PKWK_OPTIMISE''設定に応じて関数の定義を変えるとか) --  &new{2016-02-14 (日) 10:12:32};
- ldap_get_entriesの戻り値をチェックするようにしました。更に、検索文字列のエスケープをしてませんでしたので追加しています。LDAPが読み込まれてない場合はきちんとFatal Errorなるので今のままで問題ないと思っています。PKWK_OPTIMISEは今までよくわかったいなかったのですが、実行時の速度最適化のためのフラグのようですね -- [[umorigu]] &new{2016-02-15 (月) 21:22:46};
- PHPのFatal Error メッセージ(内部パス付き)そのままで構わないなら、保険は忘れてください(レンタル鯖で制限されてるでも無い限り、本番環境ではdisplay_errors 設定を無効にしている方が多いでしょうし) -- [[2016-02-14 (日) 10:12:32の人]] &new{2016-02-17 (水) 20:16:49};
- ログイン情報だけLDAP参照できてもグループを使えないと嬉しさ半減、という気がしてきたのでグループの対応もいれることにします -- [[umorigu]] &new{2016-02-18 (木) 08:44:52};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.065 sec.

SourceForge