#author("2018-04-03T02:56:23+09:00;2018-04-03T01:01:25+09:00","","")
#author("2018-04-03T06:34:33+09:00","","")
**[[質問箱/5298]] [#zbccb911]
|RIGHT:70|LEFT:410|c
|~カテゴリ|サイト管理・運営|
|~サマリ|アカウント登録のリモート登録|
|~バージョン|1.5.1|
|~投稿者|[[Tomose]]|
|~状態|質問|
|~投稿日|&new{2018-03-27 (火) 09:07:46};|
***質問 [#n6fc17d6]
現状ユーザ認証のメカニズムはありますが、そのためのユーザ登録はpukiwiki.ini.php を管理者が編集する必要があります。
その際、管理者が「新規ユーザのパスワード」を知る必要があり、セキュリティ的に好ましくないです(wikiの編集だけならそれでもいいでしょうが、パスワード作成の癖の流出などリスクがある)。改善方法はないでしょうか。
# とはいえ管理者に許可なくユーザ登録するのも不適切っぽいので、
# 例えば管理者による「許可」をうけるために、管理者に確認メールを入れるなどの手間は必要そうですが。

***回答 [#a6970e41]
- パスワードを平文(ありのまま、書いたままの文)でしか設定できないと誤解されているのですね。12年前の1.4.6からパスワードハッシュを使用できるようになっています。%%(厳密にはSSL上の)%%((PukiWiki本体がSSLで守られていない場合、SSL無しでmd5プラグインを操作したとしても危険度は変わらない))PukiWiki上のmd5プラグインや、Linuxのslappasswdコマンドで、各自に「ソルト(各自が決める、でたらめな文字列)つき」と「パスワード」を元にしたSSHAのパスワードハッシュを計算してもらった上で、パスワードハッシュを受け渡すようにすることで、常識的なレベルでは改善するでしょう。(非常識なレベルでは、これでも不足ではあります)(詳しくは [[dev:BugTrack/709]]) -- [[henoheno]] &new{2018-03-27 (火) 22:07:13};
//-- あれっ、管理者パスワードではなくてユーザーのパスワードでしたね。そちらに同じロジックが利用できるかどうかは記憶にないので、確認が必要です。 -- [[henoheno]] &new{2018-03-27 (火) 22:11:13};
-- ・・・少なくとも $auth_users については $adminpass と同様ですね。 -- [[henoheno]] &new{2018-03-27 (火) 22:13:29};
-- ・・・ slappasswd  では salt は自動的に毎回異なる内容が与えられ、手動で指定できないようですね。 -- [[henoheno]] &new{2018-03-27 (火) 22:28:49};
- 認証設定については [[PukiWiki/Authentication]] に説明があります。henohenoさんの書かれているようにmd5などを使って平文パスワードを隠蔽することもできますし、そもそも認証情報をPukiWikiの外部に持つこともできます。(LDAP利用やAUTH_TYPE_EXTERNAL_REMOTE_USERなど) 更にPukiWiki 1.5.2 だと AUTH_TYPE_SAML で外部のSingleSignOnサーバーと連携することもできるようになります。[[dev:BugTrack/2411]] AUTH_TYPE_EXTERNAL で twitter認証する話を[[質問箱/5262]]に書いていたりします -- [[umorigu]] &new{2018-03-28 (水) 02:46:49};
- 回答ありがとうございます。ちょっとニュアンスが違いまして。Pukiwikiの認証を使う場合にMD5化する方法は理解していますが、ではその「MD5化する」のは誰か、ということです。詳しくない方にはお願いできません(PCを使い慣れている方ばかりというわけではない。ということです)。 -- [[Tomose]] &new{2018-03-28 (水) 05:53:22};
- 外部認証についてもまあ同様で、twitterアカウントを誰もが持っているわけでもないです。SingleSignOnは考えてなかったのでちょっと相談してみますが、これもどうだろうなぁ・・・同窓会的なメンバーで使おうと思っているので、個々人のレベルはいろいろ違うのです。 -- [[Tomose]] &new{2018-03-28 (水) 05:55:55};
- ああ。読み直してちょっと思い当たりました。例えば登録ページ作って、そこで入力させたものをMD5プラグインで加工したものを出力するようなページなりプラグインなり作ればいいのか・・・ちょっと考えてみます。ありがとうございました。 -- [[Tomose]] &new{2018-03-28 (水) 05:59:30};
- もう一つ余談ですが、MD5ってのも今時どうよ、とは思いました。pukiwiki.ini を直接参照されることは普通ないにせよ。sha2プラグインでも作りますかね(笑) -- [[Tomose]] &new{2018-03-28 (水) 06:40:42};
--プラグインだけでは解決しなくて、認証部分にも手を加える必要があります。標準機能にsha2加えてもいいのですが最近は外部連携を重視していて、要望は少なそうだとは思ってます -- [[umorigu]] &new{2018-03-29 (木) 09:28:27};
-- 「MD5ってのも今時どうよ、とは思いました」について、SHA2も利用可能なことがわかりました。[[dev:BugTrack/709]] によるとプリフィクス {x-php-crypt} で PHP crypt が使えます。PHPで crypt('pass', '$6$abc') の結果が "$6$abc$dCZAbKbeBK7T0hukxi7enUZp/94Lft5t19M7i5KuPRB7fbWvBRbIYAWY22u9tH90kN7HD..U6kgPLsfSP1Rl0/" なので、以下のようにするとpukiwiki.ini.phpの中のパスワード指定に SHA256 を利用できます。(プリフィクス $6$ が SHA256, $7$ が SHA512 を表します。詳しくは [[php.net:manual/ja/function.crypt.php]] ) -- [[umorigu]] &new{2018-04-02 (月) 08:15:33};
 $auth_users = array(
  'user_a' => '{x-php-crypt}$6$abc$dCZAbKbeBK7T0hukxi7enUZp/94Lft5t19M7i5KuPRB7fbWvBRbIYAWY22u9tH90kN7HD..U6kgPLsfSP1Rl0/',
 );
-- SHA2情報ありがとうございます。自分で言っておいてなんですが、SHA2だとハッシュ値も長く、いよいよ「利用者に意識させずにこちら側でハッシュ化」するメカニズムが必要そうなので、SSL/TLSやTwitter認証の件もひっくるめていろいろ試してみています。 どこまで「よくある」感じにするかは検討の余地はありますが、例えば「pukiwiki認証+Twitter認証の併用(利用する側が選べる)」なんてのも考えています。これはまあ、単純にやるとユーザ名衝突とか起きそうなので、登録者を限定できる環境ゆえの話ではありますが。 -- [[Tomose]] &new{2018-04-03 (火) 06:34:33};


#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
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.035 sec.

OSDN