外部システムでユーザー認証した結果をPukiWikiのユーザーとして扱いたい

メッセージ

PukiWiki外部の認証システム(WebサーバーのBasic認証やSingle Sign Onシステム等)を利用することで、各ユーザーのパスワードなどの秘匿情報をPukiWikiの管理外にすることができる。 ただし、この場合、そのユーザー(ID)を使って、PukiWiki管理のページ単位のアクセス制御を行うことができない。

外部で認証に使ったユーザー名をPukiWiki利用時のユーザーとして利用したい。

外部認証連携するためのページ例

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 ://localhost:8070/'); //★必ず編集すること - 対象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>

この exlogin.php 自体は PukiWiki 配布ファイルに含まれない。




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

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.220 sec.

OSDN