メインコンテンツへスキップ
アプリケーションの付与タイプ(またはフロー)は、アプリケーションがアクセストークンを取得する方法であり、また、資格情報を公開することなく、他のエンティティにリソースへの限定的なアクセスを付与する方法です。OAuth 2.0プロトコルでは、複数の付与タイプをサポートしているため、さまざまな種類のアクセスを実現できます。 付与タイプの中には、アプリケーションのニーズによって、適したものとそうでないものがあります。Auth0にはさまざまな認証・許可フローが用意されていますが、どれが最も適しているかは、アプリケーションの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
レガシー付与タイプは、従来型の付与タイプで、以前からの顧客の方のみご利用いただけます。この付与をご利用のお客様には、より安全なオプションへの移行を強くお勧めします。 2017年6月8日時点で、すべてのアプリケーションには、必ず記入しなければならない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_methodclient_secret_postclient_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
Dashboardを使ってこれらの付与タイプを有効・無効にする場合は、PasswordまたはMFA付与タイプをアプリケーションに追加すると、すべてのパスワードおよび付与タイプが有効になることに注意してください。個別に選択することはできません。

もっと詳しく

I