Skip to main content
Auth0 は、サービスプロバイダー (SP) と (IdP) の両方として設定でき、 (SSO) 接続をテストできます。
Auth0 を SAML SP および IdP として使用するプロトコル図
Auth0 を SP として使用する SAML 構成では、Auth0 がサポートするのは SAML 1.1 または SAML 2.0 のみです。一方、Auth0 を IdP として使用する SAML 構成では、SAML 2.0 を使用できます。 テスト用に、1 つのテナントを SAML SP、別のテナントを SAML IdP として使用し、Auth0 でユーザーを認証するシンプルな SAML SSO のサンプルアプリケーションを設定できます。1 つのテナントに対して 2 つのフェデレーションを設定します。

IdP テナントを作成

SAML IdP として使用するための別の Auth0 テナントがまだない場合は、新しく作成する必要があります。
  1. Auth0 Dashboard に移動し、テナント名を選択して Create Tenant をクリックします。
    Auth0 Dashboard のテナントのドロップダウンメニューで Create Tenant をクリック
  2. Domain を入力し、Region を選択して、Create をクリックします。

IdP テナントを設定する

セカンダリ テナントを IdP として設定し、SP テナントを表すアプリケーションを登録します。
  1. IdP テナントに切り替えます。テナント メニューを開き、Switch Tenant を選択してから、IdP テナントを選択します。
  2. Auth0 Dashboard > アプリケーション > アプリケーション に移動し、Create Application を選択します。
  3. my-auth0-idp などのアプリケーション名を入力し、アプリケーションの種類には Regular Web Application を選択して、Create をクリックします。
  4. 設定 ページの下部に移動し、Show Advanced Settings を選択します。
  5. Certificates ビューに切り替えて Download Certificate を選択し、PEM を選びます。証明書がダウンロードされます。この証明書は、SP テナントを設定するときに使用します。
  6. Endpoints ビューに切り替え、SAML Protocol URL を見つけてその内容をコピーします。この URL は、SP テナントを設定するときに使用します。

SAML シーケンスのテスト用ユーザーを作成する

  1. Auth0 Dashboard > User Management > Users に移動し、Create User を選択します。
  2. テスト用ユーザーのメールアドレスを入力します。ドメイン名は、次に設定するサービスプロバイダーのテナントのメールドメインと一致している必要があります。たとえば、ユーザーが john.doe@exampleco.com の場合、メールドメインには exampleco.com を入力します。
  3. テスト用ユーザーのパスワードを入力します。
  4. 接続 にはデフォルト値を使用します。
  5. Create を選択します。

サービスプロバイダー テナントを設定する

SAML プロトコルを使用した SSO のために、SP テナントが IdP テナントと通信できるように設定します。
  1. SP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、SP テナントを選択します。
  2. Auth0 Dashboard > Authentication > Enterprise に移動し、SAML を選択します。
  3. Create Connection を選択します。
  4. 次の情報を入力し、Create を選択します。
  1. 設定 ビューに切り替えて、テナントに関連付けられたメタデータを確認します。URL をコピーして保存します。
  2. 新しいブラウザータブを開き、先ほどコピーした URL に移動します。 (Auth0 ドキュメントにログインしている場合は、設定に正しい値があらかじめ入力されます。)
    1. Entity ID を見つけて、その内容をコピーして保存します。次のようになります: urn:auth0:{yourTenant}:{yourConnectionName}{yourConnectionName} は、IdP テナント用に作成した接続の名前に置き換えます。
    2. メタデータ を見つけて、表示されている URL をコピーして保存します。次のようになります: https://{yourDomain}/samlp/metadata?connection={yourConnectionName}{yourConnectionName} は、IdP テナント用に作成した接続の名前に置き換えます。
    3. 先ほどコピーした URL にアクセスして、SP テナント内のこの接続のメタデータを表示します。ブラウザーによっては、メタデータファイルの保存を求められる場合もあります。
    4. AssertionConsumerService で始まる行を見つけ、Location フィールドの値をコピーして保存します。これは次の形式の URL です: https://{yourDomain}/login/callback?connection={yourConnectionName}。この URL は、IdP テナントから送信される SAML assertion を受け取る SP テナント上の URL です。次のセクションでは、この URL を IdP テナントに指定して、SAML assertion の送信先を認識できるようにします。

IdP にサービスプロバイダーのメタデータを追加する

SP テナントに関する情報を IdP テナントに追加し、SAML 認証リクエストを受信して応答できるようにします。
  1. IdP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、IdP テナントを選択します。
  2. Auth0 Dashboard > アプリケーション > アプリケーション に移動し、先ほど作成した IdP アプリケーションの名前を選択します。
  3. Addons ビューに切り替えます。
  4. SAML2 Web App を選択してオプションを表示し、Application Callback URL を探します。先ほどコピーした AssertionConsumerService URL を貼り付けます。
  5. 設定 のコードブロックで audience キーを探し、コメントアウトを解除します。次に、行末のカンマを削除し、元の値 (urn:foo) を先ほどコピーした Entity ID の値に置き換えます (サービスプロバイダーテナントの設定時に Step 4 で作成した接続名を含めます) 。 新しい行は次のようになります: “audience":"urn:auth0:{yourTenant}:{yourConnectionName}"
  6. Enable を選択します。

