> ## 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.

# SAMLサービスプロバイダーとしてのAuth0の構成

> Auth0をSAMLフェデレーションのサービスプロバイダーとして構成する方法を説明します。

Auth0を<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>フェデレーションのサービスプロバイダー(SP)として構成するために、Auth0でエンタープライズ接続を作成し、接続するメタデータでSAML 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>)を更新する必要があります。

Auth0は、SAML 1.1またはSAML 2.0プロトコルに準拠する構成でAuth0をSPとして使用することをサポートしています。

<div id="get-metadata-and-certificate-from-the-idp">
  ## IdPからメタデータと署名証明書を入手
</div>

Auth0で接続を作成するには、IdPから複数の構成メタデータを収集する必要があります。

<table class="table">
  <thead>
    <tr>
      <th><b>フィールド</b></th>
      <th><b>説明</b></th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>サインインURL</td>
      <td>SAML認証要求が送信されるURL。これはシングルサインオン（SSO）エンドポイントとも呼ばれます。</td>
    </tr>

    <tr>
      <td>サインアウトURL</td>
      <td>SAMLログアウト要求が送信されるURL。これはシングルサインアウト（SLO）エンドポイントとも呼ばれます。</td>
    </tr>

    <tr>
      <td>X509署名証明書</td>
      <td>SPによって要求された公開鍵証明書。これによって、IdPでデジタル署名された認証アサーションの署名を検証します。Auth0は、.pem形式と.cer形式を受け入れます。</td>
    </tr>
  </tbody>
</table>

<div id="create-saml-enterprise-connection-in-auth0">
  ## Auth0でSAMLエンタープライズ接続を作成する
</div>

<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=auth0-dashboard" tip="Auth0 Dashboard: サービスを構成するためのAuth0の主製品。" cta="用語集の表示">Auth0 Dashboard</Tooltip>またはAuth0 <Tooltip data-tooltip-id="react-containers-DefinitionTooltip-0" href="/docs/ja-JP/ja-jp/glossary?term=management-api" tip="Management API: 顧客が管理タスクを実行できるようにするための製品。" cta="用語集の表示">Management API</Tooltip>を使用してSAMLエンタープライズ接続を作成できます。

