非アクティブなユーザー アカウントを検出して調査する方法
大規模な環境では、従業員が退職したときに、ユーザー アカウントが必ず削除されるとは限りません。 このような使用されなくなったユーザー アカウントはセキュリティ上のリスクとなるため、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
(eq
、ne
、not
、ge
、le
) をサポートしていますが、"他のフィルター可能なプロパティと一緒に使用することはできません"。 既定では、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 の名前による特定ユーザーのシナリオを使用することもできます。
Microsoft Entra 管理センターにレポート閲覧者以上でサインインしてください。
ID>ユーザー>すべてのユーザー を参照します。
一覧からユーザーを選択します。
ユーザーの [概要] の [マイ フィード] 領域で、[サインイン] タイルを見つけます。
このタイルに表示される最終サインイン日時は、更新されるまでに最大 24 時間かかる場合があります。つまり、この日時は最新のものではない可能性があります。 ほぼリアルタイムでアクティビティを確認する必要がある場合は、[サインイン] タイルの[すべてのサインインを表示する] リンクを選択して、そのユーザーのすべてのサインイン アクティビティを表示します。