> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Auth0をサービス プロバイダーおよびIDプロバイダーとして使用したSAML SSOのテスト

> テスト用に、サービスプロバイダーとIDプロバイダーの両方としてAuth0を使用したSAML SSOを構成する方法について説明します。

Auth0をサービス プロバイダー（SP）と IDプロバイダー（<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-2" href="/docs/ja-jp/glossary?term=idp" tip="IDプロバイダー（IdP）: デジタルIDを保存および管理するサービス。" cta="用語集の表示">IdP</Tooltip>）の両方として構成して、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-jp/glossary?term=security-assertion-markup-language" tip="Security Assertion Markup Language（SAML）: パスワードなしに二者間で認証情報を交換できる標準化プロトコル。" cta="用語集の表示">SAML</Tooltip> シングルサインオン（<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-jp/glossary?term=single-sign-on" tip="シングルサインオン（SSO）: ユーザーが1つのアプリケーションにログインした後、そのユーザーを他のアプリケーションに自動的にログインさせるサービス。" cta="用語集の表示">SSO</Tooltip>）接続をテストできます。

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/ja-jp/cdy7uua7fh8z/7Ds9dLC3HaxGBLsG3ry7B9/b37a1c5dd22584c3af633b402ab68705/saml-case3.png" alt="プロトコル - SAML SPとしてのAuth0とIdPの図" />
</Frame>

Auth0は、SAML 1.1またはSAML 2.0を使用したSAML構成でSPとしてのAuth0の使用のみをサポートしますが、SAML 2.0を使用したSAML構成ではIdPとしてAuth0を使用できます。

Auth0を使用してSAML SSOを通じてユーザー認証を行うテスト用の簡単なサンプルアプリケーションをセットアップできます。このアプリケーションでは、1つのテナントをSAML SP、もう1つのテナントをSAML IdPとして使用します。1つのテナントに対して2つのフェデレーションを構成します。

## IdPテナントの作成

SAML IdPとして機能するセカンダリAuth0テナントがまだない場合は、作成する必要があります。

