[解決済み] Refresh Token "の目的は何ですか?
質問
YouTube Live Streaming APIと連携するプログラムを持っています。これはタイマーで実行されるので、50分ごとに新しいアクセストークンをリフレッシュトークンで取得するようにプログラムするのは比較的簡単でした。私の質問は、なぜですか?
YouTubeで認証すると、Refresh Tokenがもらえます。その後、このリフレッシュトークンを使って、1時間に1回程度、新しいアクセストークンを取得しています。リフレッシュ・トークンを持っていれば、有効期限がないため、常に新しいアクセストークンを取得するために使用できます。ですから、最初からアクセストークンを発行し、リフレッシュトークンシステムに煩わされることなく、この方法が安全であるとは思えません。
解決方法は?
基本的に、リフレッシュトークンは新しいアクセストークンを取得するために使用されます。
この2つのトークンを明確に区別し、混同しないようにするために、それぞれのトークンの機能を以下に示します。 OAuth 2.0 認証フレームワーク :
- アクセストークン は、リソース所有者の承認のもと、認証サーバから第三者であるクライアントに対して発行されます。 クライアントはアクセストークンを使用して、リソースサーバーがホストする保護されたリソースにアクセスします。
- リフレッシュ・トークン は、アクセストークンを取得するために使用されるクレデンシャルです。 リフレッシュ・トークンは認可サーバーからクライアントに発行され、現在のアクセストークンが無効または期限切れになったときに新しいアクセストークンを取得したり、同一またはより狭い範囲の追加アクセストークンを取得するために使用されます。
さて、アクセストークンを確保する代わりに、なぜリフレッシュトークンを発行していたのかという疑問に対する答えですが、インターネット技術タスクフォースが発表した リフレッシュ・トークン となります。
セキュリティ上の理由があり、その
refresh_token
は認証サーバとのみ交換されるのに対してaccess_token
はリソースサーバと交換される。 これにより、quot;1時間有効なアクセストークン、1年有効なリフレッシュトークン、または good-till-revoked" vs "an access token good-till-revoked without a refresh token." のように長期のアクセストークンが漏洩するリスクを軽減することができるのです。
OAuth 2.0のフローについて、より詳細かつ完全な情報を得るには、以下の文献を参照してください。
- OAuth 2.0 フロー: サーバーサイドのウェブアプリケーション
- OAuth 2.0認証フレームワーク インターネット技術タスクフォース(IETF)が発行する
- SOポスト OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのですか?
関連
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] OpenIDとOAuthの違いは何ですか?
-
[解決済み] Google OAuth 2 認証 - エラー: redirect_uri_mismatch
-
[解決済み】OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのでしょうか?
-
[解決済み】OAuth2の「暗黙の」フローはとてもうまく機能しているのに、なぜ「認証コード」フローがあるのですか?
-
[解決済み】OAuth2.メリットとユースケース - なぜ?
-
[解決済み】Goの認証はどのように管理されているのでしょうか?[クローズド]
-
[解決済み】Subversionでは、ログイン名以外のユーザーになることはできますか?
-
[解決済み】JWTが盗まれたらどうする?
-
[解決済み] クロスドメイン認証のためのJWTを用いたシングルサインオンフロー
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] smbclient NT_STATUS_ACCESS_DENIED
-
[解決済み] JWTにおける時間切れの問題
-
[解決済み] JWT認証とOAuth認証の主な違いは何ですか?
-
[解決済み] Google OAuth 2 認証 - エラー: redirect_uri_mismatch
-
[解決済み】OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのでしょうか?
-
[解決済み】Goの認証はどのように管理されているのでしょうか?[クローズド]
-
[解決済み】Cookieベースの認証はどのように機能するのですか?
-
[解決済み] Refresh Token "の目的は何ですか?
-
[解決済み] クロスドメイン認証のためのJWTを用いたシングルサインオンフロー
-
[解決済み] OpenIDとOAuthの比較 [重複]について