Auth0 は、サードパーティアプリケーションに対して強化されたセキュリティ制御を適用し、以下を確保しています。
- プロトコルレベルのセキュリティ: 最新かつ安全な認可フローを実現するため、OAuth 2.1 のベストプラクティス に準拠します。
- 機能のスコープ: 外部アプリケーションが、明示的に認可されたリソースにのみアクセスできるようにします。
Auth0 は、サードパーティアプリケーション向けのセキュリティを継続的に強化しています。本番環境では、サポート対象として明示的にドキュメント化されている機能のみを使用してください。サポート対象外の機能は、今後の更新で予告なく変更または制限される場合があります。
サードパーティアプリケーションでは、最新の OAuth 標準が適用されます。
- PKCE 必須: すべての認可コードフローで Proof Key for Code Exchange が必須です。これにより、認可コードの盗聴攻撃を防止できます。
- サポートされるグラントタイプ:
authorization_code、refresh_token、client_credentials
- Implicit grant および password grant はサポートされません: ブラウザーの URL にトークンが露出したり、認証情報を直接扱う必要があったりする従来のグラントタイプは、サードパーティアプリケーションでは利用できません。
サードパーティアプリケーションが API にアクセスするには、API のアクセスポリシーにかかわらず、常にクライアントグラントが必要です。
| API アクセスポリシー | ファーストパーティアプリケーション | サードパーティアプリケーション |
|---|
| すべて許可 | アクセス許可あり | クライアントグラントが必要 |
| クライアントグラントが必要 | クライアントグラントが必要 | クライアントグラントが必要 |
| 拒否 | アクセス拒否 | アクセス拒否 |
API が Allow All ポリシーに設定されている場合でも、サードパーティアプリケーションには明示的なグラントが必要です。アプリケーションごとの権限、またはサードパーティアプリケーションのデフォルト権限を設定できます。
サードパーティアプリケーションに、Management API や My Account API などのシステム APIへのアクセスを付与することはできません。
マシン間通信 (Client Credentials)
サードパーティアプリケーションは、マシン間アクセス向けに client_credentials グラントタイプをサポートしています。これにより、ユーザーを介さずに、バックエンドでのパートナー連携やサーバー間の API アクセスが可能になります。
要件と制約:
- クライアントタイプ: アプリケーションは機密クライアントである必要があります (
token_endpoint_auth_method を none にすることはできません) 。
- 組織: 組織でのマシン間アクセスがサポートされています。各組織に対して、明示的な organization client grant が必要です。
allow_any_organization オプションは、サードパーティアプリケーションでは使用できません。サードパーティアプリケーションのデフォルト クライアントグラント では、organization_usage を設定できません。
- Dynamic Client Registration または CIMD で作成されたアプリケーションでは利用できません。
拡張性:
credentials-exchange トリガーを持つ Actions は、マシン間アクセスフローでも通常どおり実行されます。
サードパーティアプリケーションでは、制限された一部のクライアントプロパティのみ設定できます。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 endpoint を参照してください。
サードパーティアプリケーションには、作成時に tpc_ プレフィックス付きの client_id が割り当てられます。このプレフィックスにより、Auth0 はサードパーティアプリケーションのトラフィックを個別に分類して管理でき、サードパーティアプリケーション向けのレート制限も適用できます。
セキュリティモードとアプリケーションの所有権は、いずれも永続的な設計上の決定事項です。
third_party_security_mode は作成後に変更できません。
- サードパーティアプリケーションをファーストパーティアプリケーションに変換することはできません。逆も同様です。
サードパーティアプリケーションには、安全なリフレッシュトークン設定が適用されます。
- 有効期限は必須: 有効期限のないリフレッシュトークンは使用できません。アイドル時の有効期間を無期限にすることもできません。
- パブリッククライアントではデフォルトでローテーションが有効: SPA およびネイティブのサードパーティアプリケーションでは、OAuth 2.1 と MCP の要件に沿って、リフレッシュトークンのローテーションがデフォルトで有効になります。
- 設定可能: 管理者は、手動で作成したサードパーティアプリケーションのローテーション、猶予期間、有効期間の設定を調整できます。
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 }} を使用する場合は、必ずフォールバックもあわせて設定する必要があります。例:
{% if application.callback_domain == '' %}
https://YOUR_FALLBACK_DOMAIN
{% endif %}
{% if application.callback_domain != '' %}
{{ application.callback_domain }}/result-page
{% endif %}
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 エラーが返されます。
2026 年 4 月以前からサードパーティアプリケーションを使用している一部のテナントでは、後方互換性を維持するため、アプリケーションが異なるセキュリティ設定で動作している場合があります。詳細については、Permissive Mode for Third-Party Applications を参照してください。
以下の機能は、サードパーティアプリケーションではサポートされていません。
| 機能 | ステータス |
|---|
| OIDC スコープとIDトークン | サポートされていません。今後のリリースで対応予定です。 |
/userinfo エンドポイント | サポートされていません。 |
| Auth0 system APIs (Management API, MFA API, My Account API, My Orgs API) | サポートされていません。サードパーティアプリケーションは、ユーザーフロー内で システム API にアクセスできません。 |
| リフレッシュトークン交換中のMFA | サポートされていません。MFA がトリガーされるリフレッシュトークンのトランザクションではエラーが発生します。 |
| Rules | サポートされていません。有効な Rules があるテナントでは、strict なサードパーティアプリケーションがログインフローをトリガーするとエラーが返されます。 |
| Hooks (credentials-exchange) | サポートされていません。有効な credentials-exchange Hook があるテナントではエラーが返されます。credentials-exchange の拡張機能は Actions に移行してください。 |
OAuth 以外の Authentication API エンドポイント (/dbconnections/*, /passwordless/*) | サポートされていません。 |
レガシーエンドポイント (/delegation, /oauth/ro) | サポートされていません。 |
| SAML, WsFed | サポートされていません。 |
| Classic Login | サポートされていません。Universal Login を使用してください。 |
| PAR, CIBA, Device Code | サポートされていません。今後のリリースで対応予定です。 |
| ログアウトエンドポイント | サポートされていません。トークンを失効するには POST /oauth/revoke を使用してください。 |
| クロスオリジン認証 | サポートされていません。 |
| バックチャネルログアウト | サポートされていません。今後のリリースで対応予定です。 |
| クライアントIDのインポート | サポートされていません。 |
| URL 内のワイルドカードサブドメイン | サポートされていません。コールバックURL、許可済みオリジン、Web オリジンには正確な URL を使用する必要があります。 |