Skip to main content
ステップアップ認証 を使用すると、さまざまな種類のリソースへのアクセスを許可するアプリケーションで、機密性の高いリソースにアクセスする際に、より強力な認証方式をユーザーに要求できます。 Auth0 の拡張可能な (MFA) サポートを使用して、アプリに ステップアップ認証 を追加できます。アプリでは、ユーザーが MFA を使用してログインしたことを確認し、使用していない場合は特定のリソースにアクセスする際に追加の認証を求めることができます。

仕組み

例として、Fabrikam の Intranet では、顧客データにアクセスするには、ユーザーはユーザー名とパスワードで認証する必要があります。ただし、従業員データ (機密性の高い給与情報を含む可能性があります) へのアクセスを要求すると、MFA などのより強力な認証方式がトリガーされます。
MFA ステップアップ認証フローの図

API の ステップアップ認証

が API の場合は、スコープアクセストークンActions を使用して、Auth0 で step-up authentication を実装できます。ユーザーが機密性の高いリソースに対応するスコープを要求したときに、Action を使って step-up authentication の仕組み (たとえば MFA のプロンプト) をトリガーできます。 この例では、ユーザーが Fabrikam の web app にサインインします。通常のログインにより、このユーザーは API とやり取りして、ユーザーの口座一覧を取得できるようになります。つまり、ユーザーの認証後にアプリケーションが受け取るには、read:accounts のようなスコープが含まれます。 ここでユーザーは、ある口座から別の口座に資金を移動したいと考えています。これは高額の transaction と見なされます。この操作を実行するには、API で transfer:funds スコープが必要です。 ユーザーの現在のアクセストークンにはこのスコープが含まれておらず、アプリケーションもそれを認識しています (アプリケーションは、初回認証の呼び出しで要求したスコープのセットを把握しているためです) 。アプリケーションは再度認証を行いますが、今回は transfer:funds スコープを要求します。ブラウザーは Auth0 にリダイレクトされます。Fabrikam の Action に従い、高価値のスコープが要求されたため、Auth0 は MFA での認証をユーザーに求めます。ユーザーが MFA で正常に認証されると、Auth0 はその高価値のスコープを含む新しいアクセストークンを生成して送信します。アプリケーションはそのアクセストークンを API に渡し、API は検証後にそれを破棄することで、単回使用トークンとして扱います。 詳細については、API のステップアップ認証を設定する を参照してください。

Web アプリ向けの ステップアップ認証

認証レベルを検証するのが API ではなく Web アプリである場合、アクセストークン はありません。この場合、ユーザーが MFA でログインしたかどうかは、 の内容を確認することで判断できます。そのうえで、ID トークンからユーザーが MFA でログインしていないことがわかる場合は、機密情報を含むページへのアクセスを拒否するようアプリケーションを設定し、Action を使って step-up authentication の仕組み (たとえば MFA を求める処理) をトリガーできます。たとえば、ユーザー名とパスワードで認証する従業員向けアプリで、給与情報にアクセスする際に、モバイルへのプッシュ通知など第 2 の認証要素の提示を必須にするといったことが可能です。 これは、ユーザーがそのページにアクセスしようとしたときに ID トークンを確認することで実装できます。claims からユーザーがすでに MFA で認証済みであるとわかれば、機密情報を表示します。そうでない場合は、再度認証をトリガーし、Action を使ってユーザーに MFA での認証を求めます。 詳しくは、Web アプリのステップアップ認証を設定する をご覧ください。

詳しく見る