外部認証の設定の解説です。
外部認証は PukiWiki 1.5.1 以降で利用可能です。
$auth_type = AUTH_TYPE_EXTERNAL; $auth_external_login_url_base = './login/extlogin.php'
$ldap_user_account = 1; $ldap_server = 'ldap://ldapserver:389'; $ldap_base_dn = 'ou=Users,dc=ldap,dc=example,dc=com'; $ldap_bind_dn = 'uid=user_for_bind,dc=example,dc=com'; $ldap_bind_password = 'xxxx';
外部認証で認証したユーザー名から、LDAP経由で情報を取得する際にはLDAPの設定を行います。詳細は ../LDAP を参照してください。 不要な場合、 $ldap_user_account = 0; に設定します。
PukiWikiが取得・利用する属性は以下の通りです
閲覧制限:
$read_auth = 1;
編集制限:
$edit_auth = 1;
検索制限:
$search_auth = 1;
$auth_groups = array( 'group_1' => 'ext_user_a,ext_user_b,ext_user_c', );
認証PHPページはPukiWiki配布パッケージには含まれていません。各動作環境に合わせて作成する必要があります。
環境変数 REMOTE_USER を認証ユーザーとする認証PHP
login/exlogin.php :
<?php ini_set('session.use_strict_mode', 1); ini_set('session.use_cookies', 1); ini_set('session.use_only_cookies', 1); mb_internal_encoding('UTF-8'); mb_http_input('pass'); mb_http_output('pass'); $url_after_login = filter_input(INPUT_GET, 'url_after_login'); $url_after_login_html = htmlspecialchars($url_after_login); $page = filter_input(INPUT_GET, 'page'); session_start(); session_regenerate_id(); $user = filter_input(INPUT_SERVER, 'REMOTE_USER'); $_SESSION['authenticated_user'] = $user; define('URL_PREFIX', 'http://pukiwiki.example.com/'); //★必ず編集すること - 対象PukiWikiサイトのドメイン OpenRedirect防止 if (substr($url_after_login, 0, strlen(URL_PREFIX)) === URL_PREFIX) { header('HTTP/1.0 302 Found'); header('Location: ' . $url_after_login); } ?> <html> <head> <meta charset="utf-8"> <title>External login</title> </head> <body> user: <b><?php echo htmlspecialchars($user) ?></b><br> page: <?php echo htmlspecialchars($page) ?><br> url_after_login: <a href="<?php echo $url_after_login_html ?>"><?php echo $url_after_login_html ?></a><br> </body> </html>