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

# サードパーティアプリケーションのセキュリティ制御

> OAuth 2.1 や API 認可を含む、Auth0 がサードパーティアプリケーションに適用するセキュリティ制御について説明します。

Auth0 は、サードパーティアプリケーションに強化されたセキュリティ制御を適用し、以下を実現しています。

* **プロトコルレベルのセキュリティ**: 最新の安全な認可フローを実現するため、[OAuth 2.1 のベストプラクティス](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1) に準拠します。
* **機能のスコープ**: 外部アプリケーションが、明示的に認可したリソースにのみアクセスできるようにします。

<Warning>
  Auth0 は、サードパーティアプリケーション向けのセキュリティを継続的に強化しています。本番環境では、サポート対象として明示的に文書化されている機能のみを使用してください。サポート対象外の機能は、今後の更新で予告なく変更または制限される場合があります。
</Warning>

<div id="oauth-21-standards">
  ## OAuth 2.1 標準
</div>

サードパーティアプリケーションでは、最新の OAuth 標準を適用しています。

* **PKCE 必須**: すべての認可コードフローで [Proof Key for Code Exchange](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) が必須です。これにより、認可コードの傍受攻撃を防止します。
* **サポートされるグラントタイプ**: `authorization_code`、`refresh_token`、`client_credentials`。
* **Implicit および password グラントは非対応**: ブラウザーの URL にトークンが露出したり、認証情報を直接扱う必要があったりする従来のグラントタイプは、サードパーティアプリケーションでは利用できません。

<div id="explicit-api-authorization">
  ## 明示的なAPI認可
</div>

サードパーティアプリケーションがAPIにアクセスするには、そのAPIの[アクセスポリシー](/docs/ja-jp/get-started/apis/api-access-policies-for-applications)に関係なく、常に[クライアントグラント](/docs/ja-jp/get-started/applications/application-access-to-apis-client-grants)が必要です。

| **APIアクセスポリシー** | **ファーストパーティーアプリケーション** | **サードパーティアプリケーション** |
| --------------- | ---------------------- | ------------------- |
| すべて許可           | アクセス可                  | クライアントグラントが必要       |
| クライアントグラントが必要   | クライアントグラントが必要          | クライアントグラントが必要       |
| 拒否              | アクセス不可                 | アクセス不可              |

