非アクティブなユーザー アカウントを検出して調査する方法
[アーティクル] 02/06/2025
23 人の共同作成者
フィードバック
この記事の内容
大規模な環境では、従業員が退職したときに、ユーザー アカウントが必ず削除されるとは限りません。 このような使用されなくなったユーザー アカウントはセキュリティ上のリスクとなるため、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 Entra 管理センターまたは Microsoft Graph API を使用して、非アクティブなユーザー アカウントを見つけることができます。 非アクティブなユーザー アカウントの組み込みレポートはありませんが、最後のサインイン日時を使用して、ユーザー アカウントが非アクティブかどうかを判断できます。
ユーザーの最後のサインイン時刻を見つけるには、Microsoft Entra 管理センターでユーザーの一覧を確認できます。 すべてのユーザーがユーザーの一覧を表示できますが、一部の列と詳細は、適切なアクセス許可を持つユーザーのみが使用できます。
Microsoft Entra 管理センター にレポート閲覧者 以上でサインインしてください。
ID >ユーザー >すべてのユーザー を参照します。
[ビューの管理] を選択し、次に [列の編集] を選択します。
一覧から [+ 列の追加] を選択し、一覧から [前回の対話型サインイン時刻] を選択し、次に [保存] を選択します。
列が[すべてのユーザー] リストに表示されたら、フィルターの追加 を選択して、フィルターオプションで検索の期間を設定します。
[演算子] に [< =] を選択し、選択したその日付より "前の" 最後のサインインを見つける日付を選択します。
複数のプロパティを評価することで、非アクティブなアカウントを検出できます。 lastSignInDateTime
のリソースの種類 signInActivity
によって公開される プロパティ。 lastSignInDateTime プロパティは、ユーザーが Microsoft Entra ID で対話型サインインを最後に試行した時刻を示します。 このプロパティを使用すると、次のシナリオの解決策を実行できます。
すべてのユーザーの最終サインイン日時
"すべてのユーザー" の最後のサインイン日付のレポートを生成します。 応答では、すべてのユーザーの一覧と、それぞれのユーザーの最後の LastSignInDateTime が提供されます。
https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity
サインインが最後に成功した日時
このクエリは、ユーザー一覧に最後のサインイン日を追加し、Microsoft Entra 管理センターで特定の日付でフィルター処理するのと似ています。 lastSuccessfulSignInDateTime
または lastSignInDateTime
が指定の日付より "前" のユーザーの一覧を要求できます。 このクエリの応答はユーザーの詳細を提供しますが、ユーザーのサインイン アクティビティは提供しません。 これらの詳細を表示するには、Users by name シナリオでクエリを試してください。
https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSuccessfulSignInDateTime le 2024-06-01T00:00:00Z
https://graph.microsoft.com/v1.0/users?$filter=signInActivity/lastSignInDateTime le 2024-06-01T00:00:00Z
名前別のユーザー
このシナリオでは、特定のユーザーを名前で検索します。 このクエリの応答には、最後のサインインの日付、時刻、および要求 ID が含まれます。
要求 :
GET `https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'Isabella Simonsen')&$select=displayName,signInActivity`
応答 :
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(displayName,signInActivity)",
"value": [
{
"displayName": "Stine Romund",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"signInActivity": {
"lastSignInDateTime": "2024-12-10T17:38:26Z",
"lastSignInRequestId": "20a94b1b-ade2-4f4e-9c55-609f7cd97600",
"lastNonInteractiveSignInDateTime": "2024-12-10T17:38:11Z",
"lastNonInteractiveSignInRequestId": "94c369e6-249e-4595-bb86-495ea9a81e00",
"lastSuccessfulSignInDateTime": "2024-12-10T17:38:26Z",
"lastSuccessfulSignInRequestId": "20a94b1b-ade2-4f4e-9c55-609f7cd97600"
}
}
]
}
lastSignInDateTime
: サインインエラーを含む、最後の対話型サインイン試行の日時。 最後のサインイン試行が成功した場合、このプロパティの日時は lastSuccessfulSignInDateTime
と同じになります。
lastNonInteractiveSignInDateTime
: 最後の非対話型サインイン試行の日時。
lastSuccessfulSignInDateTime
: 最後に成功した対話型サインインの日時。
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 時間かかる場合があります。つまり、この日時は最新のものではない可能性があります。 ほぼリアルタイムでアクティビティを確認する必要がある場合は、[サインイン] タイルの[すべてのサインインを表示する] リンクを選択して、そのユーザーのすべてのサインイン アクティビティを表示します。
関連するコンテンツ