メタなユーザ認証

  • ページ: BugTrack
  • 投稿者: すずきひろのぶ?
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: 本体新機能
  • 投稿日: 2004-10-05 (火) 15:16:14
  • バージョン: 1.4.4
  • リリース予定バージョン: 1.5.1

コメント/開発談義より移動

  • 今までのread_authやedit_authよりもメタなレベルで登録者のみがアクセスできる機能を加えてみました。登録者は全体の整合性を取るためにハッシュ配列auth_usersを使っています。メンテナーに送ってみようと思うのですが、pukiwikiはどこに送ればいいですか? -- すずきひろのぶ? 2004-10-05 (火) 12:10:23
    • こんにちは :) お問い合わせありがとうございます。新たなBugTrackを作成していただいてそのページに添付されるか、 http://sourceforge.jp/projects/pukiwiki/ のメンテナ一覧を参考にしてください。 -- henoheno 2004-10-05 (火) 12:23:12
      • BugTrack/718の方においておきました。 -- すずきひろのぶ? 2004-10-05 (火) 15:24:19

メッセージ

ラフな部分しか作っていないので、あと細かい部分は好きにしてください。

これ以外にはにユーザ定義の後ろに次の行を加えます。 ちなみに、私の所では大量の$auth_usersのみを記述したpassword.ini.phpと いうファイルを作り、この直後に読み込んでいます。

 pukiwiki.ini.php
 /////////////////////////////////////////////////
 // 登録者認証 (TRUE: 認証が必要  FALSE:不必要)
 // 
 $register_only=TRUE;
lib/auth.php 
5c5
< // $Id: auth.php,v 1.1 2004/10/05 03:00:26 root Exp root $
---
> // $Id: auth.php,v 1.1 2004/08/01 01:54:35 henoheno Exp $
36a37,42
> 
>         global $register_only;
> 	if ( $register_only and !register_auth()) {
> 	     return FALSE;
> 	}
> 
122a129,169
> 
> // 登録者認証
> function register_auth()
> {
>   global $auth_users;
> 
>   if (!isset($_SERVER['PHP_AUTH_USER'])
>       or $auth_users[$_SERVER['PHP_AUTH_USER']] == "" ) {
>         //セットされていない時、尋ねる
> 	header('WWW-Authenticate: Basic realm="'.$_msg_auth.'"');
> 	header('HTTP/1.0 401 Unauthorized');
>         register_auth_failed();
>         exit;
>   }
>   else {
>     // 一応いるようなのでパスワードをチェック
>     if ( $auth_users[$_SERVER['PHP_AUTH_USER']] != $_SERVER['PHP_AUTH_PW']) {
>       //パスワードちがうじゃん
>       register_auth_failed();
>       exit;
>     }
>    // 無事認証
>    return TRUE;
>   }
> }
> // 認証できなかった
> function register_auth_failed() {
> print <<<EOD
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
> <html>
>  <head>
>   <title>HTTP/1.0 401 Unauthorized</title>
>   <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
>  </head>
>  <body>
>   <h1>HTTP/1.0 401 Unauthorized</h1>
>  </body>
> </html>
> EOD;
> }
> 

関連


  • パスワード部分のmd5化もあわせて考えるべきだなぁ :) -- henoheno 2004-10-11 (月) 12:19:12
  • 関連:BugTrack/709 -- Ratbeta? 2004-10-11 (月) 12:28:30
  • フォローありがとうございます :) > Ratbeta? -- henoheno 2004-10-14 (木) 20:56:39
  • 次のpukiwikiのリリースでは認証関連はすべてmd5化した方がいいでしょう。上のコードは現在のバージョンのpukiwikiに対する参照コードなので、その点は理解した上で参照してください。 -- すずきひろのぶ? 2004-10-18 (月) 12:05:00
  • ここでいう「メタなユーザー認証」というのは、対象ユーザーをユーザー単位で指定せず、読み込み権限を制御するものということですね。1.5.1からでは「認証グループ」の機能が使えます。(diffの内容の理解に必要ですが) 起票当時、2004年10月当時の auth.php:36 はcheck_redable() でした。 -- umorigu 2017-10-28 (土) 03:57:01
function check_readable($page,$auth_flag=TRUE,$exit_flag=TRUE)
{
       return read_auth($page,$auth_flag,$exit_flag);
}
  • サイト全体のページを対象にするのであれば pukiwiki.ini.php の $read_auth_pages で '#.#' とできます。また、PukiWiki 1.5.1 では特殊グループ valid-user を指定することで「認証を通ったユーザであれば誰でもOK」という指定ができます。提案の機能を実現出来ていますので Status:完了 とします -- umorigu 2017-10-28 (土) 04:07:21
    // pukiwiki.ini.php
    $read_auth_pages = array(
    	'#.#'	=> 'valid-user', // Reserved 'valid-user' group that contains all authenticated users
    );
  • BugTrack/2372 認証時にユーザーをグループ管理したい -- umorigu 2017-10-29 (日) 09:21:27


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-29 (日) 09:21:27
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.268 sec.

OSDN