<Tabs>
  <Tab title="Dashboard">
    1. [**［Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］** ](https://manage.auth0.com/#/connections/enterprise/samlp)に移動し、 **［SAML］** を選択します。
    2. **［Create Connection（接続を作成する）］** を選択します。
    3. 次の設定を構成します：

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

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

               <tr>
                 <td>Sign In URL（サインインURL）</td>
                 <td>IdPから取得した\_\_サインインURL\_\_を入力します。</td>
               </tr>

               <tr>
                 <td>X509 Signing Certificate（X509署名証明書）</td>
                 <td>IdPから取得したX509署名証明書ファイル（`.pem`または`.cer`の形式）をアップロードします。</td>
               </tr>

               <tr>
                 <td>Enable Sign Out（サインアウトの有効化）</td>
                 <td>\_\_サインアウトURL\_\_フィールドを有効にします。</td>
               </tr>

               <tr>
                 <td>Sign Out URL（サインアウトURL）</td>
                 <td>IdPから取得した\_\_サインアウトURL\_\_を入力します。</td>
               </tr>

               <tr>
                 <td>User ID Attribute（ユーザーID属性）</td>
                 <td>SAMLトークンに含まれる属性を入力します。この属性はAuth0の`user_id`プロパティにマッピングされます。設定しない場合は、`user_id`が（ここで記載する優先順に）以下から取得されます：<ul><li>`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier`</li><li>`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn`</li><li>`http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`</li></ul></td>
               </tr>

               <tr>
                 <td>Debug Mode（デバッグモード）</td>
                 <td>\_\_デバッグモード\_\_を有効にすると、より詳細なログを記録します。</td>
               </tr>

               <tr>
                 <td>Sign Request（要求に署名する）</td>
                 <td>SAML認証要求が署名されます。</td>
               </tr>

               <tr>
                 <td>Sign Request Algorithm（要求署名アルゴリズム）</td>
                 <td>使用するハッシュアルゴリズムをドロップダウンメニューから選択します。</td>
               </tr>

               <tr>
                 <td>Sign Request Algorithm Digest（要求署名アルゴリズムのダイジェスト）</td>
                 <td>アサーションの有効性を確認するアルゴリズムをドロップダウンメニューから選択します。</td>
               </tr>

               <tr>
                 <td>Protocol Binding（プロトコルバインディング）</td>
                 <td>ドロップダウンメニューから以下のいずれかを選択します。<ul><li>`HTTP-Redirect`：URLパラメーターにメッセージを含めて送信します。</li><li>`HTTP-POST`：HTMLフォームにメッセージを含めて送信します。</li></ul></td>
               </tr>

               <tr>
                 <td>Sync user profile attributes at each login（毎回のログインでユーザープロファイル属性を同期する）</td>
                 <td>ログインするたびにユーザープロファイル属性が同期されます。</td>
               </tr>
             </tbody>
           </table>
    4. **［Create（作成）］** を選択します。
  </Tab>

  <Tab title="Management API">
    Auth0 Management APIの[接続作成](https://auth0.com/docs/api/management/v2#!/Connections/post_connections)エンドポイントは、SAML接続を作成する際に`options`オブジェクトの次のプロパティをサポートします：

    <table class="table">
      <thead>
        <tr>
          <th><b>フィールド</b></th>
          <th><b>タイプ</b></th>
          <th><b>必須</b></th>
          <th><b>説明</b></th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td>`signInEndpoint`</td>
          <td>文字列</td>
          <td>必須</td>
          <td>IdPの\_\_サインインURL\_\_。</td>
        </tr>

        <tr>
          <td>`signingCert`</td>
          <td>文字列</td>
          <td>必須</td>
          <td>Base64でエンコードされたX509署名証明書（`.pem`または`.cer`形式）の内容。</td>
        </tr>

        <tr>
          <td>`debug`</td>
          <td>ブール値</td>
          <td>任意</td>
          <td>\_\_デバッグモード\_\_を切り替えます。このモードでは、認証プロセス中に詳細なログが記録されます。運用環境で使用される接続の場合は`false`に設定します。</td>
        </tr>

        <tr>
          <td>`destinationUrl`</td>
          <td>文字列</td>
          <td>任意</td>
          <td>Auth0がSAML認証要求を送信するURL。プロキシゲートウェイを使用する場合にのみ必要です。</td>
        </tr>

        <tr>
          <td>`digestAlgorithm`</td>
          <td>文字列</td>
          <td>任意</td>
          <td>認証要求のダイジェスト要素を暗号化するために使用されるアルゴリズム。<br /><br />受け入れられる値は`sha256`と`sha1`です。</td>
        </tr>

        <tr>
          <td>`disableSignout`</td>
          <td>ブール値</td>
          <td>任意</td>
          <td>\_\_サインアウトURL\_\_を切り替えます。`false`の場合、ログアウト要求を受け入れるために\_\_サインアウトURL\_\_を指定する必要があります。`true`の場合、ログアウト要求は\_\_サインインURL\_\_に送信されます。</td>
        </tr>

        <tr>
          <td>`fieldsMap`</td>
          <td>オブジェクト</td>
          <td>任意</td>
          <td>IdPからの認証応答に適用される属性マッピングが含まれます。<br /><br />例：`"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"`。</td>
        </tr>

        <tr>
          <td>`idpinitiated`</td>
          <td>オブジェクト</td>
          <td>任意</td>
          <td>IdP起点SSOのオプションが含まれます：<ul><li>`enabled`：ブール値。IdP起点SSOを切り替えます。</li><li>`client_id`：文字列。デフォルトアプリケーションのクライアントID。</li><li>`client_protocol`：文字列。デフォルトアプリケーションとの通信に使用される応答プロトコル。受け入れられる値は、`oauth2`、`samlp`、および`wsfed`です。</li><li>`client_authorizequery`：文字列。デフォルトアプリケーションに送信されるクエリ文字列。</li></ul></td>
        </tr>

        <tr>
          <td>`protocolBinding`</td>
          <td>文字列</td>
          <td>任意</td>
          <td>認証要求に使用されるプロトコルバインディング。<br /><br />受け入れられる値は次のとおりです：<ul><li>`urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect`</li><li>`urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST`</li></ul></td>
        </tr>

        <tr>
          <td>`recipientUrl`</td>
          <td>文字列</td>
          <td>任意</td>
          <td>IdPがSAML認証応答を送信するURL。プロキシゲートウェイを使用する場合にのみ必要です。</td>
        </tr>

        <tr>
          <td>`signatureAlgorithm`</td>
          <td>文字列</td>
          <td>任意</td>
          <td>認証要求に署名するために使用されるアルゴリズム。<br /><br />受け入れられる値は`rsa-sha256`および`rsa-sha1`です。</td>
        </tr>

        <tr>
          <td>`signSAMLRequest`</td>
          <td>ブール値</td>
          <td>任意</td>
          <td>Auth0によって送信された認証要求の署名を切り替えます。</td>
        </tr>

        <tr>
          <td>`user_id_attribute`</td>
          <td>文字列</td>
          <td>任意</td>
          <td>ユーザーIDプロパティにマッピングする認証応答内の属性の名前。このフィールドは、`fieldsMap`オブジェクトの`user_id`プロパティのマッピングよりも優先されます。</td>
        </tr>
      </tbody>
    </table>

    #### 要求例

    ```json lines expandable theme={null}
    {
    	"strategy": "samlp",
    	"name": "example-samlp-connection",
    	"options": {
    		"signingCert": "{X509_CERTIFICATE_IN_BASE64}",
    		"signInEndpoint": "https://example.com/samlp/login",
    		"disableSignout": false,
    		"signOutEndpoint": "https://example.com/samlp/logout",
    		"fieldsMap": {
    			"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
    			"user_id": [
    				"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
    				"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn",
    				"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
    			],
    			"given_name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
    			"address_name": "http://schemas.auth0.com/address_name",
    			"address_street_address": "http://schemas.auth0.com/address_street_address"
    		},
    		"user_id_attribute": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
    		"idpinitiated": {
    			"enabled": true,
    			"client_id": "{DEFAULT_APPLICATION_CLIENT_ID}",
    			"client_protocol": "oauth2",
    			"client_authorizequery": "response_type=code&scope=openid email profile"
    		},
    		"signSAMLRequest": true,
    		"signatureAlgorithm": "rsa-sha256",
    		"digestAlgorithm": "sha256",
    		"protocolBinding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect",
    		"debug": true
    	}
    }
    ```
  </Tab>
</Tabs>

<div id="configure-saml-connection-for-proxy-gateways">
  ### プロキシゲートウェイのSAML接続を構成する
</div>

プロキシゲートウェイの背後にAuth0がある場合は、それに応じてSAML接続の`destinationUrl`フィールドと`recipientUrl`フィールドを構成する必要があります。

1. Management API[接続を取得](https://auth0.com/docs/api/management/v2/connections/get-connections-by-id)エンドポイントを使用してSAML接続の現在の構成を取得します。
2. 返された応答から`options`オブジェクトの値をコピーします。
3. `options`オブジェクトに次のフィールドを追加します。

   <table class="table">
     <thead>
       <tr>
         <th><b>フィールド</b></th>
         <th><b>タイプ</b></th>
         <th><b>値</b></th>
       </tr>
     </thead>

     <tbody>
       <tr>
         <td>`destinationUrl`</td>
         <td>文字列</td>
         <td>プロキシゲートウェイのURL。</td>
       </tr>

       <tr>
         <td>`recipientUrl`</td>
         <td>文字列</td>
         <td>プロキシゲートウェイのURL。</td>
       </tr>
     </tbody>
   </table>
4. 要求本文内の更新された`options`ブジェクト全体を使用してManagement API[接続の更新](https://auth0.com/docs/api/management/v2/connections/patch-connections-by-id)エンドポイントを呼び出します。

<div id="customize-the-request-template">
  ### 要求テンプレートのカスタマイズ
</div>

Auth0がIdPに認証要求を送信すると、要求本文に`AuthnRequest`オブジェクトが含まれます。このオブジェクトに使用されるテンプレートをカスタマイズできます。

1. [［Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］>［SAML］](https://manage.auth0.com/#/connections/enterprise/samlp)に移動し、接続を選択します。
2. **［Settings（設定）］** ビューに切り替えて、 **［Request Template（テンプレート要求）］** フィールドを見つけます。
3. テンプレートを修正します。
4. **［Save Changes（変更の保存）］** を選択します。

<div id="template-variables">
  #### テンプレート変数
</div>

変数は、`@@VariableName@@`構文を使用して`AuthnRequest`テンプレートに配置できます。次の変数を使用できます。

<table class="table">
  <thead>
    <tr>
      <th><b>名前</b></th>
      <th><b>説明</b></th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`AssertionConsumerServiceURL`</td>
      <td>ユーザーがサインインすると、IdPが応答を送信するURLです。使用する場合には、要求テンプレートに`ProtocolBinding`属性を含めます。</td>
    </tr>

    <tr>
      <td>`Connection.&lt;options-key&gt;`</td>
      <td>Auth0 Management APIの<a href="https://auth0.com/docs/ja-jp/api/management/v2/#!/Connections/get_connections_by_id">接続取得</a>エンドポイントから返された接続の`options`の値にアクセスするには、`Connection`キーにドット表記を使用します。たとえば、接続が`options.some_property: "value"`を含む場合には、テンプレートで`@@Connection.some_property@@`を使用することができます。</td>
    </tr>

    <tr>
      <td>`Destination`</td>
      <td>Auth0が要求を送信するURLです。これは接続に構成された\_\_サインインURL\_\_になります。</td>
    </tr>

    <tr>
      <td>`ID`</td>
      <td>トランザクションIDです。</td>
    </tr>

    <tr>
      <td>`IssueInstant`</td>
      <td>トランザクションのタイムスタンプです。</td>
    </tr>

    <tr>
      <td>`Issuer`</td>
      <td>`urn`形式のSPエンティティIDです。<br /><br />例：`urn:auth0:&lt;YOUR_AUTH0_TENANT_NAME&gt;:&lt;YOUR_AUTH0_CONNECTION_NAME&gt;`</td>
    </tr>

    <tr>
      <td>`LoginHint`</td>
      <td>ログインしようとしているユーザーのユーザー名またはメールアドレスです。<a href="https://auth0.com/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first">Identifier First認証</a>では、Auth0はこの値をIdPに送信して、IdPのログインフォームに前もって入力しておくことができます。</td>
    </tr>

    <tr>
      <td>`ProtocolBinding`</td>
      <td>プロトコルの<a href="https://www.ibm.com/support/knowledgecenter/en/SSPREK_9.0.4/com.ibm.isam.doc/config/concept/fed_SAML20_bindings.html">バインドタイプ</a>です。</td>
    </tr>

    <tr>
      <td>`ProviderName`</td>
      <td>要求を始めたアプリケーションの名前です。これは常にAuth0のテナント名を返します。</td>
    </tr>

    <tr>
      <td>`AssertServiceURLAndDestination`</td>
      <td>廃止予定です。新しい構成では、この代わりに、`AssertionConsumerServiceURL`と`Destination`を使用してください。</td>
    </tr>
  </tbody>
</table>

<div id="configure-the-idp">
  ## IdPを構成する
</div>

[SAML IDプロバイダーの構成設定](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-identity-provider-configuration-settings)に移動して、IdPに提供する必要のあるメタデータを見つけます。

Auth0は、SAML 1.1またはSAML 2.0プロトコルに準拠する構成ですべてのSAML IdPをサポートしています。特定のプロバイダーを設定するための詳細な手順は次のとおりです。

* [ADFS](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-adfs-saml-connections)
* [Okta](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-okta-as-saml-identity-provider)
* [OneLogin](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-onelogin-as-saml-identity-provider)
* [Ping](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-pingfederate-as-saml-identity-provider)
* [Salesforce](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-salesforce-as-saml-identity-provider)
* [SiteMinder](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-siteminder-as-saml-identity-provider)
* [SSOCircle](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-sso-integrations/configure-auth0-saml-service-provider/configure-ssocircle-as-saml-identity-provider)

<div id="test-connection">
  ## 接続をテストする
</div>

Dashboardで接続をテストするには：

1. ［[Dashboard］>［Authentication（認証）］>［Enterprise（エンタープライズ）］>［SAML](https://manage.auth0.com/#/connections/enterprise/samlp)］に移動します。
2. 作成した接続を見つけて、 **...** （3つのドット）メニュー アイコンを選択し、 **［Try（試す）］** を選択します。
3. ユニバーサルログインページが表示され、資格情報の入力を求められます。
4. IdPに存在するユーザーのメール アドレスを入力します。[ホーム領域検出](https://auth0.com/docs/authenticate/login/auth0-universal-login/identifier-first#define-home-realm-discovery-identity-providers)を構成した場合は、指定されたドメインのいずれかを使用するメールアドレスを入力してください。
5. IdPのログイン画面にリダイレクトされたら、通常どおりログインします。
6. IdPからAuth0に送信された認証アサーションの内容を表示するAuth0のページにリダイレクトされます。

<div id="troubleshoot-connection">
  ## 接続のトラブルシューティング
</div>

接続が期待どおりに機能しない場合は、次の手順を試してください。

* 各テストの前にブラウザの履歴、クッキー、キャッシュをクリアしてください。そうしないと、ブラウザが最新の構成情報を取得できなかったり、実行に影響する古いクッキーが残る可能性があります。
* ブラウザでクッキーが許可され、JavaScriptが有効になっていることを確認してください。
* トランザクションの[HARファイルをキャプチャ](https://auth0.com/docs/troubleshoot/troubleshooting-tools/generate-and-analyze-har-files)し、[Auth0 SAMLツール](http://samltool.io/)を使用してSAMLアサーションをデコードし、そのコンテンツを確認します。

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

* [SAMLアサーションをカスタマイズする](/docs/ja-JP/ja-jp/authenticate/protocols/saml/saml-configuration/customize-saml-assertions)
* [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)
* [SAMLエラーのトラブルシューティング](/docs/ja-JP/ja-jp/troubleshoot/authentication-issues/saml-errors)
