[openpne-dev:210] 【セッション連携】他のWebアプリとの連携:セッション共有

72 views
Skip to first unread message

tadashi nagao

unread,
Dec 28, 2007, 1:12:04 AM12/28/07
to openp...@ml.pne.jp
長尾です。
セッション連携の話で別スレッドたてました。

セッション連携とは、XOOPS で動いているサイトがあったときに、そのサブディレクトリに、
openPNE をいれて、XOOPS にログインしていれば、PNE にも自動的にログインできる
状態にする仕組みです。

slavePNE の仕組みの一緒といえます。

ID連携だと、PNEにいったときに、またログインをする必要があり、ユーザにとって不便です。

課題はできるだけ、コードの変更を少なくして、設定ファイル的なところに何かを書くだけで
連携できるようになるくらい手軽だといいなと思っています。

現状では、jwebMaster というオブジェクトをつくりそれにまかせるようにしています。
とりあえず、動作確認程度はできるようになっています。
公開は、まだですが、it.isogya.co.jp で行う予定です。

また、Master,Slave の仕組みを考える場合には、できるだけ、Slave のみに
手をいれるのがよいのではないかと思っています。どうでしょうか?

■手嶋 守

unread,
Dec 28, 2007, 2:03:26 AM12/28/07
to openp...@ml.pne.jp
手嶋です。

>セッション連携とは、XOOPS で動いているサイトがあったときに、そのサブディレク


>トリに、
>openPNE をいれて、XOOPS にログインしていれば、PNE にも自動的にログインできる
>状態にする仕組みです。
>
>slavePNE の仕組みの一緒といえます。
>
>ID連携だと、PNEにいったときに、またログインをする必要があり、ユーザにとって不
>便です。
>
>課題はできるだけ、コードの変更を少なくして、設定ファイル的なところに何かを書
>くだけで
>連携できるようになるくらい手軽だといいなと思っています。
>
>現状では、jwebMaster というオブジェクトをつくりそれにまかせるようにしています。
>とりあえず、動作確認程度はできるようになっています。
>公開は、まだですが、it.isogya.co.jp で行う予定です。
>
>また、Master,Slave の仕組みを考える場合には、できるだけ、Slave のみに
>手をいれるのがよいのではないかと思っています。どうでしょうか?

当面Slaveのみを考えるは賛成です。
それで行きましょう。

下記が当初私が想定していた、セッション共有の方法です。

■■1.XOOPSのどのIDとOpenPNEのどのIDがひも付くか?
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
=>OpenPNEのSlavePNE機構を使う。
セッション共有の前に、初めてOpenPNEにログインするとき、XOOPSのID・パス
ワードで一度認証する。
※ここにXOOPSのID・パスワードを入力する
http://sc.pne.jp/200712281556.png
SlavePNE機構にはMaster(XOOPS)のどのIDとOpenPNEのIDが連携するか?と言う
機構が備わっています。

■■2.2回目以降のOpenPNEへのログイン
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2回目以降は
http://sc.pne.jp/200712281556.png
へのID・パスワードの入力を必要としないようにする。
1.ブラウザからOpenPNEに送出されるXOOPS用のクッキーをOpenPNEが受け取る。
2.OpenPNEはサーバ間通信により、XOOPS側からXOOPSのID情報を受け取る

※OpenPNE<=>XOOPS通信イメージ
OpenPNE=>XOOPSのクッキー=>XOOPS
OpenPNE<=クッキーに対応するXOOPSのメンバーID<=XOOPS

と言う考えでいました。


-----------------------------------------------------------
手嶋 守 (tej...@tejimaya.com)
http://sns.openpne.jp/?m=pc&a=page_f_home&target_c_member_id=7

メッセンジャー(Skype) tejimamamoru
株式会社手嶋屋 http://www.tejimaya.com
OpenPNEプロジェクト http://www.openpne.jp
-----------------------------------------------------------

tadashi nagao

unread,
Dec 28, 2007, 2:26:47 AM12/28/07
to openp...@ml.pne.jp
長尾です。

少し考えたのですが、PNE の議論にするなら、
slavePNE が中心になりますね。
対象(XOOPSなど)が特定していれば、その議論もできますけど、
それは、XOOPSの中での議論になるともいえます。

私が今、実装しているのは、

