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

仕組み

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

API のステップアップ認証

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

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

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

詳しくはこちら