[2022-10-30 更新] 微軟已於 2022-10-1 起停用 Exchange Online 服務之 HTTP 基本驗證功能,應用程式密碼依賴基本驗證,現已無法使用,細節可參考使用 OAuth 認證存取 Office 365 雲端 Exhange 收發信一文。相關資訊

最近在玩 Office 365 (Office 365 2020/4/22 起已更名為 Microsoft 365,但 Office 365 較能望文生義,本文章兩個名詞都用,二者同義),被迫新學了一堆 Azure AD、MFA (Multi-Factor Authentciation 多重要素驗證)的知識。訊息量之大,像是原本站在飲水機前想喝點水,卻發現這根本是支他 X 的消防栓啊!

thumbnail

身為一個 Azure / Microsoft 365 鄉巴佬,整理一下這兩天的發現及心得,如有缺漏謬誤,再請各方高手指正。

Microsoft 365 有分為家用版、商務版以及企業版,企業版又分 E3、E5、F3 等方案,我這回測試的是 Visual Studio 訂閱提供的 Microsoft 365 E5,除了 Word/Excel/PowerPoint/Visio,還有 Teams、OneDrive、SharePoint 可用,背後還自帶了一個 Azure AD 以管理使用者帳號 (畢竟這就是企業該有的做法呀),我猝不及防被推上 MIS 系統管理員寶座,被迫搞懂現新一代 Azure 雲端 AD 的基本操作。

基於安全考量,現在新建 Microsoft 365 E5,Azure AD 都會套用安全性預設值,規定:

  • 要求所有使用者註冊 Azure AD Multi-Factor Authentication。
  • 要求系統管理員執行多重要素驗證。
  • 要求使用者在必要時執行多重要素驗證。
  • 封鎖舊版驗證通訊協定。
  • 保護特殊權限的活動,例如存取 Azure 入口網站。

如此,沒有特殊需求的組織或沒有經驗的管理者使用較安全的管理政策,有特殊需求時再透過條件式存取放寬。

先說一下應用程式密碼是什麼東西?

啟用 MFA 之後,客戶端程式如要以特定使用者身分存取 Office 365 或 Exchange,標準做法是跳出瀏覽器視窗顯示微軟登入網頁,以 OAuth 方式實現身分認證;但對舊版程式(Office 2010 或更早版本)或自己寫的排程或服務,因於不支援兩步驟驗證或無互動操作介面,用帳號密碼登入使用 API 是較簡便可行的做法。(例如: 使用 EWS 收發 Office 365 / Exchange 信件)

啟用 MFA 時,輸入使用者密碼後還需啟動額外驗證步驟,程式若不支援便會驗證失敗。為兼顧安全及程式需求,我們可為程式建立應用程式密碼(App Password),這些密碼由系統自動產生,不易被猜中,使用應用程式密碼可略過額外驗證。每個使用者可產生最多 40 組應用程式密碼,有疑慮可註銷重新產生,與正式的使用者密碼脫鉤。而使用應用程式密碼登入時不能執行系統管理動作,稍稍限縮外流風險,另外具系統管理員身分的使用者不能建立應用程式密碼。

當然,應用程式密碼之外,還有另一個選擇是關閉 MFA 直接用使用者的帳號密碼登入,但這等同完全喪失 MFA 保護,若密碼外流也不像應用程式密碼會被禁止用於管理,安全性較差,不推。

以上講得雲淡風輕,是我摸索完一圈整理出來的資訊,實際我遇到的狀況是 Azure AD 預設不允許使用者建立應用程式密碼,要經過一串複雜設定才能啟用,官方文件說明偏零碎,我歷經不斷爬文,釐清沒聽過的名詞及在陌生介面反覆嘗試及失敗,幾近怒火攻心後才成功,噗。為了避免有相似需求的朋友步上後塵,分享我摸索出來的步驟:

  1. 取消安全性預設值
    你必須停用安全性預設值,為個別使用者啟甪(並強制 Enforce) MFA 才能使用應用程式密碼參考

    停用安全性預設值的步驟:

  2. 允許使用者建立應用程式密碼

  3. 建立應用程式密碼
    使用 Microsoft 365 Admin Center / 使用者 / 作用中的使用者,點「多重要素驗證」:

    啟用指定使用者的 MFA:

    啟用後有兩件事要做,先管理使用者設定清除現有應用程式密碼,再設定強制:

  4. 使用該帳號登入 Microsoft 365,在帳號安全性資訊新增登入方法,選單應該就有應用程式密碼可以選擇囉!


Comments

# by JS

謝謝分享,雖然設定了,但驗證還未能通過

Post a comment