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

このページでは、サードパーティアプリケーションとの連携時によくあるエラーを解決できます。サードパーティアプリケーションの機能と制限の概要については、[サードパーティアプリケーションのセキュリティ制御](/docs/ja-jp/get-started/applications/third-party-applications/security-controls)を参照してください。

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

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

* **Client 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](/docs/ja-jp/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** は、ファーストパーティアプリケーションにのみ適用されます。サードパーティアプリケーションでは、この設定にかかわらず、常に明示的なクライアントグラントが必要です。

**解決策**: [サードパーティアプリケーションのデフォルト権限を設定する](/docs/ja-jp/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) などのパラメーターはサポートされていません。

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

<div id="unsupported_response_type-for-id_token-or-token">
  ### `id_token` または `token` に対する `unsupported_response_type`
</div>

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

**解決策**: [PKCE](/docs/ja-jp/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 を使用した認可コードフロー](/docs/ja-jp/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce) を使用してください。マシン間アクセスには、機密クライアントで [Client Credentials Flow](/docs/ja-jp/get-started/authentication-and-authorization-flow/client-credentials-flow) を使用してください (`token_endpoint_auth_method` は `none` 以外である必要があります) 。

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

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

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

<div id="client-id-starts-with-tpc_">
  ### Client ID が `tpc_` で始まる
</div>

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

**解決策**: これは想定どおりの動作です。より長い Client 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` に設定します。詳しくは、[サードパーティアプリケーションのセキュリティ制御](/docs/ja-jp/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 で、サードパーティアプリケーション向けのデフォルト権限を設定してください。詳しくは、[サードパーティアプリケーションを設定する](/docs/ja-jp/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>

**原因**: Organizationを使用しないフローでは、コネクションがドメインレベルに引き上げられていません。サードパーティアプリケーションでは、ドメインレベルのコネクションを通じてのみユーザーを認証できます。Organizationベースのフローでは、コネクションをOrganizationに対しても有効にする必要があります。

**解決策**: Organizationを使用しないフローでは、コネクションを[ドメインレベル](/docs/ja-jp/authenticate/identity-providers/promote-connections-to-domain-level)に引き上げます。Organizationベースのフローでは、さらに[Organizationに対してコネクションを有効にする](/docs/ja-jp/manage-users/organizations/configure-organizations/enable-connections)必要があります。

<div id="invalid_request-when-authenticating-through-an-organization">
  ### Organization 経由で認証する際の `invalid_request`
</div>

**原因**: Organization でサードパーティアプリケーションによるアクセスが有効になっていません。デフォルトでは、Organizations はサードパーティアプリケーションからの認証リクエストを拒否します。認可リクエストは `invalid_request: parameter organization is invalid: {org_id}` で失敗します。

**解決策**: 管理者は、Organization でサードパーティアプリケーションによるアクセスを有効にする必要があります。詳細については、「[Organization のサードパーティアプリケーションによるアクセスを有効にする](/docs/ja-jp/manage-users/organizations/configure-organizations/enable-third-party-application-access)」をお読みください。

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

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

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

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

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