非アクティブなユーザー アカウントを検出して調査する方法

大規模な環境では、従業員が退職したときに、ユーザー アカウントが必ず削除されるとは限りません。 このような使用されなくなったユーザー アカウントはセキュリティ上のリスクとなるため、IT 管理者はそれらを検出して処理する必要があります。

この記事では、Microsoft Entra ID で古くなったユーザー アカウントを処理する方法について説明します。

Note

この記事は、Microsoft Entra ID で非アクティブなユーザー アカウントを検索する場合にのみ適用されます。 Azure AD B2C で非アクティブなアカウントを検索する場合には適用されません。

前提条件

Microsoft Graph を使用して lastSignInDateTime プロパティにアクセスするには:

  • Microsoft Entra ID の P1 または P2 エディション ライセンスが必要です。

  • 次の Microsoft Graph アクセス許可をアプリに付与する必要があります。

    • AuditLog.Read.All
    • User.Read.All

非アクティブなユーザーアカウントとは

非アクティブなアカウントとは、組織のメンバーがリソースにアクセスするためにもう必要としなくなったユーザー アカウントのことです。 非アクティブなアカウントの主要な識別要素の 1 つは、環境へのサインインにそれらが "しばらくの間" 使用されていないことです。 非アクティブなアカウントはサインイン アクティビティに関連付けられているため、アカウントが最後にサインインを試みた時刻のタイムスタンプを使用して、非アクティブなアカウントを検出できます。

この方法の課題は、自分の環境にとって "しばらくの間" が何を意味するかを定義することです。 たとえば、ユーザーが休暇中のために、"しばらくの間" 環境にサインインしていない可能性があります。 非アクティブなユーザー アカウントのデルタを定義するときは、環境にサインインしていない正当な理由をすべて考慮に入れる必要があります。 多くの組織では、非アクティブなユーザー アカウントのデルタは 90 ~ 180 日です。

最後のサインインによって、ユーザーがリソースへのアクセスを継続的に必要とする可能性があるかを的確に判断できます。 グループ メンバーシップまたはアプリへのアクセスがまだ必要とされているか、それとも削除された可能性があるかを判断するのに役立つこともあります。 外部ユーザーの管理では、外部ユーザーがテナント内でまだアクティブのままか、それともクリーンアップされたかを判断できます。

Microsoft Graph を使用して非アクティブなユーザー アカウントを検出する

非アクティブなアカウントを検出するには、いくつかのプロパティを評価します。その一部は、Microsoft Graph API の beta エンドポイントで使用できます。 運用環境でベータ エンドポイントを使用することはお勧めしませんが、ぜひお試しください。

Microsoft Graph API のリソースの種類 signInActivity によって公開される lastSignInDateTime プロパティ。 lastSignInDateTime プロパティは、ユーザーが Microsoft Entra ID で対話型サインインを最後に試行した時刻を示します。 このプロパティを使用すると、次のシナリオの解決策を実行できます。

  • すべてのユーザーの最終サインイン日時: このシナリオでは、すべてのユーザーの最後のサインイン日のレポートを生成する必要があります。 すべてのユーザーの一覧と、それぞれのユーザーの最後の lastSignInDateTime を要求します。

    • https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity
  • 名前による特定ユーザー: このシナリオでは、特定のユーザーを名前で検索することで、lastSignInDateTime を評価できます。

    • https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'Isabella Simonsen')&$select=displayName,signInActivity
  • 日付による特定ユーザー: このシナリオでは、指定した日付よりも前の lastSignInDateTime を持つユーザーのリストを要求します。

    • https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSignInDateTime le 2019-06-01T00:00:00Z
  • 前回成功したサインイン日時 (ベータ): このシナリオは、Microsoft Graph API の beta エンドポイントでのみ使用できます。 指定した日付よりも前の lastSuccessfulSignInDateTime を持つユーザーの一覧を要求できます。

    • https://graph.microsoft.com/beta/users?$filter=signInActivity/lastSuccessfulSignInDateTime le 2019-06-01T00:00:00Z

Note

signInActivity プロパティは $filter (eqnenotgele) をサポートしていますが、"他のフィルター可能なプロパティと一緒に使用することはできません"。 既定では、signInActivity プロパティが返されないため、ユーザーを一覧表示するときに $select=signInActivity または $filter=signInActivity を指定する必要があります。

lastSignInDateTime プロパティに関する考慮事項

以下の詳細は、lastSignInDateTime プロパティに関連するものです。

  • Microsoft Graph APIリソースの種類 signInActivity によって lastSignInDateTime プロパティが表示されます。

  • このプロパティは、Get-MgAuditLogDirectoryAudit コマンドレットでは使用 "できません"。

  • 対話型サインインが試行されるたびに、基になるデータ ストアが更新されます。 通常、サインインは、6 時間以内に関連するサインイン レポートに表示されます。

  • lastSignInDateTime タイムスタンプを生成するには、サインインを試行する必要があります。 サインイン試行に失敗した場合も成功した場合も、Microsoft Entra サインイン ログに記録されている限り、lastSignInDateTime タイムスタンプが生成されます。 次の場合、lastSignInDateTime プロパティの値は空白になる可能性があります。

    • ユーザーが最後に試行したサインインが、2020 年 4 月より前に行われた。
    • 影響を受けるユーザー アカウントが、サインインに使用されたことがない。
  • 前回のサインインの日付は、ユーザー オブジェクトに関連付けられます。 この値は、ユーザーの次回のサインインまで保持されます。 更新には最大 24 時間かかる場合があります。

Microsoft Entra 管理センターでの単一ユーザーの調査方法

ヒント

この記事の手順は、開始するポータルによって若干異なる場合があります。

あるユーザーの最新のサインイン アクティビティを確認する必要がある場合は、Microsoft Entra ID でユーザーのサインインの詳細を確認できます。 前のセクションで説明した Microsoft Graph の名前による特定ユーザーのシナリオを使用することもできます。

  1. Microsoft Entra 管理センターレポート閲覧者以上でサインインしてください。

  2. ID>ユーザー>すべてのユーザー を参照します。

  3. 一覧からユーザーを選択します。

  4. ユーザーの [概要] の [マイ フィード] 領域で、[サインイン] タイルを見つけます。

    Screenshot of the user overview page with the sign-in activity tile highlighted.

このタイルに表示される最終サインイン日時は、更新されるまでに最大 24 時間かかる場合があります。つまり、この日時は最新のものではない可能性があります。 ほぼリアルタイムでアクティビティを確認する必要がある場合は、[サインイン] タイルの[See all sign-ins] (すべてのサインインを表示する) リンクを選択して、そのユーザーのすべてのサインイン アクティビティを表示します。

次のステップ