id:ZIGOROuさんの資料が勉強になった
プロバイダ(OPでもRPでも)やるなら必読といえるのではないでしょうか。
個人的にありがたかったのが、「RPは OP Endpoint URL と openid.response_nonce」をペアで覚えておけ」という部分(41〜42ページ)。OPからの認証成功コールバック時に、過去に使われたペアだったらリプレイ攻撃とみなす、ということですね。
RDBMSで管理するとすれば、OP Endpoint URL を繰り返すのは冗長なので、下記のように正規化する感じかな。
- op_end_point テーブル
-
op_end_point_id op_end_point_url 1 https://open.login.yahooapis.jp/openid/op/auth 2 https://open.login.yahooapis.com/openid/op/auth 3 http://www.myopenid.com/server - response テーブル
-
response_id op_end_point_id response_nonce 1 1 2008-07-05T18:49:17Z2DFiaTG9mOs3PpictjFFsvSSkQyuuPR2jw-- 2 1 2008-07-05T19:14:46Z84zx41CtcojdscCac4zOxq_yV1wXU3duIg--