ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 10 years ago

Last modified 10 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 kunitada)

■仕様

■方針

■開発内容

■関連情報

コミットは、 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 10 years ago by kunitada

Description: modified (diff)

comment:2 Changed 10 years ago by yamaji

本家 認証サーバー 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として割り当てられる。

comment:4 Changed 10 years ago by tejimaa

アクセプトしてほしいなぁ。

comment:5 Changed 10 years ago by yamaji

Status: newassigned

comment:6 Changed 10 years ago by yamaji

実験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 10 years ago by yamaji

coLinuxを再起動して成功に至る。
とりあえずopenIDライブラリ付属のコンシューマー(クライアント)は正常に動作することが確認できました。

comment:8 Changed 10 years ago by yamaji

●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 10 years ago by kunitada

SlavePNE機能でいけたらいきたい。検討ください。

http://d.hatena.ne.jp/openpne/20061228/1167289819

http://www.openpne.jp/archives/162/

comment:10 Changed 10 years ago by kunitada

Description: modified (diff)

comment:11 Changed 10 years ago by kunitada

Summary: OpenIDのクライアントになれるようにするOpenIDのクライアント(コンシューマ)になれるようにする

comment:12 Changed 10 years ago by kunitada

Description: modified (diff)

comment:13 Changed 10 years ago by kunitada

Component: pne-adminpne-masterslave
Priority: minorcritical
Note: See TracTickets for help on using tickets.