
IdP テナントを作成
-
Auth0 Dashboard に移動し、テナント名を選択して Create Tenant をクリックします。

- Domain を入力し、Region を選択して、Create をクリックします。
IdP テナントを設定する
- IdP テナントに切り替えます。テナント メニューを開き、Switch Tenant を選択してから、IdP テナントを選択します。
- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、Create Application を選択します。
my-auth0-idpなどのアプリケーション名を入力し、アプリケーションの種類には Regular Web Application を選択して、Create をクリックします。- 設定 ページの下部に移動し、Show Advanced Settings を選択します。
- Certificates ビューに切り替えて Download Certificate を選択し、PEM を選びます。証明書がダウンロードされます。この証明書は、SP テナントを設定するときに使用します。
- Endpoints ビューに切り替え、SAML Protocol URL を見つけてその内容をコピーします。この URL は、SP テナントを設定するときに使用します。
SAML シーケンスのテスト用ユーザーを作成する
- Auth0 Dashboard > User Management > Users に移動し、Create User を選択します。
- テスト用ユーザーのメールアドレスを入力します。ドメイン名は、次に設定するサービスプロバイダーのテナントのメールドメインと一致している必要があります。たとえば、ユーザーが
john.doe@exampleco.comの場合、メールドメインにはexampleco.comを入力します。 - テスト用ユーザーのパスワードを入力します。
- 接続 にはデフォルト値を使用します。
- Create を選択します。
サービスプロバイダー テナントを設定する
- SP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、SP テナントを選択します。
- Auth0 Dashboard > Authentication > Enterprise に移動し、SAML を選択します。
- Create Connection を選択します。
- 次の情報を入力し、Create を選択します。
- 設定 ビューに切り替えて、テナントに関連付けられたメタデータを確認します。URL をコピーして保存します。
-
新しいブラウザータブを開き、先ほどコピーした URL に移動します。 (Auth0 ドキュメントにログインしている場合は、設定に正しい値があらかじめ入力されます。)
- Entity ID を見つけて、その内容をコピーして保存します。次のようになります:
urn:auth0:{yourTenant}:{yourConnectionName}。{yourConnectionName}は、IdP テナント用に作成した接続の名前に置き換えます。 - メタデータ を見つけて、表示されている URL をコピーして保存します。次のようになります:
https://{yourDomain}/samlp/metadata?connection={yourConnectionName}。{yourConnectionName}は、IdP テナント用に作成した接続の名前に置き換えます。 - 先ほどコピーした URL にアクセスして、SP テナント内のこの接続のメタデータを表示します。ブラウザーによっては、メタデータファイルの保存を求められる場合もあります。
- AssertionConsumerService で始まる行を見つけ、Location フィールドの値をコピーして保存します。これは次の形式の URL です:
https://{yourDomain}/login/callback?connection={yourConnectionName}。この URL は、IdP テナントから送信される SAML assertion を受け取る SP テナント上の URL です。次のセクションでは、この URL を IdP テナントに指定して、SAML assertion の送信先を認識できるようにします。
- Entity ID を見つけて、その内容をコピーして保存します。次のようになります:
IdP にサービスプロバイダーのメタデータを追加する
- IdP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、IdP テナントを選択します。
- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、先ほど作成した IdP アプリケーションの名前を選択します。
- Addons ビューに切り替えます。
- SAML2 Web App を選択してオプションを表示し、Application Callback URL を探します。先ほどコピーした AssertionConsumerService URL を貼り付けます。
- 設定 のコードブロックで
audienceキーを探し、コメントアウトを解除します。次に、行末のカンマを削除し、元の値 (urn:foo) を先ほどコピーした Entity ID の値に置き換えます (サービスプロバイダーテナントの設定時に Step 4 で作成した接続名を含めます) 。 新しい行は次のようになります: “audience":"urn:auth0:{yourTenant}:{yourConnectionName}"。 - Enable を選択します。
IdP をテストする
- 同じウィンドウで上にスクロールして Debug を選択します。ログイン画面が表示されます。
- 上で作成したテストユーザーの資格情報を使ってログインします。設定が正しければ、「It works!」と、IdP に送信されるエンコード済みおよびデコード済みの SAML レスポンスが表示されます。
- デコード済みの SAML レスポンスを確認し、
<saml:Audience>を見つけて、前の画面で入力した Entity ID と一致していることを確認します。 - Close this window を選択します。
SAML 接続をテストするためのアプリケーションを作成する
- SP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、SP テナントを選択します。
- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、Create Application を選択します。
- アプリケーション名を入力し、アプリケーションの種類として Regular Web Application を選択して、Create を選択します。
- Domain と Client ID の値をコピーして保存します。
- Allowed Callback URLs フィールドを見つけて、
http://jwt.ioを入力します。 これは、認証後にユーザーがリダイレクトされる許可済みのコールバック URL の一覧です。ここに入力する URL は、次の手順で作成する HTML コード内のコールバック URL と一致している必要があります。通常はアプリケーションの URL を入力しますが、この例では簡単にするため、テストユーザーは Auth0 の JWT オンラインツールに送られます。このツールでは、認証シーケンスの最後に返される JSON Web トークン (JWT) に関する情報を確認できます。 - 変更を保存 を選択します。
- Connections ビューに切り替え、Enterprise セクションの下にある作成済みの SAML 接続を見つけて、有効にします。
サービスとアイデンティティプロバイダー間の接続をテストする
- Auth0 Dashboard > Authentication > Enterprise に移動し、SAML を選択します。
- 作成した SAML 接続を見つけて、試す の矢印アイコンを選択します。この接続のテスト時にすでにログインしているため、直接 “It works!” 画面に移動するはずです。ログイン画面が表示された場合は、テストユーザーの資格情報を使用してログインしてください。
テスト用アプリケーションのWebページを作成する
-
HTML ページを作成し、次の HTML コードと JavaScript コードを挿入します。
{yourClientId}と{yourDomain}は、先ほど登録したアプリケーションの実際の値に置き換えてください。 (それらの値を控えていない場合は、SP テナントの Application Settings で確認できます。) -
audienceをアプリケーションに適した値に置き換えることもできますが、このテストではプレースホルダーのままで十分です。audienceパラメーターを指定する場合は、Auth0 で設定済みの既存の API の identifier と一致していることを確認してください。 - ブラウザーからアクセスできる場所に HTML ファイルを保存します。
サンプルアプリケーションをテストする
- 上で作成した HTML ファイルをブラウザーで開きます。ログインボタンが表示されるはずです。
- Login をクリックします。1 つの選択肢がある Lock ウィジェットが表示されるはずです。アプリケーションで他の接続を有効にしている場合は、画面の表示が異なることがあります。メールアドレスの入力を求められた場合は、入力するメールアドレスのドメイン名が、最初のテナントのアプリケーションの 設定 ビューで入力したドメインと同じであることを確認してください。
- 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 ツールを使用してください。