私はOauthをかなり新しくしています。特定のフローは、Oauthフローのいずれかによってサポートされます。私は、ユーザーを特定して、そのユーザーに、トークンの期限が切れた後でも安全でないアクションを実行できるようにしたいと考えています。ユーザーは、セキュリティで保護された操作を実行するよう要求された場合にのみ、再認証を強制されます。私は現在、これをサポートする流れは見当たりません。
私はリフレッシュトークンを使って以下の解決策を考えましたが、私はoauthパターンに違反している可能性があるかどうか、あるいはより良い方法があるかどうかわかりません。
1)Xの時間アクセストークンを発行する。 2時間と言うことができます。 2)トークンが満了すると、リフレッシュトークンを使用して新しいアクセストークンを取得します。新しいトークンには、ユーザーが安全でないアクセス権しか持っていないことを示すクレームが含まれます。 3)セキュアリソースが要求された場合、トークンが無効であることを示す401応答コードで要求が拒否される。 4)アプリケーションは、新しいアクセストークンを受け取るためにユーザーの資格情報を要求する必要があります。
これについての考えは?
回答:
回答№1は0これは本当にリソースサーバーとクライアントをサポートしています。もちろん、標準のOAuth 2.0の境界もあります。 OAuth 2.0がその相互作用で標準化するのは、アクセストークンの提示方法だけです。他のすべての振る舞いは、アプリケーション実装者に委ねられます。
リソースサーバーは、アクセストークンの有効性に関係なく、またはたとえアクセストークンがまったく提示されていなくても、安全でないリソース/操作が発生します。
私は、アクセストークンを生成する際に価値を見ない「安全でないアクセス」を識別します。そのトークンは、期限切れのトークンと全く同じトークンを持つか、全くトークンを持たないため、そのケースをカバーするアクセストークンは必要ありません。