私はOAuth2.0 Serverを開発中です。リフレッシュトークンの形式と暗号化に使用する暗号化アルゴリズムは何ですか?OAuth2.0暗号化の前に、リフレッシュトークンのコンテンツ形式はどのようにする必要がありますか?
答えて
OAuth 2.0では、トークンの形式や暗号化に関する制限はありません。通信はTLSで保護されているはずなので、暗号化は仕様では完全に無視されます。
また、は、実際ににする必要はありません。資金調達が許可されている場合は、オープンソースライブラリまたはベンダー製品を選択してください。
つまり、JWT RFCをご覧ください。それはほとんどの人が使う形式です。また、フォーマットを全く考慮せず、不透明な文字列で作業し、次に認可サーバーでトークンイントロスペクションを実装することもできます。
暗号化に関して - 何かが行きます。ほとんどの実装は、JWTトークンに署名するために、少なくともHS256、RS256、およびES256をサポートしています。実際の世界のシナリオでは、トークンを暗号化する必要はありませんが、署名で十分です。
いつか苦労して、私はそれを理解しました。二つのアプローチ
がありますがどちらかは、対称鍵
を使用すると、リフレッシュトークンに(離れて直接計算/導出することが可能なものから)アクセストークンを構築するために必要なすべてを入れて、グローバルまたはテナントレベルでそれを暗号化します特典:
a。記憶装置は不要
b。 DBとの接触が必要ないため、パフォーマンスが向上します。それだけで復号し、アクセストークンの作成
問題/欠点
です。リフレッシュトークンを追跡する方法はありません。b。発行されたリフレッシュトークンを無効にする方法はありません。
リフレッシュトークンに関連する属性をDBに格納し、OAuthサーバーの応答で暗号化されたリフレッシュトークンIDを返します。 DBに格納される可能性のある属性は、
ID ||満了||トークンの数||件名||クライアントID ||カスタム属性(必要な場合)
これは固体の助言である私たちが実施したが、これは自分自身のリフレッシュトークンの流れを実装したい人
- 1. APNSトークンを暗号化する必要がありますか?
- 2. node.js:暗号化する必要があるデータを暗号化しますか?
- 3. クライアントに送信する前に、テーブルのID列を暗号化/ハッシュ化する必要があります。
- 4. userIdInt、commentidなどはウェブサイトで暗号化する必要がありますか?
- 5. S3暗号化ファイルを復号化する必要はありますか?
- 6. SQLiteのセキュリティオプションは、データベースを暗号化する必要がありますか?
- 7. OpenId Claimer Identifierをデータベースに保存する前に暗号化する必要がありますか?
- 8. DESなどの暗号化アルゴリズムをビットまたはバイトに適用する必要がありますか?
- 9. アンドロイド開発のsharedpreferenceを暗号化する必要がありますか?
- 10. 4桁の暗号化された暗証番号をキーストアに保存する必要があります
- 11. Mailgun - 電子メールで暗号化された形式のリンクがあります
- 12. Python暗号化ライブラリがPEM形式のload_pem_public_keyに失敗する
- 13. Azureサービスパッケージを暗号化するために暗号化がどの程度信頼性がありますか?
- 14. はRSA暗号化のヘルプが必要
- 15. NSCoderバイナリファイル形式にはどのようなファイル拡張子を適用する必要がありますか?
- 16. httpsを使用すると、コンテンツを暗号化する必要がありますか?
- 17. androidのDBファイルを暗号化する必要があります
- 18. openid claim_idを暗号化して保存する必要がありますか?
- 19. oauth2.0リフレッシュトークン
- 20. あなたの想像力が必要です:ファイルを暗号化して、ビットコインの量が復号化に必要なようにする方法
- 21. パスワードはどのように暗号化されますか?
- 22. DexGuardはどのようにクラスを暗号化しますか?
- 23. どのように初期化する必要がありますか?
- 24. 暗号化のためにファイルをチャンクに分割する必要がありますか
- 25. 標準の暗号化ファイル形式は何ですか?
- 26. OAuth:HTTPSでHMAC-SHA1を暗号化する必要があります
- 27. WCF「プライマリシグネチャを暗号化する必要があります。 FaultContract with ProtectionLevel.None
- 28. どのような形式でProject.ImportDirectory(...)に引数を渡す必要がありますか?
- 29. どのユーザーアカウント情報を暗号化し、何をエンコードする必要がありますか?
- 30. メッセージを必要な形式に変換するには、SpringブートでhttpMessageConvertersをどのように設定する必要がありますか?
にアイデアのビットを与える必要があり、同様に他の属性が存在することができ、私の唯一のコメント、私はそれをあなた自身を大胆に実装しないでください:) –