> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/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/ja-jp/glossary?term=idp" tip="IDプロバイダー（IdP）: デジタルIDを保存および管理するサービス。" cta="用語集の表示">IdP</Tooltip>）の両方として構成して、<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-1" href="/docs/ja-JP/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/ja-jp/glossary?term=single-sign-on" tip="シングルサインオン（SSO）: ユーザーが1つのアプリケーションにログインした後、そのユーザーを他のアプリケーションに自動的にログインさせるサービス。" cta="用語集の表示">SSO</Tooltip>）接続をテストできます。

<Frame>
  <img src="https://mintcdn.com/generaltranslationinc/tqPYu6gkIVBTtEtD/docs/images/ja-jp/cdy7uua7fh8z/7Ds9dLC3HaxGBLsG3ry7B9/b37a1c5dd22584c3af633b402ab68705/saml-case3.png?fit=max&auto=format&n=tqPYu6gkIVBTtEtD&q=85&s=6b475eecfac8b0537574dd9ae842728b" alt="プロトコル - SAML SPとしてのAuth0とIdPの図" width="900" height="177" data-path="docs/images/ja-jp/cdy7uua7fh8z/7Ds9dLC3HaxGBLsG3ry7B9/b37a1c5dd22584c3af633b402ab68705/saml-case3.png" />
</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つのフェデレーションを構成します。

<div id="create-idp-tenant">
  ## IdPテナントの作成
</div>

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

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

   <Frame>
     <img src="https://mintcdn.com/generaltranslationinc/xDgF_gm8-0tTk54s/docs/images/ja-jp/cdy7uua7fh8z/53KetqhNIGDs6N5cqJdQtz/56bfc6db04fcd17ef7440c9bfc95e885/2025-01-09_14-07-38.png?fit=max&auto=format&n=xDgF_gm8-0tTk54s&q=85&s=6201a61e2aee7e847913b97368a4ffa4" alt="Dashboardのテナントのドロップダウンメニューにあるテナントの作成" width="321" height="529" data-path="docs/images/ja-jp/cdy7uua7fh8z/53KetqhNIGDs6N5cqJdQtz/56bfc6db04fcd17ef7440c9bfc95e885/2025-01-09_14-07-38.png" />
   </Frame>

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

<div id="configure-idp-tenant">
  ## IdPテナントの構成
</div>

セカンダリテナントを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テナントを構成するときに使用します。

<div id="create-user-to-test-saml-sequence">
  ## SAMLシーケンスをテストするユーザーを作成
</div>

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

<div id="configure-service-provider-tenant">
  ## サービス プロバイダー テナントの構成
</div>

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（作成）］** を選択します。

   <table class="table">
     <thead>
       <tr>
         <th>設定</th>
         <th>説明</th>
       </tr>
     </thead>

     <tbody>
       <tr>
         <td>Connection Name（接続名）</td>
         <td>`SAML-Auth0-IDP`などの名前を入力します。</td>
       </tr>

       <tr>
         <td>Sign In URL（サインインURL）</td>
         <td>上でコピーしたSAMLプロトコルのURLの値を入力します。</td>
       </tr>

       <tr>
         <td>Sign Out URL（サインアウトURL）</td>
         <td>上のサインインURLと同じURLを入力します。</td>
       </tr>

       <tr>
         <td>X509 Signing Certificate（X509署名証明書）</td>
         <td>赤の **［UPLOAD CERTIFICATE...（証明書のアップロード）］** ボタンをクリックし、上でダウンロードした`.pem`ファイルを選択します。</td>
       </tr>
     </tbody>
   </table>
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アサーションの送信先を認識できるようにします。

<div id="add-service-provider-metadata-to-idp">
  ## サービス プロバイダー メタデータをIdPに追加
</div>

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（有効）］** を選択します。

<div id="test-idp">
  ## IdPのテスト
</div>

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

<div id="create-application-to-test-saml-connection">
  ## SAML接続をテストするためのアプリケーションの作成
</div>

作成した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接続を見つけて有効にします。

<div id="test-connection-between-service-and-identity-provider">
  ## サービスとIDプロバイダー間の接続をテストします
</div>

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

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

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

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

<div id="create-a-web-page-for-test-application">
  ## テスト アプリケーション用のWebページを作成
</div>

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ファイルを、ブラウザーからアクセスできる場所に保存します。

<div id="test-sample-application">
  ## アプリケーションをテスト
</div>

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

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

<div id="troubleshoot-test-scenario">
  ## テストシナリオのトラブルシューティング
</div>

* テストの前に、毎回ブラウザーの履歴とクッキーを消去します。そうしないと、ブラウザーが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アサーションをデコードします。

<div id="learn-more">
  ## もっと詳しく
</div>

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