岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

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--