grant_types
プロパティに基づいて示すことができます。
たとえば、モバイルアプリケーションをセキュリティ保護したい場合は、Proof Key for Code Exchange(PKCE)を使用した認可コードフローが最も適切です。
また、シングルページアプリケーション(SPA)のようなクライアント側アプリケーションを保護する場合は、サーバー間でトークンをやり取りしていないなら、フォームポストを使用した暗黙的フローが最も適切です。
アプリケーションを登録する際に有効な各種付与タイプは、次のようなカテゴリに分かれます。
- 標準準拠型付与 : Connect(OIDC)などの外部標準に適合する付与。
- Auth0拡張機能型付与 :追加のクライアントをサポートしたり、と他の信頼フレームワーク間の橋渡しをしたりするために、OAuth拡張メカニズムに準拠しているAuth0固有の付与。
- Auth0レガシー付与 :従来型の付与タイプで、以前からのお客様の方のみご利用いただけます。この付与をご利用のお客様には、より安全なオプションへの移行を強くお勧めします。
利用可能な付与タイプ
標準準拠型付与
付与タイプ | 説明 |
---|---|
implicit | 暗黙的な付与 |
authorization_code | 認可コードの付与 |
client_credentials | クライアントの資格情報の付与 |
password | リソース所有者のパスワードの付与 |
refresh_token | リフレッシュトークンを使用する |
urn:ietf:params:oauth:grant-type:device_code | デバイス認可の付与 |
Auth0拡張機能型付与
付与タイプ | 説明 |
---|---|
http://auth0.com/oauth/grant-type/password-realm | 特別なレルムを示すことができるリソース所有者のパスワード付与に類似する拡張機能型付与を使用する |
http://auth0.com/oauth/grant-type/mfa-oob | 多要素認証を使ったOOBの付与要求 |
http://auth0.com/oauth/grant-type/mfa-otp | 多要素認証を使ったOTPの付与要求 |
http://auth0.com/oauth/grant-type/mfa-recovery-code | 多要素認証を使ったリカバリ付与要求 |
http://auth0.com/oauth/grant-type/passwordless/otp | 埋め込み型パスワードレスログインの付与要求 |
Auth0レガシー付与
レガシー付与には次のものが含まれます:http://auth0.com/oauth/legacy/grant-type/ro
http://auth0.com/oauth/legacy/grant-type/ro/jwt-bearer
http://auth0.com/oauth/legacy/grant-type/delegation/refresh_token
http://auth0.com/oauth/legacy/grant-type/delegation/id_token
http://auth0.com/oauth/legacy/grant-type/access_token
grant_types
プロパティが付与されました。その当時のAuth0のお客様に対して機能変更が生じないようにするため、すべての既存アプリケーションのgrant_types
プロパティに対して、Auth0レガシー、Auth0拡張機能、および仕様に準拠したすべての付与タイプが設定されました。
現在、新規顧客の方は、アプリケーションにレガシーの付与タイプを追加できません。レガシーの付与タイプは、新しいフローへの移行をスムーズに実施できるようにするため、従来からの顧客のみを対象に提供されています。2017年6月8日以前のお客様は、またはAuth0 を使用してレガシー付与タイプを有効にすることができます。
現在、レガシーの付与タイプを使っている場合は、下のチャートで、今後どのセキュリティ対策を使用すべきかご確認ください。たとえば、パスワードレス認証を実装している場合は、
oauth/ro
エンドポイントの代わりにユニバーサルログインを使用してください。
付与タイプのマッピング
アプリケーションを登録すると、その種類(特にアプリケーションが機密か公開か)に応じて、異なる付与タイプが利用できるようになります。さらに、信頼できるファーストパーティのアプリケーションに対しては、さらに多くの付与タイプが用意されています。公開アプリケーションは資格情報を安全に保持
ネイティブアプリケーションやシングルページアプリケーション(SPA)をDashboardで登録すると、自動的に公開アプリケーションのフラグが付きます。具体的には、token_endpoint_auth_method
フラグがnone
に設定されます。デフォルトでは、Auth0で作成される公開アプリケーションでは、以下のgrant_types
が有効になっています。
implicit
code_verifier
refresh_token
device_code
付与タイプも使用できます。
公開アプリケーションでclient_credentials
付与タイプを使用することはできません。この付与タイプを使用したい場合は、アプリケーションを公開ではなく機密として設定してください。Auth0 Management APIのクライアント更新エンドポイントを使用して、token_endpoint_auth_method
をclient_secret_post
、client_secret_basic
、またはprivate_key_jwt
に設定します。詳細については、「アプリケーションの資格情報」をお読みください。
機密アプリケーション
通常のWebアプリケーションやマシンツーマシン(M2M)アプリケーションをAuth0 Dashboardで登録すると、自動的に機密アプリケーションのフラグが付きます。具体的には、これはtoken_endpoint_auth_method
フラグがnone
以外の値に設定されていることで示されます。デフォルトでは、Auth0で作成される機密アプリケーションでは、以下のgrant_types
が有効になっています。
implicit
code_verifier
refresh_token
client_credentials
信頼できるファーストパーティのアプリケーション
信頼できるファーストパーティーアプリケーションは、機密アプリケーションと同じgrant_types
が有効になっており、さらに以下のものも含まれます。
パスワード
http://auth0.com/oauth/grant-type/password-realm
http://auth0.com/oauth/grant-type/mfa-oob
http://auth0.com/oauth/grant-type/mfa-otp
http://auth0.com/oauth/grant-type/mfa-recovery-code
Password
またはMFA
付与タイプをアプリケーションに追加すると、すべてのパスワードおよび付与タイプが有効になることに注意してください。個別に選択することはできません。