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

- ドメイン を入力し、リージョン を選択して、Create をクリックします。
IdP テナントを設定する
- IdP テナントに切り替えます。テナント メニューを開き、Switch Tenant を選択してから、IdP テナントを選択します。
- Dashboard > Applications > Applications に移動し、Create Application を選択します。
- アプリケーションの名前 (
my-auth0-idpなど) を入力し、アプリケーションの種類として Regular Web Application を選択してから、Create を選択します。 - Settings ページの最下部に移動し、Show Advanced Settings を選択します。
- Certificates ビューに切り替え、Download Certificate を選択してから PEM を選択します。証明書がダウンロードされます。この証明書は、SP テナントを設定する際に使用します。
- Endpoints ビューに切り替え、SAML Protocol URL を見つけてその内容をコピーします。この URL は、SP テナントを設定する際に使用します。
SAML シーケンスをテストするためのユーザーを作成する
- Dashboard > User Management > Users に移動し、Create User を選択します。
- テストユーザーのメールアドレスを入力します。ドメイン名は、次に設定するサービスプロバイダーのテナントのメールドメインと一致している必要があります。たとえば、ユーザーが
john.doe@exampleco.comの場合、メールドメインにはexampleco.comを入力します。 - テストユーザーのパスワードを入力します。
- Connection にはデフォルト値を使用します。
- Create を選択します。
サービスプロバイダーのテナントを設定する
- SP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、SP テナントを選択します。
- Dashboard > Authentication > Enterprise に移動し、SAML を選択します。
- Create Connection を選択します。
- 以下の情報を入力し、Create を選択します。
| 設定 | 説明 |
|---|---|
| 接続名 | SAML-Auth0-IDP など、任意の名前を入力します。 |
| Sign In URL | 上でコピーした SAML Protocol URL の値を入力します。 |
| Sign Out URL | 上記の Sign In URL と同じ URL を入力します。 |
| X509 Signing Certificate | 赤い UPLOAD CERTIFICATE… ボタンをクリックし、上でダウンロードした .pem ファイルを選択します。 |
- Setup ビューに切り替えると、テナントに関連付けられたメタデータを確認できます。URL をコピーして保存します。
-
新しいブラウザータブを開き、先ほどコピーした URL に移動します。 (Auth0 Docs サイトにログインしている場合は、設定に正しい値があらかじめ入力されます。)
- Entity ID を見つけて、その内容をコピーして保存します。形式は
urn:auth0:{yourTenant}:{yourConnectionName}のようになります。{yourConnectionName}は、IdP テナント用に作成した接続の名前に置き換えます。 - Metadata を見つけて、表示されている URL をコピーして保存します。形式は
https://{yourDomain}/samlp/metadata?connection={yourConnectionName}のようになります。{yourConnectionName}は、IdP テナント用に作成した接続の名前に置き換えます。 - 先ほどコピーした URL に移動して、SP テナント内のこの接続のメタデータを表示します。ブラウザーによっては、メタデータファイルの保存を求められる場合もあります。
- AssertionConsumerService で始まる行を見つけて、Location フィールドの値をコピーして保存します。形式は
https://{yourDomain}/login/callback?connection={yourConnectionName}のようになります。これは、IdP テナントから送信される SAML アサーションを受信する SP テナント上の URL です。次のセクションでは、この URL を IdP テナントに指定して、SAML アサーションの送信先を認識できるようにします。
- Entity ID を見つけて、その内容をコピーして保存します。形式は
IdP にサービスプロバイダーのメタデータを追加する
- IdP テナントに切り替えます。テナントメニューを開き、Switch Tenant を選択してから、IdP テナントを選択します。
- Dashboard > Applications > Applications に移動し、先ほど作成した IdP アプリケーションの名前を選択します。
- Addons ビューに切り替えます。
- SAML2 Web App を選択してオプションを表示し、Application Callback URL を見つけます。先ほどコピーした AssertionConsumerService URL を貼り付けます。
- Settings コードブロックで
audienceキーを見つけてコメントを解除し、行末のカンマを削除して、元の値 (urn:foo) を先ほどコピーした Entity ID の値に置き換えます (サービスプロバイダー テナントの設定時に手順 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 テナントを選択します。
- Dashboard > Applications > Applications に移動し、Create Application を選択します。
- アプリケーション名を入力し、アプリケーションタイプとして Regular Web Application を選択して、Create を選択します。
- ドメイン と Client ID の値をコピーして保存します。
- Allowed Callback URLs フィールドを見つけて、
http://jwt.ioを入力します。 これは、認証後にユーザーがリダイレクトされる許可済みコールバック URL の一覧です。ここに入力する URL は、次の手順で作成する HTML コード内のコールバック URL と一致している必要があります。通常はアプリケーションの URL を入力しますが、この例では簡単にするため、テストユーザーは Auth0 の JWT オンラインツールにリダイレクトされます。このツールでは、認証シーケンスの最後に返される JSON Web Token (JWT) に関する情報を確認できます。 - Save Changes を選択します。
- Connections ビューに切り替え、Enterprise セクションで作成した SAML 接続を見つけて有効にします。
サービスとIDプロバイダー間の接続をテストする
- Dashboard > Authentication > Enterprise に移動し、SAML を選択します。
- 作成したSAML接続を見つけて、Try の矢印アイコンを選択します。以前にこの接続のテストでログインしているため、直接「It works!」画面が表示されるはずです。ログイン画面が表示された場合は、テストユーザーの認証情報でログインしてください。
テストアプリケーション用の Web ページを作成する
-
HTML ページを作成し、次の HTML コードと JavaScript コードを挿入します。
{yourClientId}と{yourDomain}は、先ほど登録したアプリケーションの実際の値に置き換えてください。 (それらの値を控えていない場合は、SP テナントの Application Settings で確認できます。) -
audienceをアプリケーションに適した値に置き換えることもできますが、このテストではプレースホルダーのままで十分です。audienceパラメータを指定する場合は、Auth0 で設定済みの既存 API の識別子と一致していることを確認してください。 - HTML ファイルを、ブラウザーからアクセスできる場所に保存します。
サンプルアプリケーションをテストする
- 上で作成した HTML ファイルをブラウザで開きます。ログインボタンが表示されるはずです。
- Login をクリックします。1 つの選択肢を含む Lock ウィジェットが表示されるはずです。アプリケーションで他の接続も有効になっている場合は、画面の表示が異なることがあります。メールアドレスの入力を求められた場合は、入力するメールアドレスのドメイン名が、最初のテナントのアプリケーションの Settings ビューで入力したドメインと同じであることを確認してください。
- saml または ACCESS と表示された青いボタンをクリックします。認証情報の入力を求められるか、すぐにコールバック URL にリダイレクトされるかは、アクティブなセッションがまだあるかどうかによって異なります。
テストシナリオのトラブルシューティング
- テストを行う前に、毎回ブラウザーの履歴と Cookie を消去してください。そうしないと、ブラウザーが HTML ページの最新バージョンを読み込まなかったり、実行に影響する古い Cookie が残ったりする可能性があります。
-
やり取りの HTTP トレースを取得してください。多くのツールでは、分析用にブラウザーの HTTP トラフィックをキャプチャできます。
- “HTTP Trace” で検索して、ツールを見つけてインストールしてください。
- ログインシーケンスを最初から最後までキャプチャし、トレースを分析してください。想定どおりのシーケンスのどこまで進んでいるかを確認するには、一連の GET リクエストを追跡します。元のサイトから SP テナントにリダイレクトされ、次に IdP テナントにリダイレクトされ、ログインが必要な場合は認証情報の POST が行われ、その後コールバック URL または SP テナントにリダイレクトされ、最後にアプリケーションで指定した Callback URL にリダイレクトされるはずです。
- ブラウザーで Cookie と JavaScript が有効になっていることを確認してください。
- HTML ファイルで指定した Callback URL が、アプリケーションの Allowed Callback URLs フィールドにも含まれていることを確認してください。確認するには、Dashboard > Applications > Applications に移動し、アプリケーションの名前を選択して、Allowed Callback URLs を確認します。
- http://samltool.io ツールを使用して SAML アサーションをデコードしてください。