LDAPでのアカウント管理

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

メッセージ

PukiWiki独自にアカウントを作るのではなく既存のLDAPアカウントを使って認証を行いたい

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

仕様(2016-01-21)

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';

実装


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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-18 (木) 08:44:52
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.236 sec.

OSDN