メインコンテンツへスキップ
アプリケーションのログイン体験を設計する際は、ホスト型ログイン (Universal Login) にするか、埋め込みログインにするかを決める必要があります。

ホスト型ログイン

ホスト型ログインフローでは、アプリケーションは認証のためにユーザーをへリダイレクトし、その後、認可サーバーはユーザーをアプリケーションに戻します。

Universal Login フロー

一般的な を使ったユーザー認証フローは、次のとおりです。
  1. アプリケーションは、Auth0 SDK のログインメソッドを呼び出すか、Auth0 Authentication API Login エンドポイント を直接呼び出して、認証リクエストを開始します。
  2. アプリケーションはユーザーを Auth0 の認可サーバー (Auth0 テナント) にリダイレクトします。
  3. Auth0 は、Auth0 Session Layer にセッションクッキーがあるかどうかを確認します。
    • セッションクッキーが見つからない場合、Auth0 はユーザーを Universal Login にリダイレクトして認証を行い、対応するセッションクッキーを作成します。
    • セッションクッキーが見つかった場合、Auth0 はそのクッキーを使用してユーザーを認証します。
  4. Auth0 は、IDトークンアクセストークン を返して、ユーザーをアプリケーションにリダイレクトします。

埋め込みログイン

埋め込みログインフローでは、ユーザーはアプリケーション内で直接認証を行います。アプリケーションがログインフォームを提供し、ユーザーの認証情報を収集して、そのデータを認証プロバイダーに送信し、その後ユーザーのを含むレスポンスを受け取ります。 ウェブアプリケーションでは、Auth0テナントにカスタムドメインを設定していない限り、埋め込みログインでは クロスオリジン認証 を使用します。クロスオリジン認証では、異なるオリジン間で安全な認証トランザクションを可能にするため、サードパーティ Cookie を使用します。

機能比較

機能ホスト型組み込み型
シングルサインオン (SSO) Auth0 認可サーバー (Auth0 テナント) 上のセッションクッキーを利用する Universal Login により、完全にサポートされます。サポートは限定的です。Lock または Auth0.js ライブラリを使用する Web アプリケーションでは、セッションを共有できます。ネイティブアプリケーションは、Native to Web SSO を通じて Web アプリケーションとセッションを共有できます。
カスタマイズUniversal Login では、多くの要素 (テーマ設定、ページテンプレート、テキスト要素、プロンプトなど) を簡単にカスタマイズできます。

完全なカスタマイズは、Universal Login の高度なカスタマイズでサポートされています。
アプリケーションの UI/UX を完全に制御できるため、最も高いレベルのカスタマイズが可能です。
機能管理機能は Auth0 Dashboard または Auth0 Management API を通じて一元的に管理できます。

たとえば、Auth0 Dashboard で MFA を有効化または無効化すると、その変更は以降のユーザーのログインにすぐ反映されます。
機能はアプリケーションごとに個別に管理する必要があります。

たとえば、Web アプリケーションとネイティブアプリケーションの両方に MFA を実装する場合は、両方を更新し、それぞれの新しいバージョンをリリースする必要があります。
ユーザーエクスペリエンス認証中、ユーザーはアプリケーションと Auth0 認可サーバーの間でリダイレクトされます。

ネイティブアプリケーションでは、そのためにユニバーサルリンクまたはディープリンクの実装が必要です。
認証中も、ユーザーはアプリケーション内にとどまります。
セキュリティと保守Auth0 はセキュリティ動向を監視し、それに応じて Universal Login を更新します。セキュリティのベストプラクティスに従い、提供されている技術を適切に実装する責任はお客様にあります。

ベストプラクティス

IETF の RFC 8252: OAuth 2.0 for Native Apps によると、ネイティブアプリケーションの認証フローでは、ブラウザーなどの外部ユーザーエージェントのみを使用する必要があります。