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

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

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

<Tooltip tip="Security Assertion Markup Language (SAML): パスワードを使わずに 2 者間で認証情報を交換できるようにする標準化されたプロトコル。" cta="用語集を表示" href="/ja/docs/glossary?term=SAML">SAML</Tooltip> フェデレーションで Auth0 をサービスプロバイダー (SP) として構成するには、まず Auth0 でエンタープライズ接続を作成し、次にその接続のメタデータを使用して SAML の <Tooltip tip="Security Assertion Markup Language (SAML): パスワードを使わずに 2 者間で認証情報を交換できるようにする標準化されたプロトコル。" cta="用語集を表示" href="/ja/docs/glossary?term=identity+provider">IDプロバイダー</Tooltip> (IdP) を更新する必要があります。

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

<div id="get-metadata-and-certificate-from-the-idp">
  ## IdP からメタデータと証明書を取得する
</div>

Auth0 で接続を作成するには、IdP からいくつかの設定メタデータを収集する必要があります。

| Field                    | Description                                                                            |
| ------------------------ | -------------------------------------------------------------------------------------- |
| Sign In URL              | SAML 認証リクエストの送信先 URL です。シングルサインオン (SSO) エンドポイントとも呼ばれます。                                |
| Sign Out URL             | SAML ログアウトリクエストの送信先 URL です。シングルログアウト (SLO) エンドポイントとも呼ばれます。                             |
| X509 Signing Certificate | IdP によってデジタル署名された認証アサーションの署名を SP が検証するために必要な公開鍵証明書です。Auth0 は .pem 形式と .cer 形式に対応しています。 |

<div id="create-saml-enterprise-connection-in-auth0">
  ## Auth0 で SAML Enterprise 接続を作成する
</div>

<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要な製品です。" cta="用語集を表示" href="/ja/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> または Auth0 の <Tooltip tip="Management API: 管理タスクを実行するための製品です。" cta="用語集を表示" href="/ja/docs/glossary?term=Management+API">Management API</Tooltip> を使用して、SAML Enterprise 接続を作成できます。

<Tabs>
  <Tab title="ダッシュボード">
    1. [**Dashboard > Authentication > Enterprise**](https://manage.auth0.com/#/connections/enterprise/samlp) に移動し、**SAML** を選択します。
    2. **Create Connection** を選択します。
    3. 次の設定を行います。

    | Setting                | Description                                                                                                                                                                                                                                                                                                                   |
    | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | 接続名                    | `SAML-SP` などの接続名を入力します。                                                                                                                                                                                                                                                                                                       |
    | サインイン URL              | IdP から取得した **Sign In URL** を入力します。                                                                                                                                                                                                                                                                                            |
    | X509 署名証明書             | IdP から取得した X509 署名証明書ファイル (`.pem` または `.cer` 形式) をアップロードします。                                                                                                                                                                                                                                                                  |
    | サインアウトを有効にする           | **Sign Out URL** フィールドを有効にします。                                                                                                                                                                                                                                                                                                |
    | サインアウト URL             | IdP から取得した **Sign Out URL** を入力します。                                                                                                                                                                                                                                                                                           |
    | ユーザー ID 属性             | Auth0 の `user_id` プロパティにマッピングする SAML トークン内の属性を入力します。設定しない場合、`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> |
    | デバッグモード                | より詳細なログを出力するには、**Debug Mode** を有効にします。                                                                                                                                                                                                                                                                                        |
    | リクエストに署名する             | 署名付きの SAML 認証リクエストを有効にします。                                                                                                                                                                                                                                                                                                    |
    | リクエスト署名アルゴリズム          | ドロップダウンメニューから、使用するハッシュアルゴリズムを選択します。                                                                                                                                                                                                                                                                                           |
    | リクエスト署名アルゴリズム ダイジェスト   | ドロップダウンメニューから、アサーションの有効性の検証に使用するアルゴリズムを選択します。                                                                                                                                                                                                                                                                                 |
    | プロトコルバインディング           | ドロップダウンメニューから、次のいずれかのオプションを選択します。<ul><li>`HTTP-Redirect`: URL パラメーターでメッセージを送信します。</li><li>`HTTP-POST`: HTML フォームでメッセージを送信します。</li></ul>                                                                                                                                                                                       |
    | ログインごとにユーザープロファイル属性を同期 | ログインのたびにユーザープロファイル属性を同期するには、これを有効にします。                                                                                                                                                                                                                                                                                        |

    4. **Create** を選択します。
  </Tab>

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

    | 項目                   | 型      | 必須 | 説明                                                                                                                                                                                                                                                                                                                                   |
    | -------------------- | ------ | -- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | `signInEndpoint`     | String | 必須 | IdP の**サインイン URL**。                                                                                                                                                                                                                                                                                                                  |
    | `signingCert`        | String | 必須 | Base64 でエンコードされた X509 署名証明書 (`.pem` または `.cer` 形式) の内容。                                                                                                                                                                                                                                                                              |
    | `debug`              | ブール値   | 任意 | **デバッグ モード**を切り替えます。有効にすると、認証プロセス中により詳細なログが出力されます。本番環境で使用する接続では、`false` に設定してください。                                                                                                                                                                                                                                                   |
    | `destinationUrl`     | 文字列    | 任意 | Auth0 が SAML 認証リクエストの送信先として使用する URL。プロキシゲートウェイを使用する場合にのみ必要です。                                                                                                                                                                                                                                                                        |
    | `digestAlgorithm`    | 文字列    | 任意 | 認証リクエストのダイジェスト要素の暗号化に使用するアルゴリズムです。<br /><br />指定可能な値は `sha256` と `sha1` です。                                                                                                                                                                                                                                                          |
    | `disableSignout`     | 真偽値    | 任意 | **Sign Out URL** の使用を切り替えます。`false` の場合、ログアウトリクエストを受け付けるには **Sign Out URL** を指定する必要があります。`true` の場合、ログアウトリクエストは **Sign In URL** に送信されます。                                                                                                                                                                                             |
    | `fieldsMap`          | オブジェクト | 任意 | IdP からの認証レスポンスに適用する属性マッピングが含まれます。<br /><br />例: `"email": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"`.                                                                                                                                                                                                   |
    | `idpinitiated`       | オブジェクト | 任意 | IdP Initiated SSO のオプションが含まれます。<ul><li>`enabled`: Boolean。IdP Initiated SSO の有効/無効を切り替えます。</li><li>`client_id`: String。デフォルトアプリケーションのクライアントID。</li><li>`client_protocol`: String。デフォルトアプリケーションとの通信に使用されるレスポンスプロトコル。使用可能な値は `oauth2`、`samlp`、`wsfed` です。</li><li>`client_authorizequery`: String。デフォルトアプリケーションに送信されるクエリ文字列。</li></ul> |
    | `protocolBinding`    | 文字列    | 任意 | 認証リクエストで使用するプロトコルバインディング。<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>                                                                                                                                                  |
    | `recipientUrl`       | 文字列    | 任意 | IdP が SAML 認証レスポンスの送信先とする URL。プロキシゲートウェイを使用する場合にのみ必要です。                                                                                                                                                                                                                                                                              |
    | `signatureAlgorithm` | 文字列    | 任意 | 認証リクエストの署名に使用するアルゴリズムです。<br /><br />指定可能な値は `rsa-sha256` と `rsa-sha1` です。                                                                                                                                                                                                                                                            |
    | `signSAMLRequest`    | 真偽値    | 任意 | Auth0 が送信する認証リクエストに署名するかどうかを切り替えます。                                                                                                                                                                                                                                                                                                  |
    | `user_id_attribute`  | 文字列    | 任意 | 認証レスポンス内で User ID プロパティにマッピングする属性の名前です。このフィールドは、`fieldsMap` オブジェクト内の `user_id` プロパティに対する既存のマッピングより優先されます。                                                                                                                                                                                                                            |

    #### リクエストの例

    ```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 の [Get a connection](https://auth0.com/docs/api/management/v2/connections/get-connections-by-id) エンドポイントを使用して、SAML 接続の現在の設定を取得します。
2. 返されたレスポンスから `options` オブジェクトの値をコピーします。
3. `options` オブジェクトに次のフィールドを追加します。

| Field            | Type   | Value            |
| ---------------- | ------ | ---------------- |
| `destinationUrl` | String | プロキシゲートウェイの URL。 |
| `recipientUrl`   | String | プロキシゲートウェイの URL。 |

4. 更新した `options` オブジェクト全体をリクエストボディに含めて、Management API の [Update a connection](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` テンプレートに挿入できます。使用可能な変数は次のとおりです。

| 名前                               | 説明                                                                                                                                                                                                                                                                                                 |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AssertionConsumerServiceURL`    | ユーザーのサインイン後に IdP がレスポンスを送信する URL。これを使用する場合は、リクエストテンプレートに `ProtocolBinding` 属性を含めてください。                                                                                                                                                                                                             |
| `Connection.<options-key>`       | `Connection` キーでドット記法を使用すると、Auth0 Management API の [Get a Connection](https://auth0.com/docs/api/management/v2/#!/Connections/get_connections_by_id) エンドポイントから返される、接続の `options` 内の任意の値にアクセスできます。たとえば、接続に `options.some_property: "value"` がある場合は、テンプレート内で `@@Connection.some_property@@` を使用できます。 |
| `Destination`                    | Auth0 がリクエストを送信する URL。これは、その接続に設定された **サインイン URL** である必要があります。                                                                                                                                                                                                                                     |
| `ID`                             | トランザクション ID。                                                                                                                                                                                                                                                                                       |
| `IssueInstant`                   | トランザクションのタイムスタンプ。                                                                                                                                                                                                                                                                                  |
| `Issuer`                         | `urn` 形式の SP のエンティティ ID。<br /><br />たとえば、`urn:auth0:<YOUR_AUTH0_TENANT_NAME>:<YOUR_AUTH0_CONNECTION_NAME>` です。                                                                                                                                                                                     |
| `LoginHint`                      | ログインするユーザーの username またはメールアドレス。[Identifier First Authentication](/ja/docs/authenticate/login/auth0-universal-login/identifier-first) を使用している場合、Auth0 はこの値を IdP に送信し、IdP のログインフォームに事前入力できます。                                                                                                       |
| `ProtocolBinding`                | プロトコルの[バインディングタイプ](https://www.ibm.com/support/knowledgecenter/en/SSPREK_9.0.4/com.ibm.isam.doc/config/concept/fed_SAML20_bindings.html)。                                                                                                                                                          |
| `ProviderName`                   | リクエストを開始したアプリケーションの名前。常に Auth0 テナント名が返されます。                                                                                                                                                                                                                                                        |
| `AssertServiceURLAndDestination` | 非推奨。新しい構成では、代わりに `AssertionConsumerServiceURL` と `Destination` を使用してください。                                                                                                                                                                                                                          |

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

IdP に提供する必要があるメタデータは、[SAML IDプロバイダー設定](/ja/docs/authenticate/protocols/saml/saml-identity-provider-configuration-settings) で確認できます。

Auth0 は、SAML 1.1 または SAML 2.0 プロトコルに準拠するすべての SAML IdP をサポートしています。以下では、特定のプロバイダー向けの詳しい設定手順を説明します。

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

Dashboard で接続をテストするには、次の手順を実行します。

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

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

接続が想定どおりに動作しない場合は、次の手順をお試しください。

* 各テストの前に、ブラウザーの閲覧履歴、Cookie、キャッシュを消去してください。これを行わないと、ブラウザーが最新の構成情報を反映できない場合や、実行に影響する古い Cookie が残っている場合があります。
* ブラウザーで Cookie が許可されており、JavaScript が有効になっていることを確認してください。
* トランザクションの [HAR ファイルを取得](https://support.auth0.com/center/s/article/generate-and-analyze-har-files-to-troubleshoot-auth0-issues) し、[Auth0 SAML Tool](http://samltool.io/) を使用して SAML アサーションをデコードして内容を確認してください。
