ページの作成や編集にはユーザ登録が必要です。
OpenIDを利用してユーザログインする機能
- 投稿者: ここギコねね
- カテゴリ: 新規
- 優先度: 低
- 状態: 提案
- 日時: 2005年11月13日 21時40分09秒
内容
OpenID分散識別プロトコルを利用してユーザログインする機能を提供します。
実際例:http://yadis.jp/
ファイル
openid002.zip(702)
インストール
- あらかじめNet::OpenID::Consumerをインストールします。
- またNet::OpenID::ConsumerはLWP::UserAgentでも動作しますが、LWPx::ParanoidAgentの利用が推奨されていますので、それもインストールします。
- アーカイブを展開してpluginディレクトリ下に設置。
- 管理画面からopenidプラグインのチェックボックスをon。
ファイル構成
プラグインモジュール
- openid/Install.pm
- インストール用
- openid/Login.pm
- 主要処理
設定
特にありません。と思っていましたが、FreeStyle Wikiの仕様で、HTTPのLocation:ヘッダでリダイレクトしている場合は上手く動かないようです。HTMLメタタグでのリダイレクト設定の場合のみ動きます。
説明
メニューにOpenIDという項目が表示されます。クリックすると、既にOpenIDで認証されていればそのままFreeStyleWikiのユーザログインが完了します。まだ認証されていない場合はOpenIDの識別URI(例:http://www.livejournal.com/users/hoge/等)を入力する画面が表示されます。
OpenID URIを入力すると、URIに対応するOpenIDサーバに飛ばされ、パスワード入力を促されます。OpenIDサーバの認証ポリシーによって、先にログインをしていなければ認証されなかったり、或いはWiki設置場所のドメインを信用するかどうか、等のチェックが行われたりする場合もあります。
OpenIDの識別URIがログインユーザ名になります。
既に通常のログインをしている場合、OpenIDによるログインはできません。
OpenIDでのログインであっても、管理画面上でパスワード変更ページは表示されますが、何の動作も行いません。
留意点
- セッションファイルにはopenidというキーと、OpenIDの識別URIが値として加えられます。
- Wikiインスタンスメソッドとしてis_openid_loginedが加わります。
注意
OpenID自体がまだ流動的な仕様なためか、11/13現在、うまく取り合えるOpenIDサーバは多くありません。今のところよく知られたOpenIDサーバやコンシューマサービスとしては、LiveJournal、TypeKey、Videntity.org等がありますが、これら同士でも現時点でうまく取り合えていません(過去の一時期はうまく協調動作していた)ので、プラグイン側のバグなのかサーバ側の問題なのかうまく確認できていないところがあります。とりあえず現状ではもっとも安定して動作していそうなLiveJournalとの協調が一応うまくいっておりますので、他の環境での動作レポート・バグレポート等をいただくため、暫定ながら公開いたしました。
11/17 追記:Videntity.orgとうまく連携できなかったのは、PHP用OpenIDライブラリが、日本のドメイン構造をxxx.yy.jpの形しか正しいと判断できず、yadis.jpは不正なURIとみなされていたためでした。現在はバグレポートしまして、Videntity.orgと連携できるようになっています。その他には、Level9でも同様の理由で連携できていませんが、こちらもレポート送付済みです。MyOpenIDは上手く連携できています。
TypeKeyのOpenIDは、中の人の設定ミスか何かで上手く動いていない模様。直ったとのアナウンスがありましたが、いまだエラーが帰ってきます。
作者
ここギコねね(http://kokogiko.net/、http://yadis.jp/)
ライセンス
FreeStyleWikiのライセンスに準拠
参考
バージョン
- 2005-11-19 v.0.02
- Typoで異常なOpenID名を入れた場合にエラーが出るのを修正しました。
- 将来のFOAF承認等との絡みのため、識別許可ロジックをなんちゃってフックする機構を設けました。
- ログイン中にOpenIDメニューを開くと、現在ログイン中のIDを表示するようにしました。
- 2005-11-13 v.0.01
最終更新時間:2008年01月27日 01時58分53秒