IdP をテストする

  1. 同じウィンドウで上にスクロールして Debug を選択します。ログイン画面が表示されます。
  2. 上で作成したテストユーザーの資格情報を使ってログインします。設定が正しければ、「It works!」と、IdP に送信されるエンコード済みおよびデコード済みの SAML レスポンスが表示されます。
  3. デコード済みの SAML レスポンスを確認し、<saml:Audience> を見つけて、前の画面で入力した Entity ID と一致していることを確認します。
  4. Close this window を選択します。

SAML 接続をテストするためのアプリケーションを作成する

作成した SAML 接続をテストするためのシンプルなアプリケーションを作成します。
  1. SP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、SP テナントを選択します。
  2. Auth0 Dashboard > アプリケーション > アプリケーション に移動し、Create Application を選択します。
  3. アプリケーション名を入力し、アプリケーションの種類として Regular Web Application を選択して、Create を選択します。
  4. DomainClient ID の値をコピーして保存します。
  5. Allowed Callback URLs フィールドを見つけて、http://jwt.io を入力します。 これは、認証後にユーザーがリダイレクトされる許可済みのコールバック URL の一覧です。ここに入力する URL は、次の手順で作成する HTML コード内のコールバック URL と一致している必要があります。通常はアプリケーションの URL を入力しますが、この例では簡単にするため、テストユーザーは Auth0 の JWT オンラインツールに送られます。このツールでは、認証シーケンスの最後に返される JSON Web トークン (JWT) に関する情報を確認できます。
  6. 変更を保存 を選択します。
  7. Connections ビューに切り替え、Enterprise セクションの下にある作成済みの SAML 接続を見つけて、有効にします。

サービスとアイデンティティプロバイダー間の接続をテストする

SPテナントとIdPテナント間の SAML 構成が正しく機能することを確認するため、テストを行います。
  1. Auth0 Dashboard > Authentication > Enterprise に移動し、SAML を選択します。
  2. 作成した SAML 接続を見つけて、試す の矢印アイコンを選択します。この接続のテスト時にすでにログインしているため、直接 “It works!” 画面に移動するはずです。ログイン画面が表示された場合は、テストユーザーの資格情報を使用してログインしてください。
構成が正しく設定されていれば、“It works!” と表示され、ページには IdPテナント から Auth0 テナントに送信された SAML 認証アサーションの内容が表示されます。 正しく構成されていない場合は、手順を再確認してください。それでも解決しない場合は、このドキュメントの末尾にあるトラブルシューティングのセクションを参照してください。

テスト用アプリケーションのWebページを作成する

Lockウィジェットを呼び出して SAML ログインシーケンスを開始するシンプルなWebページを作成します。
  1. HTML ページを作成し、次の HTML コードと JavaScript コードを挿入します。{yourClientId}{yourDomain} は、先ほど登録したアプリケーションの実際の値に置き換えてください。 (それらの値を控えていない場合は、SP テナントの Application Settings で確認できます。)
  2. audience をアプリケーションに適した値に置き換えることもできますが、このテストではプレースホルダーのままで十分です。audience パラメーターを指定する場合は、Auth0 で設定済みの既存の API の identifier と一致していることを確認してください。
  3. ブラウザーからアクセスできる場所に HTML ファイルを保存します。

サンプルアプリケーションをテストする

SP テナントで作成した Auth0 の SAML 接続を使用して、IdP テナントに対する SSO 認証を行うサンプル HTML アプリケーションをテストします。
  1. 上で作成した HTML ファイルをブラウザーで開きます。ログインボタンが表示されるはずです。
  2. Login をクリックします。1 つの選択肢がある Lock ウィジェットが表示されるはずです。アプリケーションで他の接続を有効にしている場合は、画面の表示が異なることがあります。メールアドレスの入力を求められた場合は、入力するメールアドレスのドメイン名が、最初のテナントのアプリケーションの 設定 ビューで入力したドメインと同じであることを確認してください。
  3. saml または ACCESS と表示された青いボタンをクリックします。資格情報の入力を求められるか、すぐにコールバック URL にリダイレクトされるかは、有効なセッションがまだ残っているかどうかによって異なります。

テストシナリオのトラブルシューティング

  • テストの前には毎回、ブラウザーの履歴と Cookie を消去してください。そうしないと、ブラウザーが HTML ページの最新バージョンを読み込まなかったり、実行に影響する古い Cookie が残っていたりすることがあります。
  • やり取りの HTTP トレースを取得してください。多くのツールでは、分析用にブラウザーの HTTP トラフィックを取得できます。
    • ツールを見つけてインストールするには、インターネットで「HTTP Trace」を検索してください。
    • 最初から最後までログインシーケンスを取得し、トレースを分析します。想定どおりのシーケンスのどこまで進んでいるかを確認するために、GET の流れを追跡してください。元のサイトから SP テナントへ、次に IdP テナントへリダイレクトされ、ログインが必要な場合は資格情報の POST が行われ、その後コールバック URL または SP テナントにリダイレクトされ、さらにアプリケーションで指定した コールバック URL にリダイレクトされるはずです。
  • ブラウザーで Cookie と JavaScript が有効になっていることを確認してください。
  • HTML ファイルで指定した コールバック URL が、アプリケーションの Allowed Callback URLs フィールドにも含まれていることを確認してください。そのためには、Auth0 Dashboard > アプリケーション > アプリケーション に移動してアプリケーション名を選択し、Allowed Callback URLs を探します。
  • SAML アサーションをデコードするには、http://samltool.io ツールを使用してください。

詳細情報