grant_types プロパティに基づいて、どのグラントタイプを使用できるかを指定できます。
たとえば、モバイルアプリケーションを保護したい場合は、Authorization Code Flow with Proof Key for Code Exchange (PKCE)が最も適しています。
一方、シングルページアプリケーション (SPA) のようなクライアントサイドのアプリケーションを保護したい場合で、サーバー間でトークンをやり取りしないのであれば、Implicit Flow with Form Postが最も適しています。
アプリケーションの登録時に使用できるグラントタイプは複数あります。これらは次のカテゴリに分けられます。
- 仕様準拠のグラント: Connect (OIDC) など、外部仕様で定義され、その仕様に準拠したグラント。
- Auth0 拡張グラント: 追加のクライアントをサポートしたり、 と他の信頼フレームワークの橋渡しをしたりするために、OAuth extension mechanism に準拠した Auth0 固有のグラント。
- Auth0 レガシーグラント: レガシー顧客のみを対象としてサポートされる従来のグラントタイプです。レガシー顧客の場合は、より安全な代替手段に移行することを強くお勧めします。
利用できるグラントタイプ
仕様準拠のグラント
Auth0 拡張グラント
Auth0 レガシーグラント
http://auth0.com/oauth/legacy/grant-type/rohttp://auth0.com/oauth/legacy/grant-type/ro/jwt-bearerhttp://auth0.com/oauth/legacy/grant-type/delegation/refresh_tokenhttp://auth0.com/oauth/legacy/grant-type/delegation/id_tokenhttp://auth0.com/oauth/legacy/grant-type/access_token
grant_types プロパティが追加されました。当時の Auth0 のお客様に機能上の変更が生じないよう、既存のすべてのアプリケーションの grant_types プロパティには、Auth0 レガシー、Auth0 extension、および仕様準拠のすべてのグラントタイプが設定されました。
この時点で、新規の Auth0 のお客様は、自身のアプリケーションにレガシーグラントタイプを追加できなくなりました。レガシーグラントタイプは、互換性のない変更を避けながら新しいフローへ移行できるよう、以前からのお客様にのみ提供されています。2017 年 6 月 8 日より前からご利用のお客様は、 または Auth0 のいずれかを使用して、レガシーグラントタイプを有効化 できます。
現在レガシーグラントタイプを使用している場合は、代わりに使用すべき安全な代替手段を以下の表で確認してください。たとえば、認証を実装している場合は、
oauth/ro endpoint の代わりに Universal Login を使用してください。
グラントタイプの対応
パブリックアプリケーション
token_endpoint_auth_method フラグが none に設定されていることで示されます。デフォルトでは、Auth0 は次の grant_types が有効になったパブリックアプリケーションを作成します。
implicitauthorization_coderefresh_token
device_code グラントタイプも使用できます。
パブリックアプリケーションでは、client_credentials グラントタイプは使用できません。このグラントタイプを使用するには、アプリケーションを公開ではなく機密として設定する必要があります。token_endpoint_auth_method を client_secret_post、client_secret_basic、または private_key_jwt に設定するには、Auth0 Management API の Update a client エンドポイントを使用します。詳しくは、Application Credentials を参照してください。
機密アプリケーション
token_endpoint_auth_method フラグが none 以外の値に設定されていることで示されます。デフォルトでは、Auth0 は次の grant_types を有効にした機密アプリケーションを作成します。
implicitauthorization_coderefresh_tokenclient_credentials
信頼できるファーストパーティアプリケーション
grant_types が有効になっているほか、以下も有効になります。
passwordhttp://auth0.com/oauth/grant-type/password-realmhttp://auth0.com/oauth/grant-type/mfa-oobhttp://auth0.com/oauth/grant-type/mfa-otphttp://auth0.com/oauth/grant-type/mfa-recovery-code
Password または MFA グラントタイプを追加すると、すべての Password および のグラントタイプが有効になる点に注意してください。これらを個別に選択することはできません。
サードパーティアプリケーションの制限事項
詳しくは、サードパーティアプリケーション向けのセキュリティコントロールを参照してください。