Skip to main content
認可コードフロー (OAuth 2.0 RFC 6749, section 4.1で定義) は、認可コードをトークンに交換するフローです。 このフローは、交換時にアプリケーションの認証情報も含まれ、それを安全に保つ必要があるため、機密性のあるアプリケーション (従来型Webアプリケーションなど) でのみ使用できます。

認可コードフローの仕組み

Auth - Auth code flow- Authorization sequence diagram
  1. ユーザーがアプリケーション内で Login を選択します。
  2. Auth0 の SDK がユーザーを Auth0 Authorization Server (/authorize エンドポイント) にリダイレクトします。
  3. Auth0 Authorization Server がユーザーをログイン画面と認可プロンプトにリダイレクトします。
  4. ユーザーは設定されたログイン方法のいずれかで認証を行い、Auth0 がアプリケーションに付与する権限の一覧が表示された同意プロンプトが表示される場合があります。
  5. Auth0 Authorization Server は、1 回限り有効な認可コードとともにユーザーをアプリケーションにリダイレクトします。
  6. Auth0 の SDK は、認可コード、アプリケーションの client ID、および client secret や Private Key JWT などのアプリケーションの資格情報を Auth0 Authorization Server (/oauth/token エンドポイント) に送信します。
  7. Auth0 Authorization Server は、認可コード、アプリケーションの client ID、およびアプリケーションの資格情報を検証します。
  8. Auth0 Authorization Server は、ID トークンとアクセストークン (必要に応じてリフレッシュトークンも) を返します。
  9. アプリケーションはアクセストークンを使って API を呼び出し、ユーザーに関する情報にアクセスできます。
  10. API は要求されたデータを返します。

認可コードフローを実装する方法

認可コードフローを実装する最も簡単な方法は、Regular Web App Quickstarts に従うことです。 また、Authentication API を使用して認可コードフローを実装することもできます。詳細については、認可コードフローを使用した Login の追加 または 認可コードフローを使用した API の呼び出し をご覧ください。
Origin ヘッダーを含むブラウザーアプリケーションが /oauth/token エンドポイントに POST リクエストを送信した場合、アプリケーションで Refresh Tokenのローテーションを許可 が有効になっており、offline_access スコープを送信していても、Auth0 はリフレッシュトークンを発行しません。

さらに詳しく