1. [［Auth0 Dashboard］](https://manage.auth0.com/#/)に移動し、テナント名を選択して **［Create Tenant（テナントの作成）］** を選択します。

   <Frame>
     <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/ja-jp/cdy7uua7fh8z/53KetqhNIGDs6N5cqJdQtz/56bfc6db04fcd17ef7440c9bfc95e885/2025-01-09_14-07-38.png" alt="Dashboardのテナントのドロップダウンメニューにあるテナントの作成" />
   </Frame>

2. **［Domain（ドメイン）］** を入力し、 **［Region（リージョン）］** を選択して、 **［Create（作成）］** をクリックします。

## IdPテナントの構成

セカンダリテナントをIdPとして構成し、SPテナントを表すアプリケーションを登録します。

1. IdPテナントに切り替えます。テナントメニューを開き、 **［Switch Tenant（テナントの切り替え）］** を選択して、IdPテナントを選択します。
2. [［Dashboard］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動して、 **［Create Application（アプリケーションの作成）］** を選択します。
3. アプリケーションの名前`（my-auth0-idpなど）`を入力し、アプリケーションのタイプとして **［Regular Web Application（通常のWebアプリケーション）］** を選択して、 **［Create（作成）］** を選択します。
4. **［Settings（設定）］** ページの下までに移動し、 **［Show Advanced Settings（詳細設定を表示）］** を選択します。
5. **［Certificates（証明書）］** ビューに切り替え、 **［Download Certificate（証明書のダウンロード）］** を選択し、 **［PEM］** を選択します。証明書がダウンロードされます。この証明書は、SPテナントを構成するときに使用します。
6. **［Endpoints（エンドポイント）］** ビューに切り替えて、 **［SAML Protocol（SAML プロトコル）］URL** を見つけて、その内容をコピーします。このURLは、SPテナントを構成するときに使用します。

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

1. [［Dashboard］>［User Management（ユーザー管理）］>［Users（ユーザー）］](https://manage.auth0.com/#/users)に移動し、 **［Create User（ユーザーの作成）］** を選択します。
2. テストユーザーのメールアドレスを入力します。ドメイン名は、次に設定するサービス プロバイダー テナントのメール ドメインと一致する必要があります。たとえば、ユーザーが `john.doe@exampleco.com` の場合、メール ドメインには`exampleco.com`と入力する必要があります。
3. テストユーザーのパスワードを入力します。
4. **［Connection（接続）］** にはデフォルト値を使用します。
5. **［Create（作成）］** を選択します。

## サービス プロバイダー テナントの構成

SAMLプロトコルを使用してSSOのIdPテナントと通信するようにSPテナントを構成します。

1. SPテナントに切り替えます。テナントメニューを開き、 **［Switch Tenant（テナントの切り替え）］** を選択して、SPテナントを選択します。
2. [［Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］](https://manage.auth0.com/#/connections/enterprise)に移動し、 **［SAML］** を選択します。
3. **［Create Connection（接続を作成する）］** を選択します。
4. 以下の情報を入力して、 **［Create（作成）］** を選択します。

   \| 設定 | 説明 |
   \| --- | --- |
   \| Connection Name（接続名） | `SAML-Auth0-IDP`などの名前を入力します。 |
   \| Sign In URL（サインインURL） | 上でコピーしたSAMLプロトコルのURLの値を入力します。 |
   \| Sign Out URL（サインアウトURL） | 上のサインインURLと同じURLを入力します。 |
   \| X509 Signing Certificate（X509署名証明書） | 赤の **［UPLOAD CERTIFICATE...（証明書のアップロード）］** ボタンをクリックし、上でダウンロードした`.pem`ファイルを選択します。 |
5. **［Setup（セットアップ）］** ビューに切り替えて、テナントに関連付けられているメタデータを表示します。URLをコピーして保存します。
6. 新しいブラウザータブを開き、前にコピーしたURLに移動します。（Auth0 Docsサイトにログインしている場合は、設定に正しい値が事前に入力されます。）

   1. **［Entity ID（エンティティ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}`.これは、IdPテナントからSAMLアサーションを受信するSPテナント上のURLです。次のセクションでは、このURLを IdP テナントに提供して、SAMLアサーションの送信先を認識できるようにします。

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

SPテナントに関する情報をIdPテナントに追加して、SAML認証要求の受信方法と応答方法を認識できるようにします。

1. IdPテナントに切り替えます。テナントメニューを開き、 **［Switch Tenant（テナントの切り替え）］** を選択して、IdPテナントを選択します。
2. [［Dashboard］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動し、以前に作成したIdPアプリケーションの名前を選択して表示します。
3. **［Addons（アドオン）］** ビューに切り替えます。
4. **［SAML2 Web App（SAML2 Webアプリ）］** を選択してそのオプションを表示し、 **［Application Callback（アプリケーションコールバック）URL］** を見つけます。以前にコピーした **AssertionConsumerServiceURL** を貼り付けます。
5. **［Settings（設定）］** コードブロックで、`［audience（オーディエンス）］`ユーザーキーを見つけてコメントを解除し、行の末尾のコンマを削除して、元の値（`urn:foo`）を前にコピーした **［Entity ID（エンティティID値）］** （サービスプロバイダーテナントを構成したときに手順4で作成した接続名を含む）に置き換えます。新しい行は次のようになります。「`オーディエンス」:「urn:auth0:{yourTenant}:{yourConnectionName}」`。
6. **［Enabled（有効）］** を選択します。

## IdPのテスト

1. 同じウィンドウで上にスクロールし、 **Debug［（デバッグ）］** を選択します。ログイン画面が表示されます。
2. 上で作成したテストユーザーの資格情報を使用してログインします。構成が正しい場合は、「成功しました!」と、IdP に送信されるエンコードおよびデコードされたSAML応答が表示されます。
3. デコードされた SAML 応答を確認し、`<saml:Audience>`を見つけて、前の画面で入力した **［Entity ID（エンティティ ID）］** と一致していることを確認します。
4. **［Close this window（このウィンドウを閉じる）］** を選択します。

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

作成したSAML接続をテストするための簡単なアプリケーションを作成します。

1. SPテナントに切り替えます。テナントメニューを開き、 **［Switch Tenant（テナントの切り替え）］** を選択して、SPテナントを選択します。
2. [［Dashboard］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動して、 **［Create Application（アプリケーションの作成）］** を選択します。
3. アプリケーション名を入力し、アプリケーション タイプとして **［Regular Web Application（通常のWebアプリケーション）］** を選択してから、 **［Create（作成）］** を選択します。
4. **［Domain（ドメイン）］** と **［Client ID（クライアントID）］** の値をコピーして保存します。
5. **［Allowed Callback URL（許可されているコールバックURL）］** フィールドを見つけて、`http://jwt.io`と入力します。これは、認証後にユーザーがリダイレクトされる許可されたコールバックURLのリストです。ここに入力するURLは、次の手順で作成するHTMLコード内のコールバックURLと一致する必要があります。通常は、アプリケーションのURLを入力しますが、この例を簡単にするために、テストユーザーはAuth0 JWTオンラインツールに送信されます。このツールは、認証シーケンスの最後に返されるJSON Webトークン (JWT) に関する情報を提供します。
6. **［Save Changes（変更の保存）］** を選択します。
7. **［（接続）］** ビューに切り替えて、 **［Enterprise（エンタープライズ）］** セクションで作成したSAML接続を見つけて有効にします。

## サービスとIDプロバイダー間の接続をテストします

SPテナントとIdPテナント間のSAML構成が機能していることを確認するためにテストします。

1. [［Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］](https://manage.auth0.com/#/connections/enterprise)に移動し、 **［SAML］** を選択します。
2. 作成した SAML 接続を見つけて、 **［Try（試す）］** 矢印アイコンを選択します。この接続のテスト中にログインしたことがあるので、「成功しました!」画面に直接送信されます。ログイン画面が表示されたら、テストユーザーの資格情報を使用してログインします。

構成が正しくセットアップされている場合は、「成功しました!」と表示され、IdPテナントからAuth0テナントに送信されたSAML認証アサーションの内容がページに表示されます。

正しく構成されていない場合は、手順を再確認します。それでも問題が解決しない場合は、このドキュメントの最後にあるトラブルシューティングのセクションを参照してください。

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

SAMLログインシーケンスをトリガーするLockウィジェットを呼び出す簡単なWebページを作成します。

1. HTMLページを作成し、次のHTMLとJavaScriptコードを挿入します。`{yourClientId}`と`{yourDomain}`を、上記で登録したアプリケーションの実際の値に置き換えます。（これらの値をメモしていない場合は、SPテナントの **［Application Settings（アプリケーションの設定）］** で確認できます。）

   ```html lines expandable theme={null}
   <!DOCTYPE html>
   <html lang="en">
   <body>
     <button type="button" onclick="login()">Log in</button>
     <script src="https://cdn.auth0.com/js/auth0/9.19.0/auth0.min.js"></script>
     <script>
       var auth0 = new auth0.WebAuth({
         domain: '{yourDomain}',
         clientID: '{yourClientId}',
         redirectUri: 'URL_TO_THIS_PAGE',
         responseType: 'token id_token',
         scope: 'openid email profile'
       })

       auth0.parseHash(function(err, data) {
         if (err) {
           console.log(err)
         }

         if (data) {
           console.log('Login successful!')
           console.log(data)
         }
       })

       window.login = function() {
         auth0.authorize()
       }
     </script>

   </body>
   </html>
   ```

2. また、`［audience（オーディエンス）］`をアプリケーションの適切な値に置き換えることもできますが、このテストの目的では、プレースホルダーで十分です。`［audience（オーディエンス）］`パラメーターを指定する場合は、Auth0で構成した既存のAPIの識別子と一致することを確認してください。

3. HTMLファイルを、ブラウザーからアクセスできる場所に保存します。

## アプリケーションをテスト

SPテナントで作成したAuth0 SAML接続を使用してIdPテナントに対してSSO認証を実行するサンプルHTMLアプリケーションをテストします。

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

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

* テストの前に、毎回ブラウザーの履歴とクッキーを消去します。そうしないと、ブラウザーがHTMLページの最新バージョンを取得できないか、実行に影響する古いクッキーが残っている可能性があります。
* インタラクションのHTTPトレースをキャプチャします。多くのツールは、分析のためにブラウザーからHTTPトラフィックをキャプチャします。

  * インターネットで「HTTP トレース」を検索して、ツールを見つけてインストールします。
  * ログインシーケンスを最初から最後までキャプチャし、トレースを分析します。GETのシーケンスを追跡して、予想されるシーケンスのどこまで取得したかを確認します。元のサイトからSPテナント、次にIdPテナントへのリダイレクト、ログインする必要がある場合は資格情報のPOST、コールバックURLまたは SP テナントへのリダイレクト、そしてアプリケーションで指定された **コールバックURL** へのリダイレクトが表示されます。
* ブラウザーでクッキーとJavaScriptが有効になっていることを確認してください。
* HTML ファイルで指定された **コールバックURL** が、アプリケーションの **［Allowed Callback URLs（許可されたコールバック URL）］** フィールドにもリストされていることを確認します。これを行うには、[［Dashboard］>［Applications（アプリケーション）］>［Applications（アプリケーション）］](https://manage.auth0.com/#/applications)に移動し、アプリケーションの名前を選択して、 **［Allowed Callback URLs（許可されたコールバック URL）］** を見つけます。
* [http://samltool.io](http://samltool.io)ツールを使用してSAMLアサーションをデコードします。

## もっと詳しく

* [SAMLシングルサインオン統合](/docs/ja-jp/authenticate/protocols/saml/saml-sso-integrations)
* [SAMLアサーションをカスタマイズする](/docs/ja-jp/authenticate/protocols/saml/saml-configuration/customize-saml-assertions)
* [SAML統合でユーザーをデプロビジョニングする](/docs/ja-jp/authenticate/protocols/saml/saml-configuration/deprovision-users-in-saml-integrations)
* [SAML IDプロバイダーの構成設定](/docs/ja-jp/authenticate/protocols/saml/saml-identity-provider-configuration-settings)
* [SAML要求の署名と暗号化](/docs/ja-jp/authenticate/protocols/saml/saml-sso-integrations/sign-and-encrypt-saml-requests)
* [SAML構成のトラブルシューティング](/docs/ja-jp/troubleshoot/authentication-issues/troubleshoot-saml-configurations)
