1. ホーム
  2. authentication

[解決済み] Refresh Token "の目的は何ですか?

2022-04-21 11:11:11

質問

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のフローについて、より詳細かつ完全な情報を得るには、以下の文献を参照してください。