Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

続続・docomoのOpenIdで詰まった

進展があったのでそれの報告です。
でもまだ根本的な解決には至っていないです。


これまでの記事は次の通りです。
docomoのOpenIdで詰まった
続・docomoのOpenIdで詰まった


まずopenid認証のシーケンスですが、
最初は次のような流れになっています。


1.discoveryによってOP(OpenID Provider, ここではdocomoのこと)のXRDS文書を取得する
2.RP(Relying Party, ここでは自サイトのこと)からアソシエーションの確立要求を行う。
 OPは秘密鍵を発行する。
3.この秘密鍵を元にしてOPENIDの認証要求を行う
4.認証が通過すればOPからRPに向けてdiscoveryを行い、XRDSファイルがある事を確認する
5.以下、処理が続く


2~3にかけてアソシエーションが今回自分がトラブル起こした場所になります。

apacheのログを見てもdocomoから4のdiscoveryが行われている形跡がないため、
どうもその前の認証の時点で失敗しているようです。


数日かけて調査を進めた結果、
現状、症状として見えている範囲では次のようなものになります。

・当たり前ですがアソシエーションの状態はdocomoが管理している
 (ドメイン別の管理らしい?)
・アソシエーションが確立し、秘密鍵が発行されている状態で、
 再度アソシエーションを要求すると秘密鍵は発行してくれる。エラーにはならない。
・ただし、その秘密鍵を使って認証要求しても認証は通過しない。
 (前の秘密鍵も変わらず管理しており、競合を起こしている?)
・秘密鍵の状態がリセットされる条件は不明。
 有効期間は24時間とあるため、24時間放置して期間切れを試したが効果がなかった。


自分の場合、RP側で問題調査のため色々いじっている内に
秘密鍵を削除してしまい、秘密鍵を再度発行する事で認証が通らなくなりました。
認証状態の同期がずれて、リフレッシュもできない状態と思われます。


これまでopenid認証を一度も行っていないサーバにサンプルを入れてみて、
動作確認してみたら正常に動作しました。

何とかして本来設置したいドメインのアソシエーション状態をリセットしたいのですが、
その方法が未だに分からないところです。


本番稼動中の環境とは言え、
エラーメッセージがまともに出ないのはきつい……


追記:
docomoのopenid絡みのトラブルについて、
検索エンジンから直接ヒットするケースが増えてきました。


ナビゲーションのためdocomo openidへの一連の記事へのリンクを並べておきます。

docomoのOpenIdで詰まった
続・docomoのOpenIdで詰まった
続続・docomoのOpenIdで詰まった
docomoのOpenIdで詰まった・終
PHP OpenId Libraryを使ってstatelessモードで認証する方法

TrackBack URL :

Leave a comment  

name

email

website

Submit comment