如何偵測和調查非使用中的使用者帳戶
在大型環境中,當員工離開組織時,其使用者帳戶不一定會遭到刪除。 身為 IT 系統管理員,您會想要偵測並解決這些已淘汰的使用者帳戶,因為這些帳戶代表著安全性風險。
本文說明在 Microsoft Entra ID 中處理已淘汰使用者帳戶的方法。
注意
本文僅適用於在 Microsoft Entra ID 中尋找非使用中的使用者帳戶。 但不適用於在 Azure AD B2C 中尋找非使用中的帳戶。
必要條件
若要使用 Microsoft Graph 存取 lastSignInDateTime
屬性:
您需要Microsoft Entra ID P1 或 P2 授權。
您必須將下列 Microsoft Graph 權限授與應用程式:
- AuditLog.Read.All
- User.Read.All
報表讀者 是存取活動記錄所需的最低特殊許可權角色。
- 如需角色的完整清單,請參閱 依工作設定的最低許可權角色。
什麼是非使用中的使用者帳戶?
非使用中帳戶是組織成員不再需要用來取得您資源存取權的使用者帳戶。 要識別非使用中帳戶的一個重點,就是這些帳戶「已有一段時間未用來登入您的環境」。 由於非使用中的帳戶會繫結至登入活動,因此您可以使用上次帳戶嘗試登入的時間戳記來偵測非使用中帳戶。
這種方法的挑戰性在於,定義您環境中「一段時間」的所代表的時間長短。 例如,使用者可能會有「一段時間」不會登入環境 ,因為他們在休假。 您必須考慮所有您無法登入環境的正當理由。 在許多組織中,非使用中用戶帳戶的合理視窗介於90到180天之間。
上次登入日期提供用戶持續需要存取資源的潛在見解。 此資訊可協助您判斷是否仍需要該人員是否需要群組成員資格或應用程式存取權,或是否可移除。 針對外部使用者管理,您可以判斷外部使用者是否仍然在租賃使用者內活躍或應該被移除。
如何尋找非使用中的用戶帳戶
您可以使用 Microsoft Entra 系統管理中心或 Microsoft Graph API 來尋找非使用中的使用者帳戶。 雖然沒有非使用中用戶帳戶的內建報告,但您可以使用上次登入日期和時間來判斷用戶帳戶是否為非使用中狀態。
若要尋找使用者的最後一次登入時間,您可以在 Microsoft Entra 系統管理中心查看您的使用者清單。 雖然所有使用者都可以看到使用者清單,但某些數據行和詳細數據僅適用於具有適當許可權的使用者。
以至少報表讀者身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別]>[使用者]>[所有使用者]。
選取 [管理檢視],然後[編輯資料行]。
從清單中,選取 [+ 新增欄],選取 [上次互動式登入時間 ],然後選取 [儲存 ]。
當欄位在 [所有使用者] 列表中顯示時,選擇 [新增篩選條件,然後利用篩選選項設定搜尋的時間範圍。
- 選取 < = 作為 運算符,然後選取日期,以尋找在所選日期 之前的最後一個登入。
您可以藉由評估數個屬性來偵測非使用中的帳戶。
lastSignInDateTime
屬性是由 signInActivity
的 資源類型揭露。 lastSignInDateTime 屬性會顯示使用者上次在 Microsoft Entra ID 中進行互動式登入嘗試的時間。 使用此屬性,您可以針對下列案例實作解決方案:
所有使用者上次登入日期和時間
生成關於所有使用者上次登入日期的報告 。 **
回應會提供所有使用者的名單,以及每位使用者的最後一次登入時間 (lastSignInDateTime)。
https://graph.microsoft.com/v1.0/users?$select=displayName,signInActivity
上次成功登入日期和時間
此查詢類似於將上次登入日期新增至使用者清單,並依Microsoft Entra 系統管理中心的特定日期進行篩選。 您可以在指定日期之前,要求具有 lastSuccessfulSignInDateTime
或 lastSignInDateTime
的使用者清單。 此查詢的回應會提供使用者的詳細數據,但不會提供使用者的登入活動。 若要查看這些詳細數據,請在 Users 依名稱的 案例中嘗試查詢。
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
名稱排序使用者
在此案例中,您會依名稱搜尋特定使用者。 此查詢的回應包括其上次登入的日期、時間和要求標識碼。
要求:
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
:上次成功互動式登錄的日期和時間。
注意
signInActivity
屬性支援 $filter
(eq
、ne
、not
、ge
、le
),但不支援使用任何其他可篩選的屬性。
$select=signInActivity
時您必須指定 $filter=signInActivity
或 ,因為預設並不會傳回 signInActivity 屬性。
lastSignInDateTime 屬性的考量
以下是 lastSignInDateTime
屬性的相關詳細資料。
lastSignInDateTime 屬性是由 Microsoft Graph API 的 signInActivity 資源類型所公開。
此屬性無法透過 Get-MgAuditLogDirectoryAudit cmdlet 取得。
每個互動式登入嘗試都會更新基礎資料存放區。 通常,登入會在 6 小時內顯示在相關的登入報告中。
若要產生 lastSignInDateTime 時間戳記,您必須嘗試登入。 不論登入嘗試失敗還是成功,只要記錄在 Microsoft Entra 登入記錄中,就會產生 lastSignInDateTime 時間戳記。 lastSignInDateTime 屬性值在下列情況下可能會空白:
- 使用者最後一次登入嘗試發生在 2020 年 4 月之前。
- 受影響的使用者帳戶從未用於登入嘗試。
上次登入日期與使用者物件相關聯。 此值會保留到使用者的下一次登入為止。 最多可能需要 24 小時才能完成更新。
如何在 Microsoft Entra 系統管理中心調查單一使用者
如果您需要檢視使用者的最新登入活動,可以在 Microsoft Entra ID 中檢視使用者的登入詳細資料。 您也可以使用前一節所述的 Microsoft Graph 依名稱尋找使用者案例。
以至少報表讀者身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別]>[使用者]>[所有使用者]。
從清單中選取使用者。
在使用者 [概觀] 的 [我的摘要] 區域中,找出 [登入] 圖格。
此圖格顯示的最後登入日期和時間最多可能需要 24 小時才能完成更新,這表示日期和時間可能不是最新的。 如果您需要查看近乎即時的活動,請選取 [登入] 圖格上的 [查看所有登入] 連結,以檢視該使用者的所有登入活動。
相關內容