如何偵測和調查非使用中的使用者帳戶
在大型環境中,當員工離開組織時,其使用者帳戶不一定會遭到刪除。 身為 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 Graph 偵測非使用中的使用者帳戶
您可以藉由評估數個屬性來偵測非使用中的帳戶,其中有些屬性可在 Microsoft Graph API 的 beta
端點上取得。 我們不建議在實際執行環境中使用搶鮮版 (Beta) 端點,但會邀請您試用。
lastSignInDateTime
屬性是由 Microsoft Graph API 的 signInActivity
資源類型揭露。 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
上次成功登入的日期和時間 (beta):此案例僅適用於 Microsoft Graph API 的
beta
端點。 您可以要求lastSuccessfulSignInDateTime
在指定日期之前的使用者清單:https://graph.microsoft.com/beta/users?$filter=signInActivity/lastSuccessfulSignInDateTime le 2019-06-01T00:00:00Z
注意
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 小時才能完成更新,這表示日期和時間可能不是最新的。 如果您需要查看近乎即時的活動,請選取 [登入] 圖格上的 [查看所有登入] 連結,以檢視該使用者的所有登入活動。