ステップアップ認証を追加する

ステップアップ認証を使うと、さまざまなタイプのリソースへのアクセスを許可するアプリケーションが、機密情報にアクセスするユーザーに、より強力な認証メカニズムを使用して認証するよう要求できます。

Auth0の拡張可能な多要素認証(MFA)サポートを使って、ステップアップ認証をアプリに追加することができます。お使いのアプリで、ユーザーがMFAを使ってログインしたことを確認できます。ログインしていない場合は、特定のリソースへのアクセスをユーザーに対して必須にすることができます。

仕組み

例として、Fabrikamのイントラネットでは、ユーザーはユーザー名とパスワードで認証を行い、顧客データにアクセスする必要があります。ただし、(機微な給与情報が含まれた可能性のある)従業員データへのアクセスを要求する場合、MFAなどのより強力な認証メカニズムがトリガーされます。

MFAステップアップ認証フロー図

APIのステップアップ認証

対象がAPIの場合、Auth0でスコープアクセストークンActionsを使用してステップアップ認証を実装できます。Actionを使うと、ユーザーが機微なリソースにマッピングするスコープを要求するたびに、ステップアップ認証メカニズム(MFAプロンプトなど)をトリガーできます。

弊社の例では、ユーザーはFabrikamのWebアプリにサインインします。標準のログインを使用すると、ユーザーはAPIを操作してユーザーのアカウントリストを取得することができます。つまり、ユーザー認証後にアプリケーションが受け取るアクセストークンには、read:accountsなどのスコープが含まれます。

次に、ユーザーはあるアカウントから別のアカウントに資金を送金したいと考えます。この送金は高額な取引とみなされます。この処理を実行するには、APIではtransfer:fundsスコープが必要です。

ユーザーの現在のアクセストークンにはこのスコープは含まれておらず、アプリケーションはこの状況を把握しています(アプリケーションは最初の認証呼び出しにおいて、要求したスコープセットをわかっているため)。アプリケーションは別の認証呼び出しを行いますが、今度は、transfer:fundsスコープを要求します。ブラウザーがAuth0にリダイレクトされます。高価値スコープが要求されたため、FabrikamのActionに基づいて、Auth0はMFAで認証を行うようユーザーにチェレンジします。ユーザーがMFAで認証に成功すると、高価値スコープを含む新しいアクセストークンが生成、送信されます。アプリケーションはアクセストークンをAPIに渡し、検証後に破棄することで、1回限り使用できるトークンとして扱われます。

詳細については、「API用にステップアップ認証を構成する」をお読みください。

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

認証レベルを検証するのがAPIでなくWebアプリである場合、アクセストークンはありません。この場合、ユーザーのIDトークンの内容を確認することで、ユーザーがMFAを使用してログインしたかをチェックできます。ユーザーがMFAを使ってログインしなかったことがIDトークンで示されている場合、機微情報を含むページへのアクセスを拒否するようにアプリケーションを構成し、Actionを使ってステップアップ認証メカニズム(MFAプロンプトなど)をトリガーできます。たとえば、ユーザー名とパスワードでユーザー認証を行う従業員アプリを持っていたとしても、給与情報にアクセスしたい場合は、モバイルプッシュ通知などの第2要素を提供する必要があります。

このアクションを実行するには、ユーザーがそのページにアクセスしようとするときにIDトークンを確認します。クレームに、ユーザーがMFAで認証済みであることが示されている場合、機微情報が表示されます。そうでない場合は、Actionを使って認証を再度トリガーし、ユーザーにMFAで認証を行うよう促します。

詳細については、「Webアプリ用にステップアップ認証を構成する」をお読みください。

もっと詳しく