前提:XOOPS のセッションをもっている
1.XOOPSのセッションから uid を取得する。これがusername になる
XOOPSがログイン状態でないとここで、XOOPSのログイン画面にリダイレクトする。
(別画面でももちろんよし)

2.どんなIDでもログインできるAuth を PEARにいれておく
とりあえず、DUMMY にしています。 これで、XOOPSのuid でログインになります。
どんなユーザ名、パスワードでもオッケーなのはなかったようなので、DUMMY をつくり
storage の一種にします。

3.自動ログイン
認証不要のモジュールへのアクセスがあった場合に
自動的にログインするようにします。拡張用のモジュール jweb の中に do / o_login.php を
つくりそれで自動ログインをかけます。

あとは、通常のopenPNE の動きになります。

3.openPNE をログアウトする部分は、XOOPSも一緒にログアウトするようにします。

■手嶋 守

unread,
Jan 1, 2008, 10:53:58 AM1/1/08
to openp...@ml.pne.jp
手嶋です。

あけましておめでとうございます。

2.の部分は少々トリッキーなので、OpenPNEでカバーできるかが少々心配です。

XOOPSにクッキーを渡してIDを聞きに行く特殊なモジュールを一つ作って対応し
ようと言うことですか。これならXOOPSとのクッキーのやりとりは実現出来そう
ですね。


話は少し変わるのですが、OpenPNEでは外部連携のメインには、OpenIDがいいか
なと思っているのですが、長尾さんはどうお考えですか?
http://trac.openpne.jp/wiki/pne-openid

Master側Slave側両方共通の仕様で連携できそうなので、良いかなと思います。
もう少し詳しく調べなければならないのですが、行けそうです。
実装が済んだらご紹介します。

tadashi nagao

unread,
Jan 3, 2008, 5:11:47 AM1/3/08
to openp...@ml.pne.jp
長尾です。

あけましておめでとうございます。

openPNE のコードにかなり手をいれることになりますけど、

2 はなんとかしようとしています。

ログインのときに、プロフィール等を強制書き込みにします。
auth.inc を別につくって対応です。

> 2.の部分は少々トリッキーなので、OpenPNEでカバーできるかが少々心配です。
>
> XOOPSにクッキーを渡してIDを聞きに行く特殊なモジュールを一つ作って対応し
> ようと言うことですか。これならXOOPSとのクッキーのやりとりは実現出来そう
> ですね。
>
>
> 話は少し変わるのですが、OpenPNEでは外部連携のメインには、OpenIDがいいか
> なと思っているのですが、長尾さんはどうお考えですか?
> http://trac.openpne.jp/wiki/pne-openid

何をメインにするかですね。データ的に考えれば、最終的にはユニークな id の識別ができればいいのではないかと思っています。

openID もそのドメイン(ID空間)のユニークなID を送ってくるはずでしょう。
可変なIDではないはずです。そこさえちゃんとしていれば、なんでもいいのではないでしょうか?

内部的なユーザオブジェクトの識別は、ID空間名+ユニークなID でインスタンス化して
おわりだと考えています。

認証に関しても、認証オブジェクトをID空間用に作成して、それに対してIDを送り込み
オッケーかどうか判定すればいいことになります。

仕組みとしては、PKIの仕組みにたことがおこります。
システムはopenPNE ですね。

相手:ID空間の指定とIDを送り込んでくる
システム:トークンを返す。
相手:ID空間にいき、トークンに認証情報つけてもらう
 ようするにPKIの電子署名のようなもんですね。
 MD5のハッシュでもいいですし、簡便法はいろいろあります。
システム:ID空間の認証情報がただしいかどうかをチェックする。
相手:認証情報のチェックがすめばログインできる

openID だと下記のuserid がユニークな識別になります。
http://userid.openid.ne.jp

ときどき userid が変わると困るわけですね。
というか、複数もっているんで名寄せしてほしいなどといわないなら、
大して難しくないような気がします。

ここで問題は、openID の場合は、認証サーバがくたばったらだめになります。
リアルタイムで認証するわけです。

私は、PKIがいいと思うのは、認証サーバがくたばっても大丈夫だからです。
リアルタイムでなくてもいいのです。

将来的に大規模に認証システムが使われるようになると、PKIの世界が確実に
来るだろうと私は思っています。

PKI に使うのはは、PKIならなんでもいいです。PGPでもいいでしょう。

Reply all
Reply to author
Forward
0 new messages