Opened 15 years ago
Last modified 15 years ago
#1735 assigned enhancement
OpenIDのクライアント(コンシューマ)になれるようにする
Reported by: | kunitada | Owned by: | yamaji |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | pne-masterslave | Version: | |
Keywords: | Cc: |
Description (last modified by )
■仕様
■方針
■開発内容
■関連情報
コミットは、 http://trac.openpne.jp/browser/OpenPNE/branches/prj/openid に行う
開発版最新TAGをsvn copyしたてください。
http://trac.openpne.jp/wiki/pne-openid-note
にも各種情報あり
http://groups.google.co.jp/group/openpne-dev/browse_thread/thread/fc67e0628d8c87a5 も参考に
Change History (13)
comment:1 Changed 15 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 15 years ago by
comment:3 Changed 15 years ago by
これらの資料を基に試作版を作成する。 認証サーバーをhttp://www.openid.ne.jp/として、認証クライアントをインターネット上に公開されているプログラムを参考にしながら作成する。
comment:5 Changed 15 years ago by
Status: | new → assigned |
---|
comment:6 Changed 15 years ago by
実験1
http://www.openid.ne.jp/[[BR]]
でアカウントを作成する。
http://www.livejournal.com/[[BR]]
でopenid.ne.jpで作成したアカウントでログインしてみる。
http://www.openidenabled.com/php-openid/より PHP 用の OpenID ライブラリを取得する。
PC上のcoLinux環境上に必要となるファイル(Auth Services)を展開する。
ライブラリに付属しているサンプルプログラム(クライアント側)を実行。
次のメッセージが出て失敗
Warning: Unknown(/var/www/openid/index.php): failed to open stream: Permission denied in Unknown on line 0
Warning: (null)() [function.include]: Failed opening '/var/www/openid/index.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0
取り合えず、パーミッションを最大限に緩めてみる
find openid -name "*" -exec /bin/chmod 777 {} \;
リトライすると簡単なログイン画面が表示される。
ここにあらかじめwww.openid.ne.jpで登録したIDプラスドメイン名を入力してみる。
またもやエラーである。
Fatal error: No XML parser was found in
/var/www/openid/Services/Yadis/XML.php on line 357
XML関連のphp用モジュールをapt-getする。
apt-get install php-xml-parser
apt-get install php-xml-serializer
apt-get install php-xml-util
リトライ、まだ同じエラーが出る。
comment:7 Changed 15 years ago by
coLinuxを再起動して成功に至る。
とりあえずopenIDライブラリ付属のコンシューマー(クライアント)は正常に動作することが確認できました。
comment:8 Changed 15 years ago by
●OpenID等の外部認証をOpenPNEで行う場合のシナリオ
OpenIDの認証結果からメールアドレスが得られるため、現状のOpenPNEの認証に組み込むことが可能である。
組み込みのためログイン画面の改造が必要となります。
OpenID入力用テキストフィールドを一つ追加して、このIDに対応するパスワード入力欄は作らないとします。
OpenIDのIDを入力して外部サーバーで認証を行います。
認証の可否とユーザーのメールアドレスが折り返し得られます。
もし、このメールアドレスがOpenPNEのユーザーとして登録してあれば認証成功とします。
現状のOpenIDコンシューマー(クライアント)にOpenIDのID振り出し機能がないのでOpenIDサーバーへリンクして、IDの振り出しは全面的にOpenIDサーバーに任せるとします。ユーザー向けにOpenID取得の利点等の宣伝も必要である。(OpenIDを流行らせるため)
OpenIDサーバーはコンシューマーからのリクエストに応じて2種類の動作をします。第一にIDがブラウザから使用される最初のものならば、WEBページにてパスワードをユーザーへ要求する。第二にIDが一度パスワードによる認証を経たものであれば、即、コンシューマーへ認証がすでに済んでいる旨を伝達し、メールアドレス等付随するデータも受け取れる。
comment:9 Changed 15 years ago by
SlavePNE機能でいけたらいきたい。検討ください。
comment:10 Changed 15 years ago by
Description: | modified (diff) |
---|
comment:11 Changed 15 years ago by
Summary: | OpenIDのクライアントになれるようにする → OpenIDのクライアント(コンシューマ)になれるようにする |
---|
comment:12 Changed 15 years ago by
Description: | modified (diff) |
---|
comment:13 Changed 15 years ago by
Component: | pne-admin → pne-masterslave |
---|---|
Priority: | minor → critical |
本家 認証サーバー http://www.openid.ne.jp/
OpenIDのPHPによる実装例 http://www.machu.jp/diary/20070609.html#p01
OpenIDのPHP用ライブラリ http://www.openidenabled.com/php-openid/
OpenID実用例 http://www.livejournal.com/
解説 http://www.pp.iij4u.or.jp/~kwi/openid/dsa-specs_ja.html
http://www.openidenabled.com/ からPHP-OpenID Libraryを使って自サバにサンプルコードを使ったOpenIDサーバを作るところまで完了。なぜかConsumerサイトでは使えず、http://www.openidenabled.comでのチェックがOK
ソースプログラムが見つからない http://trac.openpne.jp/wiki/pne-openid-note https://trac.pne.jp/search?q=OpenID&wiki=on&changeset=on&ticket=on
IDは,「ユーザー名+発行/認証サイトのドメイン名」という形になる。例えば,Openid.ne.jpに「nnw」というユーザー名で登録すると,「nnw.openid.ne.jp」がIDとして割り当てられる。