> ## 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 でサードパーティアプリケーションを扱う際によくあるエラーを解決します。

このページでは、サードパーティアプリケーションと連携する際によく発生するエラーの対処方法を説明します。サードパーティアプリケーションの機能と制限の概要については、[サードパーティアプリケーション向けのセキュリティ制御](/ja/docs/get-started/applications/third-party-applications/security-controls)を参照してください。

<div id="identify-third-party-application-issues">
  ## サードパーティアプリケーションの問題を特定する
</div>

OAuthフロー中にエラーが発生した場合は、そのアプリケーションがサードパーティアプリケーションかどうかを確認してください。

* **クライアントIDのプレフィックス**: サードパーティアプリケーションの `client_id` は `tpc_` で始まります。
* **テナントログ**: [Auth0 Dashboard > Monitoring > Logs](https://manage.auth0.com/#/logs) でアプリケーションをフィルタリングし、エラーイベントを確認します。

<div id="common-errors">
  ## よくあるエラー
</div>

<div id="unauthorized_client-when-requesting-tokens">
  ### トークンのリクエスト時に `unauthorized_client` が返される
</div>

**原因**: サードパーティアプリケーションに、リクエストされた API に対するクライアントグラントがありません。サードパーティアプリケーションでは、API アクセスポリシーが **Allow All** に設定されている場合でも、常に明示的なクライアントグラントが必要です。

**解決策**: アプリケーションのクライアントグラントを作成するか、サードパーティアプリケーションのデフォルト権限を設定してください。詳細については、[Application Access to APIs: Client Grants](/ja/docs/get-started/applications/application-access-to-apis-client-grants) を参照してください。

```bash theme={null}
curl --request POST \
  --url 'https://YOUR_DOMAIN/api/v2/client-grants' \
  --header 'Authorization: Bearer YOUR_MANAGEMENT_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "default_for": "third_party_clients",
    "audience": "https://api.example.com",
    "scope": ["read:items", "write:items"],
    "subject_type": "user"
  }'
```

<div id="unauthorized_client-even-with-allow-all-api-policy">
  ### API ポリシーが「Allow All」でも `unauthorized_client` が発生する
</div>

**原因**: API のアクセス ポリシー設定である **Allow All** は、ファーストパーティ アプリケーションにのみ適用されます。サードパーティアプリケーションでは、この設定に関係なく、常に明示的なクライアントグラントが必要です。

**解決策**: [サードパーティ アプリケーションのデフォルト権限](/ja/docs/get-started/applications/application-access-to-apis-client-grants#default-permissions-for-third-party-applications)を設定するか、アプリケーションごとに権限を作成します。

<div id="invalid_request-on-authorize-with-unsupported-parameters">
  ### サポートされていないパラメーターを含む `/authorize` での `invalid_request`
</div>

**原因**: サードパーティアプリケーションでは、`/authorize` エンドポイントに対して厳密なパラメーター検証が行われます。`screen_hint`、`login_ticket`、`invitation`、`request` (JAR) 、`request_uri` (PAR) などのパラメーターはサポートされていません。

**解決策**: 認可リクエストからサポート対象外のパラメーターを削除してください。使用できるパラメーターの一覧については、[サードパーティアプリケーションのセキュリティ制御](/ja/docs/get-started/applications/third-party-applications/security-controls#authorize-parameter-validation)を参照してください。

<div id="unsupported_response_type-for-id_token-or-token">
  ### `unsupported_response_type` (`id_token` または `token` を使用した場合)
</div>

**原因**: サードパーティアプリケーションでは、インプリシットフロー (`response_type=token` または `response_type=id_token`) は使用できません。

**解決策**: [PKCE](/ja/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) を使用し、`response_type=code` を指定します。

<div id="no-id-token-returned-from-oauthtoken">
  ### `/oauth/token` から IDトークンが返されない
</div>

**原因**: セキュリティ制御が強化されたサードパーティアプリケーションでは、このリリースにおいて IDトークンは返されず、OIDC スコープ (`openid`、`profile`、`email`) も処理されません。トークンエンドポイントはアクセストークンを返しますが、`id_token` は返しません。

**解決策**: アプリケーションに必要な情報を取得するには、API をスコープとして指定したアクセストークンを使用します。サードパーティアプリケーション向けの OIDC サポートは、今後のリリースで提供される予定です。

<div id="grant-type-not-supported">
  ### サポートされていないグラントタイプ
</div>

**原因**: サポートされているグラントタイプは `authorization_code`、`refresh_token`、`client_credentials` のみです。`implicit`、`password`、`urn:ietf:params:oauth:grant-type:device_code` などのグラントタイプは使用できません。

**解決策**: ユーザー向けフローでは、[PKCE を使用する Authorization Code Flow](/ja/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) を使用してください。マシン間アクセスでは、機密クライアント (`token_endpoint_auth_method` は `none` 以外である必要があります) で [Client Credentials Flow](/ja/docs/get-started/authentication-and-authorization-flow/client-credentials-flow) を使用してください。

<div id="classic-login-not-working">
  ### Classic Login が動作しない
</div>

**原因**: サードパーティアプリケーションでは、[Classic Login](/ja/docs/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/classic-experience) はサポートされていません。

**解決策**: [Universal Login](/ja/docs/authenticate/login/auth0-universal-login) を使用してください。Universal Login は、すべてのアプリケーションで推奨されるログイン方式です。

<div id="client-id-starts-with-tpc_">
  ### クライアントIDが `tpc_` で始まる
</div>

**原因**: サードパーティアプリケーションには、トラフィックを分類するため、クライアントIDに自動的に `tpc_` プレフィックスが付与されます。これは作成時に割り当てられるもので、変更はできません。

**解決策**: これは想定どおりの動作です。より長いクライアントID形式に対応できるよう、クライアント側の検証やデータベース制約を更新してください。

<div id="cannot-change-is_first_party-or-security-mode">
  ### `is_first_party` またはセキュリティモードは変更できません
</div>

**原因**: セキュリティモードとアプリケーションの所有タイプは、作成時に決まる恒久的な設計上の設定です。後から変更することはできません。

**解決策**: 必要な設定で新しいアプリケーションを作成してください。既存のアプリケーションをファーストパーティとサードパーティの間で、またはセキュリティモード間で変換することはできません.

<div id="email-verification-or-password-reset-shows-an-error-page">
  ### メールアドレスの確認またはパスワードのリセットでエラーページが表示される
</div>

**原因**: アプリケーションの `redirection_policy` が `open_redirect_protection` に設定されているため、Auth0 はメールテンプレート内で `application.callback_domain` を公開しません。

**解決策**: サードパーティアプリケーション向けのフォールバックを提供する Liquid 条件式を追加するように、メールテンプレートを更新します。

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

または、Dashboard または Management API で作成した信頼済みのサードパーティアプリケーションでは、`redirection_policy` を `allow_always` に設定します。詳細については、[サードパーティアプリケーションのセキュリティ制御](/ja/docs/get-started/applications/third-party-applications/security-controls#redirect-protection)を参照してください。

<div id="dcr-client-cannot-access-any-api">
  ### DCRクライアントはどのAPIにもアクセスできない
</div>

**原因**: 動的に登録されたクライアントがトークンをリクエストするには、あらかじめデフォルト権限を設定しておく必要があります。デフォルト権限が設定されていない場合、サードパーティのDCRクライアントはどのAPIにもアクセスできません。

**解決策**: DCRクライアントがアクセスする必要のある各APIで、サードパーティアプリケーションのデフォルト権限を設定してください。詳細については、[サードパーティアプリケーションを設定する](/ja/docs/get-started/applications/third-party-applications/configure-third-party-applications#default-permissions-for-all-third-party-applications)を参照してください。

<div id="userinfo-returns-error">
  ### `/userinfo` がエラーを返す
</div>

**原因**: このリリースでは、`/userinfo` エンドポイントはサードパーティアプリケーションでは利用できません。

**解決策**: アプリケーションに必要な情報を取得するには、API のスコープが付与されたアクセストークンを使用してください。`/userinfo` を含む OIDC サポートは、今後のリリースで提供される予定です。

<div id="oauthrevoke-works-but-logout-endpoints-do-not">
  ### `/oauth/revoke` は動作するが、ログアウトエンドポイントは利用できない
</div>

**原因**: ログアウトエンドポイント (`/v2/logout`) はサードパーティアプリケーションでは利用できません。

**解決策**: `POST /oauth/revoke` を使用してリフレッシュトークンを失効させます。セッション状態のクリアはアプリケーション側で行う必要があります。

<div id="connection-not-available-for-a-third-party-application">
  ### サードパーティアプリケーションでは接続を利用できません
</div>

**原因**: 接続がドメインレベルに昇格されていません。サードパーティアプリケーションでは、ドメインレベルの接続を介してのみユーザーを認証できます。

**解決策**: 接続をドメインレベルに昇格します。詳細については、[接続をドメインレベルに昇格する](/ja/docs/authenticate/identity-providers/promote-connections-to-domain-level)を参照してください。

<div id="refresh-token-rotation-causing-issues">
  ### リフレッシュトークンのローテーションによる問題
</div>

**原因**: OAuth 2.1 の要件に沿って、公開クライアント (SPA、Native) のサードパーティアプリケーションでは、リフレッシュトークンのローテーションがデフォルトで有効になっています。

**解決策**: リフレッシュトークンのローテーションを正しく処理するよう、アプリケーションを実装してください。トークン交換のたびに新しいリフレッシュトークンが返され、以前のトークンは無効になります。管理者は、手動で作成したアプリケーションのローテーション設定を Dashboard または Management API で調整できます。

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

* [サードパーティアプリケーション](/ja/docs/get-started/applications/third-party-applications)
* [サードパーティアプリケーション向けのセキュリティ制御](/ja/docs/get-started/applications/third-party-applications/security-controls)
* [サードパーティアプリケーションを設定する](/ja/docs/get-started/applications/third-party-applications/configure-third-party-applications)
* [API へのアプリケーションアクセス: クライアントグラント](/ja/docs/get-started/applications/application-access-to-apis-client-grants)
