次の方法で共有


継続的アクセス評価によるアプリケーションのセキュリティ保護

この記事は、開発者が継続的アクセス評価を使用してアプリケーションのセキュリティを強化するのに役立ちます。 Microsoft Entra ID からアクセス トークンを取得するときにリソースにアクセスするための承認を受けるアプリでゼロ トラスト サポートを確保する方法について説明します。

Microsoft Entra ID がこれらのアクセス トークンを発行すると、 その承認の条件が完全に評価されます。 Microsoft Entra ID は、初期トークン要求のトークンを発行するたびに、およびトークンを更新するたびに、 同意の確認などの標準的な承認アクションを実行します。

Microsoft Entra ID は、主にアクセス トークンに JSON Web トークン (JWT) を使用します。 リソース API は、リソース API を呼び出すたびに Microsoft Entra ID にコールバックしなくても、JWT をデコード、検証、および解釈できます。 JWT 標準では、処理のために JWT トークンを受け入れてはならない有効期限後のon-or を識別する exp 要求が定義されています。 既定では、Microsoft Entra トークンは発行後 60 分から 90 分後に期限切れになります。 Microsoft Entra ID が承認条件を評価しない期間、アプリケーションがアクセス トークンをキャッシュして使用していることを確認します。

トークンの発行以外の条件を評価する

Microsoft Entra ID がトークンを発行すると、ユーザー条件の変更とポリシー変更の適用の間に遅延が発生する可能性があります。 トークンの有効期間を短縮するアプローチでは、リスクを排除することなく、ユーザー エクスペリエンスと信頼性が低下する可能性があります。

1 つの解決策は、保護されたリソースを呼び出すたびに条件を評価することです。 この強制を実装する最も一般的な方法は、トークンのイントロスペクションです。 トークンのイントロスペクションでは、トークンに JWT 形式は使用されません。 代わりに、トークンイントロスペクションでは、リソース API で解釈できない不透明な文字列が使用されます。 リソース API は、各呼び出しで ID プロバイダーにトークンを送信します。 その後、ID プロバイダーは条件をチェックし、リソース API が操作を完了するために使用できるデータを返します。 このプロセスは、すべての API 呼び出しに別のラウンド トリップ Web 要求を追加するため、コストがかかる場合があります。

継続的アクセス評価 (CAE) でこの費用を解決するために、リソース API は、Microsoft Entra ID がリソース API に対して発行するトークンについて Microsoft Entra ID がプッシュするイベントをリッスンできます。 たとえば、アプリケーションが Microsoft Graph API を呼び出すとき、Microsoft Graph はトークンに関するイベントを Microsoft Entra ID から受信したかどうかを確認できます。 元の認証の条件が異なり、ユーザーが再認証する必要がある場合、Microsoft Graph は呼び出し元のアプリにエラーを返します。

Microsoft Entra ID は、次のいずれかのイベントが発生したときに、CAE 対応の Microsoft リソースにイベントを送信します。

  • 無効または削除されたユーザー アカウント
  • ユーザー パスワードの変更またはリセット
  • 有効なユーザー多要素認証
  • 管理者が、ユーザーのすべての更新トークンを明示的に取り消した
  • Microsoft Entra ID Protection は、上昇したユーザー リスクを検出します

さらに、CAE 対応の Microsoft リソースでは、場所ベースの条件付きアクセス ポリシーを適用できます。

CAE を使用してアプリケーションのセキュリティと回復性を向上させる

Microsoft Entra の継続的アクセス評価ビデオに基づいて構築された、セキュリティと回復性に優 れた次のアプリは、CAE サポートを使用してクライアント アプリを構築する方法を示しています。

ビデオ プレゼンテーションでは、アプリケーションが先進認証を使用するしくみと、次の手順について説明します。

  1. アプリが Microsoft ID にトークンを要求する
  2. アプリがアクセス トークンを受け取る
  3. JWT を使用して API を呼び出すアプリ / 権限付与
  4. 内省
  5. 共有シグナルとイベント
  6. 重大なイベントの評価
  7. 条件付きアクセス ポリシーの評価
  8. API 継続的アクセス評価と呼ばれます
  9. クレーム異議

継続的アクセス評価を使用すると、アプリケーションの承認により、アクセス トークンの有効期間外に取り消されたリソースにアクセスできます。 たとえば、アプリケーションには、さらに 75 分間有効なトークンがあります。 資格情報の侵害により、ユーザーのリスクが高い状態になります。 CAE はリソースへのアプリのアクセスをブロックし、続行する前にユーザーに再認証を要求します。 したがって、CAE は、アプリのセキュリティを向上させるための主な目標を達成します。

トークンの有効期間外にリソースへのアクセスを取り消すことができるため、Microsoft Entra ID は有効期間が長い間トークンを発行できます。 CAE をサポートするアプリの場合、Microsoft Entra ID は最大 28 時間有効なトークンを発行できます。 このトークンの有効期間が長いほどアプリの回復性は向上しませんが、アプリがトークンを要求する頻度が大幅に減る必要があるため、アプリケーションのコストが削減されます。

CAE は、Microsoft Entra ID からアクセス トークンを取得する際にアプリで発生する可能性がある問題に対するアプリの回復性を向上させます。 可能な限り、Microsoft Entra ID は、アクセス トークンを含むトークン応答の一部として更新時間を発行します。 Microsoft 認証ライブラリ (MSAL) では、この更新時間を使用して、事前にトークンを更新します。 更新時間は、トークンの有効期限の一部 (通常は半分) です。 MSAL がトークンの有効期限の前にアクセス トークンを更新できる限り、アプリはトークン更新の問題に対して回復性があります。

たとえば、アプリが CAE をサポートしている場合、Microsoft Entra ID は、24 時間有効な Microsoft Graph を呼び出すアプリを承認するトークンを発行します。 Microsoft Entra ID は、12 時間後に事前にトークンを更新するように MSAL に指示します。 元のアクセス トークンがまだ 12 時間有効であるために MSAL がアクセス トークンの更新に失敗した場合、アプリは Microsoft Entra ID からトークンを取得するときの問題に対する回復性が高くなります。

アプリで継続的アクセス評価を実装する

アプリケーションで継続的アクセス評価が有効な API を使用する方法に関する説明に従って、アプリとアクセスするリソース API の両方が CAE 対応である必要があります。 ただし、CAE 対応リソースを使用するようにコードを準備しても、CAE 対応ではない API を使用できなくなります。 MSAL を使用しないアプリケーションでは、CAE を使用するための 要求チャレンジ、要求要求、およびクライアント機能 のサポートを追加できます。

次のステップ