- プロトコルレベルのセキュリティ: 最新かつ安全な認可フローを実現するため、OAuth 2.1 のベストプラクティス に準拠します。
- 機能のスコープ: 外部アプリケーションが、明示的に認可されたリソースにのみアクセスできるようにします。
OAuth 2.1 標準
- PKCE 必須: すべての認可コードフローで Proof Key for Code Exchange が必須です。これにより、認可コードの盗聴攻撃を防止できます。
- サポートされるグラントタイプ:
authorization_code、refresh_token、client_credentials - Implicit grant および password grant はサポートされません: ブラウザーの URL にトークンが露出したり、認証情報を直接扱う必要があったりする従来のグラントタイプは、サードパーティアプリケーションでは利用できません。
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 は、マシン間アクセスフローでも通常どおり実行されます。
制限付きクライアント設定
サポートされているプロパティの完全な一覧については、Management API リファレンスの Create a Client endpoint を参照してください。
クライアントIDの形式
tpc_ プレフィックス付きの client_id が割り当てられます。このプレフィックスにより、Auth0 はサードパーティアプリケーションのトラフィックを個別に分類して管理でき、サードパーティアプリケーション向けのレート制限も適用できます。
セキュリティモードとアプリケーションの所有権は、いずれも永続的な設計上の決定事項です。
third_party_security_modeは作成後に変更できません。- サードパーティアプリケーションをファーストパーティアプリケーションに変換することはできません。逆も同様です。
リフレッシュトークンの設定
- 有効期限は必須: 有効期限のないリフレッシュトークンは使用できません。アイドル時の有効期間を無期限にすることもできません。
- パブリッククライアントではデフォルトでローテーションが有効: SPA およびネイティブのサードパーティアプリケーションでは、OAuth 2.1 と MCP の要件に沿って、リフレッシュトークンのローテーションがデフォルトで有効になります。
- 設定可能: 管理者は、手動で作成したサードパーティアプリケーションのローテーション、猶予期間、有効期間の設定を調整できます。
リダイレクト保護
redirection_policy プロパティは、Auth0 がサードパーティアプリケーションへのリダイレクトをどのように扱うかを制御します。指定できる値は次の 2 つです。
ユーザーの操作を伴わないリダイレクトは、リダイレクト URI が信頼できない第三者に制御されている場合、フィッシング攻撃の経路になる可能性があります (オープンリダイレクト) 。
redirection_policy を allow_always に設定するのは、構成済みのコールバック URI を信頼できるアプリケーションに限ってください。
open_redirect_protection が有効な場合:
- 認証エラーが発生すると、アプリケーションにリダイレクトする代わりにエラーページが表示されます。
- メールテンプレート (メールアドレスの確認、パスワードのリセット、ユーザーのブロック) では
{{ application.callback_domain }}にアクセスできません。そのため、{{ application.callback_domain }}を使用する場合は、必ずフォールバックもあわせて設定する必要があります。例:
/authorize エンドポイントに送信されたパラメーターを検証します。受け付けられるのは、標準の OAuth 2.0 および OpenID Connect パラメーターのみです。
許可されるパラメーター:
acr_valuesaudienceauthorization_detailsclient_idcode_challengecode_challenge_methodconnectioncorrelation_iddisplaydpop_jktext-*(カスタムパラメーター)login_hintmax_agenoncepromptredirect_uriresourceresponse_typescopestateui_locales
claimsid_token_hintinvitationlogin_ticketrequest(JAR)request_uri(PAR)screen_hint
invalid_request エラーが返されます。