メインコンテンツへスキップ
Client Credentials を安全に保存できるアプリケーションでは、Hybrid Flow (OpenID Connect specification, section 3.3 で定義) を利用することでメリットが得られる場合があります。Hybrid Flow を使用すると、アプリケーションは にすぐアクセスできる一方で、 も安全かつ確実に取得できます。これは、アプリケーションがユーザーに関する情報にすぐアクセスする必要はあるものの、保護されたリソースに長期間アクセスする前に何らかの処理を行う必要がある場合に役立ちます。

仕組み

Hybrid Flow は、Implicit Flow with Form PostAuthorization Code Flow の手順を組み合わせたフローです。
  1. ユーザーがアプリケーション内で Login を選択します。
  2. アプリケーションはユーザーを Auth0 認可サーバー (/authorize endpoint) にリダイレクトし、要求する認証情報の種類 (IDトークンと認可コード) を示す response_type パラメーターと、セキュリティを確保するための response_mode パラメーター form_post を渡します。
  3. Auth0 認可サーバーはユーザーをログインおよび認可のプロンプトにリダイレクトします。
  4. ユーザーは設定済みのログインオプションのいずれかで認証し、Auth0 がアプリケーションに付与する権限を示す同意プロンプトが表示される場合があります。
  5. Auth0 認可サーバーは、指定された response_type に応じて、1回限り有効な認可コードと、IDトークン、アクセストークン、またはその両方を付けてユーザーをアプリケーションにリダイレクトします。
  6. アプリケーションは、認可コード、アプリケーションのクライアントID、およびクライアントシークレットや Private Key JWT などのアプリケーション認証情報を Auth0 認可サーバー (/oauth/token endpoint) に送信します。
  7. Auth0 認可サーバーは、認可コード、アプリケーションのクライアントID、およびアプリケーション認証情報を検証します。
  8. Auth0 認可サーバーは、2つ目のIDトークンとアクセストークン (必要に応じてリフレッシュトークンも) を返します。
  9. アプリケーションは、2つ目のアクセストークンを使用して API を呼び出し、ユーザーに関する情報にアクセスできます。
  10. API は要求されたデータを返します。
アプリケーションでサインオンのためだけに Hybrid Flow を使用する場合は、リフレッシュトークンやアクセストークンは不要で、必要なのはクレームを含む IDトークン のみです。

実装方法

Authentication API を使用して Hybrid Flow で API を呼び出す 方法については、チュートリアルを参照してください。

詳しくはこちら