[解決済み】アクセストークンが失効するのはなぜですか?
2022-04-11 23:01:43
質問
Google API と OAuth2 を使い始めたところです。クライアントが私のアプリを認証するとき、私は "refresh token" と短命の "access token" を与えられます。アクセストークンの有効期限が切れるたびに、リフレッシュ トークンを Google に POST すると、新しいアクセストークンがもらえます。
質問ですが、アクセストークンの有効期限は何のためにあるのでしょうか?なぜ、リフレッシュ・トークンの代わりに、長持ちするアクセストークンが存在しないのでしょうか?
また、リフレッシュトークンの有効期限はありますか?
参照 OAuth 2.0を使ってGoogle APIにアクセスする は、Google OAuth2 のワークフローについての詳細です。
解決するには?
これは非常に実装に依存しますが、一般的なアイデアは、プロバイダが短期のアクセストークンを長期のリフレッシュトークンで発行できるようにすることです。なぜですか?
- 多くのプロバイダはベアラートークンをサポートしていますが、これはセキュリティ的に非常に弱いものです。トークンの有効期限を短くし、リフレッシュを必須にすることで、攻撃者が盗んだトークンを悪用できる時間を制限しています。
- 大規模なデプロイメントでは、APIコールのたびにデータベース検索を実行したくないので、代わりに自己暗号化アクセストークンを発行し、復号化によって検証できるようにする。しかし、これはこれらのトークンを取り消す方法がないことも意味するので、トークンは短期間で発行され、更新されなければならない。
- リフレッシュ・トークンは、クライアント認証を必要とするため、より強固なものとなっています。上記のアクセストークンとは異なり、通常はデータベース検索で実装されます。
関連
-
[解決済み] OAuth 2.0のBearer Tokenとは具体的に何ですか?
-
[解決済み】OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのでしょうか?
-
[解決済み】OAuth2.メリットとユースケース - なぜ?
-
[解決済み】OAuth 2の暗黙のグラント承認タイプの目的は何ですか?
-
[解決済み】アクセストークンが失効するのはなぜですか?
-
[解決済み] Retrofitを使用して、すべての呼び出しを変更せずにOAuthトークンをリフレッシュする
-
[解決済み] リソースサーバーのOAuth 2.0アクセストークンを検証する方法とは?
-
[解決済み] Google refresh トークンに有効期限はありますか?
-
[解決済み] OAuthでREST APIを保護しつつ、サードパーティのOAuthプロバイダによる認証を許可する(DotNetOpenAuthを使用する)
-
[解決済み] JWT (Json Web Token) Audience "aud" vs Client_Id - 違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] OAuth 2.0のBearer Tokenとは具体的に何ですか?
-
[解決済み] JWTとBearer Tokenの違いは何ですか?
-
[解決済み】OAuth 2の暗黙のグラント承認タイプの目的は何ですか?
-
[解決済み】OAuth 2.0 Bearer Tokenとは、具体的にどのようなものですか?
-
[解決済み】アクセストークンが失効するのはなぜですか?
-
[解決済み】OAuth: ローカルのURLでテストする方法は?
-
[解決済み] OAuth Authorization CodeとImplicitワークフローの違いは何ですか?それぞれを使用するタイミングは?
-
[解決済み] OAuthでREST APIを保護しつつ、サードパーティのOAuthプロバイダによる認証を許可する(DotNetOpenAuthを使用する)
-
[解決済み] JWT (Json Web Token) Audience "aud" vs Client_Id - 違いは何ですか?