- プロトコルレベルのセキュリティ: 最新の安全な認可フローを実現するため、OAuth 2.1 のベストプラクティス に準拠します。
- 機能のスコープ: 外部アプリケーションが、明示的に認可したリソースにのみアクセスできるようにします。
OAuth 2.1 標準
- PKCE 必須: すべての認可コードフローで Proof Key for Code Exchange が必須です。これにより、認可コードの傍受攻撃を防止します。
- サポートされるグラントタイプ:
authorization_code、refresh_token、client_credentials。 - Implicit および password グラントは非対応: ブラウザーの URL にトークンが露出したり、認証情報を直接扱う必要があったりする従来のグラントタイプは、サードパーティアプリケーションでは利用できません。
サードパーティアプリケーションには、APIがすべて許可ポリシーに設定されている場合でも、明示的なグラントが必要です。アプリケーションごとの権限、またはサードパーティアプリケーションのデフォルト権限を設定できます。
サードパーティアプリケーションに、Management API や My Account API などのシステムAPIへのアクセスを許可することはできません。
マシン間 (クライアント資格情報)
client_credentials グラントタイプをサポートしています。これにより、ユーザーを介さずに、バックエンドのパートナー連携やサーバー間の API アクセスが可能になります。
要件と制約:
- クライアントタイプ: アプリケーションは機密クライアントである必要があります (
token_endpoint_auth_methodにnoneは指定できません) 。 - Organizations: サポート対象です。詳細については、Organizations をお読みください。
- Dynamic Client Registration または CIMD で作成されたアプリケーションでは利用できません。
credentials-exchangeトリガーを持つ Actions は、マシン間アクセスフローでも通常どおり実行されます。
Organizations
- ユーザーフロー (認可コード) : Organizationで
third_party_client_access: allowを設定してオプトインし、ログインに使用する接続をドメインレベルに昇格させる必要があります。いずれかが欠けている場合、Auth0はinvalid_requestを返します。 - マシンツーマシン (クライアント資格情報) :
allow_any_organizationは使用できません。各Organizationは、明示的なorganization_client_grantによって認可する必要があります。
制限付きクライアント設定
サポート対象プロパティの完全な一覧については、Management API リファレンスの Create a Client エンドポイント を参照してください。
Client 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 エラーが返されます。