OAuth2 仕様の実装を計画しており、「アクセス トークン」の実装を検討しています。仕様は実装者に多くの自由を与えているように見えます。私たちはいくつかのベストプラクティスを探しています:
- アクセストークンには何を入れる?サイズと実用性のバランスを取りたい。これは非常にアプリケーション固有のものであることは理解していますが、おそらく本当に価値のあるものがいくつかあります。
これまでのところ、次のフィールドを特定しました。
- ユーザー識別子
- 有効期限
- バージョン (将来的にフォーマットを変更できるようにするため)
- クライアント識別子 (つまり、トークンを要求したアプリ)
いくつかの追加の属性 (パスワード ハッシュなど) はデータベースに格納され、認証中に検索されます (トークンのフィールドを「キー」として使用)。
- それを確保する方法は?
アクセス トークン (HMAC) が改ざんされたかどうかを確認できるように、安全に署名する方向に傾いています。トークン内のフィールドは、誰でも読み取ることができます。
別の方法は、全体を暗号化 (AES) し、ユーザーに対して完全に不透明にすることです。これにより、(バイト単位で) はるかに大きくなります。FB は暗号化されたトークンを使用しているようです (http://developers.facebook.com/blog/post/572/)。
業界のベストプラクティスに関する提案はありますか?
ありがとう、ピョートル