OAuth 認証コード フロー
- 最終更新日2024/10/31
OAuth 認証コード フロー
認証コード フローは、サードパーティ アプリケーションがユーザーの資格情報を公開することなくユーザーのリソースにアクセスできるようにする OAuth 2.0 で使用されているセキュリティ プロトコルです。
このフローでは、クライアント アプリケーションは、ユーザーを認証サーバーにリダイレクトし、そこでユーザーがログインし、クライアントのアクセス リクエストを承認します。 承認後、認証サーバーが認証コードをクライアントに送信し、クライアントがアクセス トークンおよび (オプションで) 更新トークンと交換します。 このアクセス トークンは、その後、ユーザーに代わってリソース サーバーへの認証されたリクエストを行うために使用されます。
このフローは、ユーザーが資格情報を直接、共有することなく、自分のリソース (データやサービスなど) へのアクセス権をサードパーティ アプリケーションに付与したい場合によく使用されます。
認証コード フローと PKCE (Proof Key for Code Exchange) による認証コード フローの主な違いは、特にモバイル アプリケーションおよびネイティブ アプリケーションに対する特定の攻撃を防止するために使用されるセキュリティ メカニズムにあります。
標準の認証コード フローでは、ユーザーが認証サーバーで認証された後、クライアントが認証コードを受信します。 クライアントが、このコードをアクセス トークンと交換します。 しかし、このフローは、認証コード窃取攻撃に対して脆弱です。この攻撃では、攻撃者は認証コードを窃取し、それを使用してアクセス トークンを取得することがあります。
PKCE による認証コード フローは、認証リクエストを認証するために、動的に生成されたシークレット (コード検証ツール) を使用することで、追加のセキュリティ レイヤーを追加します。 これにより、特にモバイルやネイティブアプリケーションなど、クライアントシークレットを安全に保存するのが難しい環境で、より安全になります。
認証コード フローを使用して認可タイプを作成するには: