> ## 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を設定する方法を説明します。

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

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

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

Auth0 で接続を作成するには、IdP からいくつかの構成用メタデータを取得する必要があります。

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

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

<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 のメイン製品です。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> または Auth0 <Tooltip tip="Management API: お客様が管理タスクを実行するための製品です。" cta="用語集を表示" href="/docs/ja-jp/glossary?term=Management+API">Management API</Tooltip> を使用して、SAML エンタープライズ接続を作成できます:

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

    | Setting                                    | Description                                                                                                                                                                                                                                                                                                                  |
    | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Connection Name                            | `SAML-SP` などの接続名を入力します。                                                                                                                                                                                                                                                                                                      |
    | Sign In URL                                | IdP から取得した **Sign In URL** を入力します。                                                                                                                                                                                                                                                                                           |
    | X509 Signing Certificate                   | IdP から取得した X509 Signing Certificate ファイル (`.pem` または `.cer` 形式) をアップロードします。                                                                                                                                                                                                                                                  |
    | Enable Sign Out                            | **Sign Out URL** フィールドを有効にします。                                                                                                                                                                                                                                                                                               |
    | Sign Out URL                               | IdP から取得した **Sign Out URL** を入力します。                                                                                                                                                                                                                                                                                          |
    | User ID Attribute                          | 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> |
    | Debug Mode                                 | より詳細なログを出力するには、**Debug Mode** を有効にします。                                                                                                                                                                                                                                                                                       |
    | Sign Request                               | 署名付きの SAML認証リクエストを有効にします。                                                                                                                                                                                                                                                                                                    |
    | Sign Request Algorithm                     | ドロップダウンメニューから、使用するハッシュアルゴリズムを選択します。                                                                                                                                                                                                                                                                                          |
    | Sign Request Algorithm Digest              | ドロップダウンメニューから、アサーションの有効性を検証するために使用するアルゴリズムを選択します。                                                                                                                                                                                                                                                                            |
    | Protocol Binding                           | ドロップダウンメニューから、次のいずれかのオプションを選択します:<ul><li>`HTTP-Redirect`: メッセージを URLパラメーターで送信します。</li><li>`HTTP-POST`: メッセージを HTMLフォームで送信します。</li></ul>                                                                                                                                                                                      |
    | Sync user profile attributes at each login | ログインのたびにユーザープロファイル属性を同期するようにします。                                                                                                                                                                                                                                                                                             |

    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`     | Boolean | 任意  | **Sign Out URL** の有効／無効を切り替えます。`false` の場合、logout request を受け付けるには **Sign Out URL** を指定する必要があります。`true` の場合、logout request は **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. デフォルトのアプリケーションの client 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` | String  | 任意  | 認証リクエストの署名に使用するアルゴリズムです。<br /><br />指定できる値は `rsa-sha256` と `rsa-sha1` です。                                                                                                                                                                                                                                                                      |
    | `signSAMLRequest`    | Boolean | 任意  | Auth0 から送信される認証リクエストに署名するかどうかを設定します。                                                                                                                                                                                                                                                                                                           |
    | `user_id_attribute`  | String  | 任意  | 認証レスポンスでユーザー 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` オブジェクトに次のフィールドを追加します。

| フィールド            | 型      | 値                |
| ---------------- | ------ | ---------------- |
| `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. [Auth0 Dashboard > Authentication > Enterprise > SAML](https://manage.auth0.com/#/connections/enterprise/samlp) に移動し、対象の接続を選択します。
2. **設定**ビューに切り替え、**Request Template** フィールドを探します。
3. テンプレートを編集します。
4. **変更を保存** を選択します。

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

変数は、`@@VariableName@@` 構文を使って `AuthnRequest` テンプレートに埋め込めます。使用可能な変数は次のとおりです。

| Name                             | Description                                                                                                                                                                                                                                                                                    |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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。これは、その接続に設定された **Sign In URL** である必要があります。                                                                                                                                                                                                                               |
| `ID`                             | トランザクション ID。                                                                                                                                                                                                                                                                                   |
| `IssueInstant`                   | トランザクションの日時を表すタイムスタンプ。                                                                                                                                                                                                                                                                         |
| `Issuer`                         | `urn` 形式の SP の Entity ID。<br /><br />たとえば、`urn:auth0:<YOUR_AUTH0_TENANT_NAME>:<YOUR_AUTH0_CONNECTION_NAME>`。                                                                                                                                                                                   |
| `LoginHint`                      | ログインするユーザーのユーザー名またはメールアドレス。[Identifier First Authentication](/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first) を使用している場合、Auth0 はこの値を IdP に送信し、IdP のログインフォームに事前入力できます。                                                                                                     |
| `ProtocolBinding`                | プロトコルの [Binding タイプ](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プロバイダーの設定](/docs/ja-jp/authenticate/protocols/saml/saml-identity-provider-configuration-settings)で確認できます。

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

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

Auth0 Dashboard で接続をテストするには、次の手順に従います。

1. [Auth0 Dashboard > Authentication > Enterprise > SAML](https://manage.auth0.com/#/connections/enterprise/samlp) に移動します。
2. 作成した接続を見つけて **...** (三点) メニューアイコンを選択し、**試す** を選択します。
3. Universal Login Page が表示され、資格情報の入力を求められます。
4. IdP に存在するユーザーのメールアドレスを入力します。[ホームレルムディスカバリー](/docs/ja-jp/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 アサーションをデコードし、内容を確認してください。
