> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> API と Web アプリにおけるステップアップ認証の仕組み、ユーザーが MFA を使用してログインしているかを確認する方法、使用していない場合に特定のリソースへのアクセス時にステップアップを要求する方法について説明します。

# ステップアップ認証を追加

ステップアップ認証を使用すると、さまざまな種類のリソースへのアクセスを提供するアプリケーションで、機密性の高いリソースへのアクセス時に、より強力な認証方式をユーザーに要求できます。

Auth0 の拡張可能な <Tooltip tip="多要素認証 (MFA): SMS で送信される code など、username と password に加えて認証要素を使用するユーザー認証プロセスです。" cta="用語集を見る" href="/ja/docs/glossary?term=multi-factor+authentication">多要素認証</Tooltip> (MFA) サポートを使用すると、アプリにステップアップ認証を追加できます。アプリでは、ユーザーが MFA を使用してログインしたことを確認し、使用していない場合は、特定のリソースにアクセスする前にステップアップ認証を要求できます。

<div id="how-it-works">
  ## 仕組み
</div>

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

<Frame>
  <img src="https://mintcdn.com/translations/3nS3prIggmJG9TUI/docs/images/cdy7uua7fh8z/3w3duzjtD5B2Nu3oVQcbh/22d3a24aa3c3054fa089effbfa9d654c/step-up-flow.png?fit=max&auto=format&n=3nS3prIggmJG9TUI&q=85&s=109cdf958e7372e0aef4e2173a29c91c" alt="MFA ステップアップ認証フロー図" width="1902" height="1370" data-path="docs/images/cdy7uua7fh8z/3w3duzjtD5B2Nu3oVQcbh/22d3a24aa3c3054fa089effbfa9d654c/step-up-flow.png" />
</Frame>

<div id="step-up-authentication-for-apis">
  ## API のステップアップ認証
</div>

<Tooltip tip="オーディエンス: 発行されたトークンの対象者を一意に識別する値です。トークン内では aud という名前で表され、その値には IDトークン の場合はアプリケーション（クライアントID）の ID、アクセストークン の場合は API（API 識別子）の ID が含まれます。" cta="用語集を見る" href="/ja/docs/glossary?term=audience">オーディエンス</Tooltip> が API の場合は、[スコープ](/ja/docs/get-started/apis/scopes)、[アクセストークン](/ja/docs/secure/tokens/access-tokens)、および [Actions](/ja/docs/customize/actions) を使用して、Auth0 でステップアップ認証を実装できます。Action を使用すると、ユーザーが機密性の高いリソースに対応するスコープを要求したときに、ステップアップ認証のメカニズム (たとえば MFA の要求) をトリガーできます。

この例では、ユーザーが Fabrikam の Web アプリにサインインします。通常のログインでは、このユーザーは API とやり取りし、自分のアカウント一覧を取得できます。つまり、ユーザーの認証後にアプリケーションが受け取る <Tooltip tip="アクセストークン: API へのアクセスに使用される認可資格情報で、不透明な文字列または JWT の形式を取ります。" cta="用語集を見る" href="/ja/docs/glossary?term=access+token">アクセストークン</Tooltip> には、`read:accounts` のようなスコープが含まれます。

ここでユーザーは、あるアカウントから別のアカウントに資金を移動したいと考えています。これは高額トランザクションと見なされます。この操作を実行するには、API で `transfer:funds` スコープが必要です。

ユーザーの現在のアクセストークンにはこのスコープが含まれておらず、アプリケーションもそれを認識しています (初回の認証リクエストで要求したスコープのセットをアプリケーションが把握しているためです) 。アプリケーションは再度認証リクエストを行いますが、今回は `transfer:funds` スコープを要求します。ブラウザーは Auth0 にリダイレクトされます。Fabrikam の Action に従って、高権限のスコープが要求されたため、Auth0 はユーザーに MFA による認証を求めます。ユーザーが MFA 認証に成功すると、Auth0 はその高権限のスコープを含む新しいアクセストークンを生成して送信します。アプリケーションはそのアクセストークンを API に渡し、API は検証後にそれを破棄することで、単回使用トークンとして扱います。

詳細については、[API のステップアップ認証を構成する](/ja/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-apis) を参照してください。

<div id="step-up-authentication-for-web-apps">
  ## Webアプリ向けのステップアップ認証
</div>

認証レベルを検証するのが API ではなく Web アプリである場合、アクセストークンはありません。この場合、ユーザーが MFA でログインしたかどうかは、<Tooltip tip="IDトークン: リソースへのアクセスではなく、クライアント自体を対象とした認証情報。" cta="用語集を表示" href="/ja/docs/glossary?term=ID+token">IDトークン</Tooltip> の内容を確認することで判定できます。そのうえで、IDトークンからユーザーが MFA でログインしていないことがわかった場合は、機密情報を含むページへのアクセスを拒否するようアプリケーションを設定し、Action を使用してステップアップ認証の仕組み (たとえば MFA を求めるプロンプト) をトリガーできます。たとえば、従業員向けアプリでユーザー名とパスワードによってユーザーを認証していても、給与情報にアクセスするには、モバイルのプッシュ通知などの第 2 の認証要素を提示する必要があります。

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

詳細については、[Configure Step-up Authentication for Web Apps](/ja/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-web-apps) を参照してください。

<div id="learn-more">
  ## 詳しくはこちら
</div>

* [API のステップアップ認証を設定する](/ja/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-apis)
* [Web アプリのステップアップ認証を設定する](/ja/docs/secure/multi-factor-authentication/step-up-authentication/configure-step-up-authentication-for-web-apps)
