トランザクションリソースは「短時間限定で存在するURL」で
先日の日記に頂いたid:shinichitomitaさんのコメントで、私の言いたかったことが「ワンタイムURL」という一言で表せることに気づいた。
なるほどと思い「ワンタイムURL」でググると、id:kmachuさんの「非公開URLとワンタイムURLは違う - まちゅダイアリー(2007-08-23)」という記事に行き着いた。ああそうか。正確にはワンタイムではないのか。リソースが削除されるのは、トランザクションが終了するか、一定時間経過するか、いずれかのタイミングだから。じゃあ「非公開URL」と表現すればよいのか。
と納得しかけたら、id:HiromitsuTakagiさんのブクマコメントが目についた。ありゃりゃ。「非公開URL」というのも不正確なのか。「短時間限定で存在するURL」なんだな。
まとめます。
RESTとOpenID丸投げ認証を組み合わせる場合、下記のような設計が考えられる。
- IdPからのコールバック後、トランザクションリソースを作成し、そのURLをLocationヘッダで返す
- このトランザクションリソースには認証なしにアクセスできるが、「短時間限定で存在するURL」とし、他者のアクセスを極力排除する
なぜRESTとOpenID丸投げにこだわるのか。
- RESTを知ってしまったから(REST以外の選択肢が考えられなくなった)
- OpenIDに認証を丸投げすることで、ユーザ登録不要なサービスが作れるから
おら、ワクワクしてきたぞ。