#author("2017-10-29T09:18:29+09:00","","")
#author("2017-10-29T09:21:27+09:00","","")
*メタなユーザ認証 [#v64df7dc]

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

** [[コメント/開発談義]]より移動 [#vaaf7ac0]

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

-----------------------------

**メッセージ [#n26966de]

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

これ以外にはにユーザ定義の後ろに次の行を加えます。
ちなみに、私の所では大量の$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;
 > }
 > 
 

** 関連 [#v775ab23]

- [[official:質問箱/308]] ユーザ認証による書き込み・参照
- [[official:続・質問箱/36]] リンク情報は公開?
- [[PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限]]


----
-パスワード部分のmd5化もあわせて考えるべきだなぁ :) -- [[henoheno]] &new{2004-10-11 (月) 12:19:12};
-関連:[[BugTrack/709]] -- [[Ratbeta]] &new{2004-10-11 (月) 12:28:30};
-フォローありがとうございます :) > [[Ratbeta]] -- [[henoheno]] &new{2004-10-14 (木) 20:56:39};
-次のpukiwikiのリリースでは認証関連はすべてmd5化した方がいいでしょう。上のコードは現在のバージョンのpukiwikiに対する参照コードなので、その点は理解した上で参照してください。 -- [[すずきひろのぶ]] &new{2004-10-18 (月) 12:05:00};
- ここでいう「メタなユーザー認証」というのは、対象ユーザーをユーザー単位で指定せず、読み込み権限を制御するものということですね。1.5.1からでは「認証グループ」の機能が使えます。(diffの内容の理解に必要ですが) 起票当時、2004年10月当時の auth.php:36 はcheck_redable() でした。 -- [[umorigu]] &new{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]] &new{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]] &new{2017-10-29 (日) 09:21:27};


#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.058 sec.

SourceForge