サードパーティアプリケーションには、APIが**すべて許可**ポリシーに設定されている場合でも、明示的なグラントが必要です。アプリケーションごとの権限、または[サードパーティアプリケーションのデフォルト権限](/docs/ja-jp/get-started/applications/application-access-to-apis-client-grants#default-permissions-for-third-party-applications)を設定できます。

サードパーティアプリケーションに、Management API や My Account API などの[システムAPI](/docs/ja-jp/get-started/apis#system-apis)へのアクセスを許可することはできません。

<div id="machine-to-machine-client-credentials">
  ## マシン間 (クライアント資格情報)
</div>

サードパーティアプリケーションは、マシン間アクセス向けに `client_credentials` グラントタイプをサポートしています。これにより、ユーザーを介さずに、バックエンドのパートナー連携やサーバー間の API アクセスが可能になります。

**要件と制約:**

* クライアントタイプ: アプリケーションは機密クライアントである必要があります (`token_endpoint_auth_method` に `none` は指定できません) 。
* [Organizations](/docs/ja-jp/manage-users/organizations): サポート対象です。詳細については、[Organizations](#organizations) をお読みください。
* [Dynamic Client Registration](/docs/ja-jp/get-started/applications/dynamic-client-registration) または [CIMD](/docs/ja-jp/get-started/auth0-overview/create-applications/register-applications-with-cimd) で作成されたアプリケーションでは利用できません。

**拡張:**

* `credentials-exchange` トリガーを持つ [Actions](/docs/ja-jp/customize/actions) は、マシン間アクセスフローでも通常どおり実行されます。

<div id="organizations">
  ## Organizations
</div>

サードパーティアプリケーションは、ユーザーフローとマシン間アクセスの両方で[Organizations](/docs/ja-jp/manage-users/organizations)をサポートしています。アクセスはオプトインです。

* **ユーザーフロー (認可コード) **: Organizationで`third_party_client_access: allow`を設定してオプトインし、ログインに使用する接続を[ドメインレベル](/docs/ja-jp/authenticate/identity-providers/promote-connections-to-domain-level)に昇格させる必要があります。いずれかが欠けている場合、Auth0は`invalid_request`を返します。
* **マシンツーマシン (クライアント資格情報) **: `allow_any_organization`は使用できません。各Organizationは、明示的な`organization_client_grant`によって認可する必要があります。

設定方法については、[Organizationsへのアクセスを設定する](/docs/ja-jp/get-started/applications/third-party-applications/configure-third-party-applications#configure-organizations-access)を参照してください。

<div id="restricted-client-configuration">
  ## 制限付きクライアント設定
</div>

サードパーティアプリケーションでは、設定できるクライアントプロパティが一部に限定されています。Auth0 に新しいプロパティが追加されても、明示的にレビューされてサポート対象に追加されない限り、サードパーティアプリケーションでは使用できません。

主なサポート対象プロパティは次のとおりです。

| **プロパティ**                               | **備考**                                                                    |
| --------------------------------------- | ------------------------------------------------------------------------- |
| `name`, `description`, `logo_uri`       | 基本メタデータ                                                                   |
| `callbacks`                             | リダイレクト URI                                                                |
| `allowed_origins`, `web_origins`        | CORS および `web_message` のオリジン                                              |
| `grant_types`                           | `authorization_code`、`refresh_token`、`client_credentials` のいずれかである必要があります |
| `token_endpoint_auth_method`            | トークンエンドポイントの認証方式                                                          |
| `app_type`                              | `regular_web`、`spa`、`native`、`non_interactive` のいずれかである必要があります            |
| `client_metadata`                       | カスタムのキーと値のペアのメタデータ                                                        |
| `jwt_configuration.lifetime_in_seconds` | アクセストークンの有効期間 (デフォルトは 3600)                                               |
| `jwt_configuration.alg`                 | 署名アルゴリズム (`RS256` である必要があります。`HS256` はサポートされていません)                        |
| `refresh_token.*`                       | ローテーション、有効期限、猶予期間、有効期間の設定                                                 |
| `client_authentication_methods`         | Private Key JWT (`private_key_jwt` のみ。mTLS はサポートされません)                    |
| `require_proof_of_possession`           | DPoP 設定                                                                   |
| `redirection_policy`                    | エラーフローおよびメールテンプレートでのリダイレクト動作                                              |

サポート対象プロパティの完全な一覧については、Management API リファレンスの [Create a Client エンドポイント](https://auth0.com/docs/api/management/v2/clients/post-clients) を参照してください。

<div id="client-id-format">
  ## Client ID の形式
</div>

サードパーティアプリケーションには、作成時に `tpc_` プレフィックス付きの `client_id` が割り当てられます。このプレフィックスにより、Auth0 はサードパーティアプリケーションのトラフィックを個別に分類して管理でき、サードパーティアプリケーションに対するレート制限も別途適用できます。

セキュリティモードとアプリケーションの所有形態は、作成後に変更できない設計となっています。

* `third_party_security_mode` は作成後に変更できません。
* サードパーティアプリケーションをファーストパーティアプリケーションに変換することはできず、その逆もできません。

<div id="refresh-token-settings">
  ## リフレッシュトークンの設定
</div>

サードパーティアプリケーションでは、安全性を考慮したリフレッシュトークン設定が適用されます。

* **有効期限は必須**: 無期限のリフレッシュトークンは使用できません。未使用時の有効期間を無期限にすることもできません。
* **公開クライアントではデフォルトでローテーションが有効**: SPA とネイティブのサードパーティアプリケーションでは、[OAuth 2.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1) および [MCP](https://modelcontextprotocol.io/specification/draft/basic/authorization) の要件に準拠して、デフォルトでリフレッシュトークンのローテーションが有効になっています。
* **設定可能**: 管理者は、手動で作成したサードパーティアプリケーションのローテーション、猶予期間、有効期間の設定を調整できます。

<div id="redirect-protection">
  ## リダイレクト保護
</div>

`redirection_policy` プロパティは、Auth0 がサードパーティアプリケーションへのリダイレクトをどのように処理するかを制御します。指定できる値は 2 つあります。

| **Value**                                                 | **Behavior**                                                                             |
| --------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| `open_redirect_protection` (default for third-party apps) | Auth0 は、認証エラー時にアプリのコールバックへリダイレクトしません。`application.callback_domain` 変数はメールテンプレートで使用できません。 |
| `allow_always`                                            | 標準的なリダイレクト動作です。                                                                          |

ユーザー操作を伴わないリダイレクトは、リダイレクト URI が信頼できない第三者によって管理されている場合、フィッシング攻撃の経路になる可能性があります (オープンリダイレクト) 。`redirection_policy` を `allow_always` に設定するのは、構成されたコールバック URI を信頼できるアプリケーションだけにしてください。

`open_redirect_protection` が有効な場合:

* 認証エラー時は、アプリケーションにリダイレクトする代わりにエラーページが表示されます。
* メールテンプレート (メール確認、パスワードリセット、ユーザーブロック) からは `{{ application.callback_domain }}` にアクセスできないため、`{{ application.callback_domain }}` を使用する場合は、あわせてフォールバックを設定する必要があります。例:

```liquid wrap lines theme={null}
{% if application.callback_domain == '' %}
  https://YOUR_FALLBACK_DOMAIN
{% endif %}
{% if application.callback_domain != '' %}
  {{ application.callback_domain }}/result-page
{% endif %}
```

<div id="authorize-parameter-validation">
  ## `/authorize` パラメーターの検証
</div>

Auth0 は、サードパーティアプリケーションから `/authorize` エンドポイントに送信されるパラメーターを検証します。受け付けられるのは、標準の OAuth 2.0 および OpenID Connect のパラメーターのみです。

**許可されるパラメーター:**

* `acr_values`
* `audience`
* `authorization_details`
* `client_id`
* `code_challenge`
* `code_challenge_method`
* `connection`
* `correlation_id`
* `display`
* `dpop_jkt`
* `ext-*`  (カスタムパラメーター)
* `login_hint`
* `max_age`
* `nonce`
* `prompt`
* `redirect_uri`
* `resource`
* `response_type`
* `scope`
* `state`
* `ui_locales`

**サポート対象外:**

* `claims`
* `id_token_hint`
* `invitation`
* `login_ticket`
* `request`  (JAR)
* `request_uri`  (PAR)
* `screen_hint`

サポート対象外のパラメーターを含むリクエストには、`invalid_request` エラーが返されます。

<div id="backward-compatibility">
  ## 後方互換性
</div>

2026年4月より前からサードパーティアプリケーションを使用していた一部のテナントでは、後方互換性を保つため、異なるセキュリティ設定で動作するアプリケーションがある場合があります。詳しくは、[サードパーティアプリケーション向けの許容モード](/docs/ja-jp/get-started/applications/third-party-applications/permissive-mode)をご覧ください。

<div id="features-not-supported">
  ## サポートされていない機能
</div>

サードパーティアプリケーションでは、以下の機能はサポートされていません。

| **機能**                                                                           | **ステータス**                                                                                                                                      |
| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **OIDC scopes と ID トークン**                                                        | サポートされていません。今後のリリースで対応予定です。                                                                                                                    |
| **`/userinfo` エンドポイント**                                                          | サポートされていません。                                                                                                                                   |
| **Auth0 システム API** (Management API, MFA API, My Account API, My Orgs API)        | サポートされていません。サードパーティアプリケーションは、ユーザーフローでシステム API にアクセスできません。                                                                                      |
| **リフレッシュトークン交換時の MFA**                                                           | サポートされていません。MFA がトリガーされるリフレッシュトークンのトランザクションはエラーになります。                                                                                          |
| **Rules**                                                                        | サポートされていません。有効な Rules があるテナントでは、厳格なサードパーティアプリケーションがログインフローをトリガーするとエラーになります。                                                                    |
| **Hooks** (credentials-exchange)                                                 | サポートされていません。有効な `credentials-exchange` Hook があるテナントではエラーになります。`credentials-exchange` の拡張には、[Actions](/docs/ja-jp/customize/actions) へ移行してください。 |
| **OAuth 以外の Authentication API エンドポイント** (`/dbconnections/*`, `/passwordless/*`) | サポートされていません。                                                                                                                                   |
| **レガシーエンドポイント** (`/delegation`, `/oauth/ro`)                                     | サポートされていません。                                                                                                                                   |
| **SAML, WsFed**                                                                  | サポートされていません。                                                                                                                                   |
| **Classic Login**                                                                | サポートされていません。[Universal Login](/docs/ja-jp/authenticate/login/auth0-universal-login) を使用してください。                                                 |
| **PAR, CIBA, Device Code**                                                       | サポートされていません。今後のリリースで対応予定です。                                                                                                                    |
| **ログアウトエンドポイント**                                                                 | サポートされていません。トークンを失効するには `POST /oauth/revoke` を使用してください。                                                                                        |
| **クロスオリジン認証**                                                                    | サポートされていません。                                                                                                                                   |
| **Backchannel logout**                                                           | サポートされていません。今後のリリースで対応予定です。                                                                                                                    |
| **クライアント ID のインポート**                                                             | サポートされていません。                                                                                                                                   |
| **URL 内のワイルドカードサブドメイン**                                                          | サポートされていません。コールバック URL、許可済みオリジン、Web オリジンには完全一致の URL を使用する必要があります。                                                                              |

<div id="learn-more">
  ## 詳細はこちら
</div>

* [サードパーティアプリケーション](/docs/ja-jp/get-started/applications/third-party-applications)
* [サードパーティアプリケーションを設定する](/docs/ja-jp/get-started/applications/third-party-applications/configure-third-party-applications)
* [サードパーティアプリケーションのトラブルシューティング](/docs/ja-jp/get-started/applications/third-party-applications/troubleshooting)
* [APIへのアプリケーションアクセス: クライアントグラント](/docs/ja-jp/get-started/applications/application-access-to-apis-client-grants)
* [サードパーティアプリケーション向けの許容モード](/docs/ja-jp/get-started/applications/third-party-applications/permissive-mode)
