認可情報を取得する際に、ID &パスワードではなく、アクセストークンで認証を行うサービスは多いと思うのですが、アクセストークンにも色々ありますので、再度まとめておこうと思います。
以前まとめたもの
アクセストークンの分類について
アクセストークンといっても色々なタイプがあるようなのでここでまとめておこうと思います。
識別子型(ハンドル型)
アクセストークンですが、単純にDBの中に入っており、照合する使い捨ての文字列をハッシュ化したものですね。このパターンは多いと思うのですが、有効期限の短いパスワードみたいなものでしょうかね。
この場合、アクセストークンを認可サーバーとリソースサーバー両方に登録する必要が出てきます。
アクセストークン自体の有効期限は30分〜1時間程度になるため、運用方法を考えないとDBを圧迫することになりますが、認可サーバー(トークンを発行するサーバー)とリソースサーバー(個人情報が入っているサーバー)が同一のものであれば、こちらの方がセキュリティのレベルが高いため、こちらを使われることが多いかと思います。
内包型
認可サーバーとリソースサーバーが分離されている場合、認可サーバーで発行されたアクセストークンが正しいかどうかを検証するすべがありません。
この問題の解決手段としてアクセストークン自体に情報を埋め込んでしまおうという手法でJWT「JSON Web Token」という手段が用いられることがあり、これを複合化して、情報を受け取ります。
サンプルを作ったりして動かしたのですが、使い所自体がわかっていませんでした・・
確かに認可サーバーとリソースサーバーが分離している場合、トークン自体の整合を取ることができないので、トークン自体に情報を含まないとダメですね・・・
参考リンク
ここがわかりやすく・・というかそのまま勉強させてもらったので、リスペクトの意味をこめて貼っときます。