Windows 10 / 11 開始開放讓使用者使用 Microsoft Account& Entra ID 登入
但你有沒有很好奇,整體驗證流程好像非常流暢,甚至是就像本地帳號一樣?
沒錯!他使用了一些小技巧,今天就讓我們來看看微軟在驗證流程上做了些什麼
這時候我們就要講一下 Windows 驗證流程,系統是如何驗證你的帳號就像有人企業中會用第三方驗證的解決方案,或是透過 Google Account Login ,這些軟體怎麼做到的。
就是透過 Security Support Provider (SSP) 做到的,在 SSP 會去處理你的驗證需求,跟對應的伺服器做溝通,然後回傳訊息給系統說他驗證是否通過。
而在 Windows 10 支援微軟帳號 or Entra ID 認證就是加入新的 SSP,俗稱為 cloudap,負責處理你的 SSO 等驗證需求,最後幫你對應到本地系統的使用者帳號。
如果你仔細思考這個 Microsoft Account 或 Entra ID 驗證流程,實際上並不是跟本地系統對密碼,所以你的電腦本身是不知道密碼的,驗證都是與外部伺服器進行互動。
問題就來了!當電腦處於離線狀態時,作業系統要如何讓你登入?此時就會涉及從 Windows 10/11 開始提供的 Windows Hello 功能,當你透過 Windows Hello 驗證後系統才會允許你登入,而且在這個過程中,作業系統並未真實紀錄你的帳號密碼。
那麼什麼情況下會用到真實的密碼?或者說,如何知道電腦什麼時候才會記憶 Microsoft Account 或 Entra ID 的密碼?根據我的測試,只有在你真正輸入密碼登入而非透過 Windows Hello 登入時,系統才會暫存你的密碼 Hash。所以,如果自從作業系統綁定微軟帳號後都未手動輸入過密碼,系統是不會儲存你的密碼 Hash。
這有什麼實際用途?如果你像我一樣使用 Microsoft Account 進行遠端桌面 (Remote Desktop) 操作,若未事先處理就會用到天荒地老都登入不進去,你可能會遇到重複輸入 Microsoft 帳號密碼卻無法透過驗證的情況,因為系統根本沒有你真實密碼的 Hash。因此,你必須在本地登入時手動輸入一次密碼,才能解決此問題。