ユーザー認証機能を利用することで、ページの閲覧制限、編集制限、検索制限をすることができます。
デフォルトではPHP Sessionを利用し、PHP5.1以降で動作させる必要があります。PHP5.0以前の環境で動作させる必要がある場合はBasic認証を利用してください。
ユーザーアカウント(ユーザー名とパスワードの組み合わせ)管理の方法は、3種類あります。
認証情報の入力方法(auth_type)として3種類の方法があります
利用可能な組み合わせは限定されており、以下のようになります。
auth_type | 入力方法 | アカウント管理 | Session利用 |
AUTH_TYPE_FORM | Form認証 | PukiWiki内定義 | 利用する |
AUTH_TYPE_FORM(LDAP) | Form認証 | LDAP | 利用する |
AUTH_TYPE_BASIC | Basic認証 | PukiWiki内定義 | 利用しない |
AUTH_TYPE_EXTERNAL | 外部認証 | 外部システム | 利用する |
AUTH_TYPE_EXTERNAL_REMOTE_USER | 外部認証 | 外部システム | 利用しない |
AUTH_TYPE_EXTERNAL_X_FORWARDED_USER | 外部認証 | 外部システム | 利用しない |
$auth_type = AUTH_TYPE_FORM;
アクセス制御で使用するユーザ名とパスワードを pukiwiki.ini.php 内で設定します。
///////////////////////////////////////////////// // User definition $auth_users = array( // Username => password 'foo' => 'foo_passwd', // Cleartext 'bar' => '{x-php-md5}f53ae779077e987718cc285b14dfbe86', // PHP md5() 'bar_passwd' 'hoge' => '{SMD5}OzJo/boHwM4q5R+g7LCOx2xGMkFKRVEx', // LDAP SMD5 'hoge_passwd' );
パスワードを暗号化せずに書く事も可能ですが、 何らかの理由(アクセス権限設定のミスなど)で設定ファイル(pukiwiki.ini.php)が他者に覗かれるような事態の可能性を考えると、暗号化したパスワードをタイプしておくほうが安心です。
$auth_type = AUTH_TYPE_FORM; $ldap_use_account = 1; $ldap_server = 'ldap://ldapserver:389'; $ldap_base_dn = 'ou=Users,dc=ldap,dc=example,dc=com'; $ldap_bind_dn = 'uid=$login,dc=example,dc=com'; $ldap_bind_password = '';
$auth_type = AUTH_TYPE_BASIC;
PHP経由で基本認証(Basic認証)を使用するため、サーバー環境やPHPの動作環境によってはこの機能を利用できません。
CGI版PHPでPukiWikiを動作させた場合は、利用できません。PukiWiki を mod_php で動作させる必要があります。
IISでPHPを稼動している場合、サーバーおよびPHPの設定が適切でないと機能しません。また、古いPHPでは一部の環境での制約により利用できない場合があります。
制限事項やサーバー側の設定方法などの詳しい情報は、PHP による HTTP 認証(PHP Manual)>http://jp2.php.net/manual/ja/features.http-auth.php を参照してください。
同じサーバー内の別のPHPスクリプトにリダイレクトします。リダイレクト先のPHPで認証を行い、ユーザー名を設定します。
$auth_type = AUTH_TYPE_EXTERNAL; $auth_external_login_url_base = './exlogin.php';
$ldap_user_account = 1;
とLDAPサーバーの設定を行うことで、LDAPサーバーからユーザーのFull nameを取得することができます。
$auth_type = AUTH_TYPE_EXTERNAL_REMOTE_USER;
REMOTE_USER環境変数から、認証済みユーザー名を取得します。Webサーバー側で認証処理を行うなど、PukiWikiサイトすべてが認証管理下にある場合に利用できます。
pukiwiki.ini.php
$auth_type = AUTH_TYPE_EXTERNAL_X_FORWARDED_USER;
HTTPリクエストヘッダ X-Forwarded-User から、認証済みユーザー名を取得します。リバースプロキシ環境で、PukiWikiサイトすべてが認証管理下にある場合に利用できます。
pukiwiki.ini.php にて設定します。
以降で設定する正規表現マッチを、ページ名に対して行うのか、ページの内容に対して行うのかを設定します。
///////////////////////////////////////////////// // Authentication method $auth_method_type = 'pagename'; // By Page name //$auth_method_type = 'contents'; // By Page contents
///////////////////////////////////////////////// // Read auth (0:Disable, 1:Enable) $read_auth = 0; $read_auth_pages = array( // Regex Username '#HogeHoge#' => 'hoge', '#(NETABARE|NetaBare)#' => 'foo,bar,hoge', );
$read_auth フラグで、閲覧認証機能を使用するかどうかを設定します。
$read_auth_pages で閲覧認証を要求するページ(閲覧制限するページ)を決定するための正規表現パターンを設定します。 カンマ区切りで複数ユーザを書いても良い。
///////////////////////////////////////////////// // Edit auth (0:Disable, 1:Enable) $edit_auth = 0; $edit_auth_pages = array( // Regex Username '#BarDiary#' => 'bar', '#HogeHoge#' => 'hoge', '#(NETABARE|NetaBare)#' => 'foo,bar,hoge', );
$edit_auth フラグで、編集認証機能を使用するかどうかを設定します。
$edit_auth_pages で編集認証を要求するページ(編集制限するページ)を決定するための正規表現パターンを設定します。 カンマ区切りで複数ユーザを書いても良い。
///////////////////////////////////////////////// // Search auth // 0: Disabled (Search read-prohibited page contents) // 1: Enabled (Search only permitted pages for the user) $search_auth = 0;
$search_auth フラグで、検索認証機能を使用するかどうかを設定します。 有効にすると、本文の検索対象を閲覧許可がでているページのみとします。
検索認証は、閲覧認証の設定に依存します。 例えば、閲覧認証が無効で検索認証が有効の場合、閲覧認証はすべてのページを許可するので、検索認証が無効の場合と同じ結果になります。(ただし、認証チェックをしようとする分、検索時間が多少増加します)
$edit_auth_pages = array( '##' => 'hoge', );
$edit_auth_pages = array( '#^Apple$#' => 'hoge', );
$edit_auth_pages = array( '#(^Apple$|^Orange$)#' => 'hoge', );または
$edit_auth_pages = array( '#^Apple$#' => 'hoge', '#^Orange$#' => 'hoge', );
$edit_auth_pages = array( '#^Comments/#' => 'hoge', );
$edit_auth_pages = array( '#/template$#' => 'hoge', );
$edit_auth_pages = array( '#^(?!^Comments/)#' => 'hoge', );
$edit_auth_pages = array( '#^(?!^.*/template$)#' => 'hoge', );
最新の10件を表示しています。 コメントページを参照