Microsoft App Password 的安全悖論:一場設計過渡期的模糊帳

更新於 發佈於 閱讀時間約 3 分鐘

在部署或維護 Microsoft 365 郵件服務的過程中,許多技術人員或開發者可能曾因 "應用程式密碼(App Password)" 而陷入長時間測試與除錯的迴圈。這篇文章希望從中立的角度,釐清 App Password 的實際功能限制,避免大家重複走過不必要的彎路。

raw-image


一、什麼是 App Password?

App Password 是在使用者帳號啟用多重身份驗證(MFA, Multi-Factor Authentication)後,用於不支援 MFA 的舊版應用程式所產生的替代性密碼。典型用途包括:

  • 舊版 Outlook(2010 或更早)
  • 不支援 OAuth 的 IMAP 或 POP 郵件工具
  • 一些不支援現代驗證的桌面程式

Microsoft 原意是提供過渡期的相容方案,並非長期使用建議。

請特別注意:App Password 僅支援收信, 完全不支援 SMTP 發信。這是最容易誤判的重點。

二、App Password 的 SMTP 限制

許多人在使用 App Password 結合 SMTP 發信時會遭遇如下錯誤:

535 5.7.3 Authentication unsuccessful

這並非密碼錯誤,而是 Microsoft 明確不支援使用 App Password 登入 SMTP(smtp.office365.com)。即使在管理中心開啟 SMTP AUTH 設定,也無法繞過這一限制。

這點在 Microsoft 官方文件中有清楚說明(參考來源於文末),但在實際設定介面中缺乏明確提示,導致使用者誤以為 SMTP 也是可用場景之一。

三、哪些協議仍支援 App Password?

raw-image

四、這樣的設計會讓人混淆嗎?

坦白說,會。

使用者看到可以產生 App Password,直覺會認為這是一組可以讓應用完整收發信的密碼,卻在實作 SMTP 時失敗。這樣的體驗會讓使用者以為自己設定錯誤、密碼錯誤、權限不足,進而浪費時間進行交叉測試與錯誤診斷。

從安全演進的角度來看,這是合理的政策取向。但從產品體驗角度來看,若能在產生 App Password 的介面註明其適用協議範圍,將大幅減少混淆。

五、該怎麼做才正確?

若你需要使用 SMTP 發信,請考慮以下方案:

  1. ✅ 升級應用程式,改用支援現代驗證(Modern Authentication)
  2. ✅ 改採 Microsoft Graph API 實作 sendMail 功能
  3. ✅ 若為共用信箱發信需求,請確保使用者擁有 Send As 權限,並以支援 OAuth2 的程式操作

六、結語:從過渡工具到現代架構

App Password 是一個在雲端轉型過程中被引入的妥協方案,最初的設計是合理的。但隨著 Microsoft 365 架構趨於完整,支援 OAuth2 幾乎成為所有應用的基本要求。

這篇文章希望能幫助你釐清 App Password 的定位,避免浪費不必要的設定時間,並順利將系統架構導向更穩定與現代的驗證方式。

參考資料:

支援 Microsoft 365 OAuth 2.0 的郵件客戶端清單(參考用)

raw-image
提醒:各郵件客戶端需為最新版,並正確設定為 OAuth 模式,才能正常通過驗證與授權流程。
avatar-img
Stan Wu 吳信典
8會員
64內容數
我是 Stan Wu 吳信典。 我相信:「我們從程式設計的邏輯世界走來,以為萬物都能被預測與控制,直到遇見 AI,才發現智慧不只是規則的堆疊,而是滲透在無數經驗中的模糊與真實。」 我也始終堅信:「簡單,就是極致的美學。」
留言
avatar-img
留言分享你的想法!
Stan Wu 吳信典 的其他內容
BND、VGIT 退稅入帳啦! 透過 QI 合格券商投資美國債券 ETF(如 BND、VGIT),配息中的部分稅款可自動退還。這筆退稅雖不大,卻是穩健投資的肯定與回報。你也持有嗎?快去帳戶看看吧!
當價格成為產業競爭的唯一標準,我們是否也同時失去了品質、創新與選擇? 本文從全球產業鏈的變化出發,探討價格主導的邏輯對價值創造的影響,並思考如何在多變的貿易環境中,重新定義可持續的生產模式與公平競爭的未來。
水塔再大,不如每天好好喝水。 財富的關鍵不在你擁有多少,而是你實際用來滋養生活多少。 控制感來自可用性,而非總量。真正的富足,是喝得剛好,活得自在。
BND、VGIT 退稅入帳啦! 透過 QI 合格券商投資美國債券 ETF(如 BND、VGIT),配息中的部分稅款可自動退還。這筆退稅雖不大,卻是穩健投資的肯定與回報。你也持有嗎?快去帳戶看看吧!
當價格成為產業競爭的唯一標準,我們是否也同時失去了品質、創新與選擇? 本文從全球產業鏈的變化出發,探討價格主導的邏輯對價值創造的影響,並思考如何在多變的貿易環境中,重新定義可持續的生產模式與公平競爭的未來。
水塔再大,不如每天好好喝水。 財富的關鍵不在你擁有多少,而是你實際用來滋養生活多少。 控制感來自可用性,而非總量。真正的富足,是喝得剛好,活得自在。
你可能也想看
Google News 追蹤
Thumbnail
【vocus 精選投資理財/金融類沙龍,輸入 "moneyback" 年訂閱 9 折】 市場動盪時,加碼永遠值得的投資標的——「自己」 川普政府再度拋出關稅震撼彈,全球市場應聲重挫,從散戶到專業投資人,都急著找尋買進殺出的訊號,就是現在,輪到知識進場!把握時機讓自己升級,別放過反彈的機會!
Thumbnail
當你在工作中經常運用 Power Platform 家族的各種工具,包含 Power Apps, Power Automate, Power BI …等。對於這些工具漸漸熟練之後,可能就會開始思考一個問題:我該考一張微軟官方認證的證照來為我的職涯加分嗎?
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
下載處: 安裝msi  https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 或單獨使用 https://the.earth.li/~sgtatham/putty/latest/w64/pscp.exe  安裝好可以
Thumbnail
AWS Systems Manager 建立 Activations Windows 使用PowerShell [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12' $code = "activation-code
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
Thumbnail
在C#程式開發中,有時候我們需要透過Outlook來發送郵件。這篇教學將會教你如何使用Microsoft.Office.Interop.Outlook來完成這個任務。
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
Thumbnail
提到後端工程師,似乎就只是開發 API,但一個複雜的系統其實不太可能只透過 API 就能完成,例如一個簡單的功能,註冊會員,其實是由好幾個不同類型的工作互相配合,您才能收到開通信,才確保資料庫不會有一堆未開通帳號等。所以今天就來聊聊一個系統有幾種不同執行方式的工作。
Thumbnail
【vocus 精選投資理財/金融類沙龍,輸入 "moneyback" 年訂閱 9 折】 市場動盪時,加碼永遠值得的投資標的——「自己」 川普政府再度拋出關稅震撼彈,全球市場應聲重挫,從散戶到專業投資人,都急著找尋買進殺出的訊號,就是現在,輪到知識進場!把握時機讓自己升級,別放過反彈的機會!
Thumbnail
當你在工作中經常運用 Power Platform 家族的各種工具,包含 Power Apps, Power Automate, Power BI …等。對於這些工具漸漸熟練之後,可能就會開始思考一個問題:我該考一張微軟官方認證的證照來為我的職涯加分嗎?
Thumbnail
我們在「【Message Queue - Kafka】不斷的試誤…, 用Docker來嘗試安裝Kafka」有介紹如何架設kafka, 其中我們使用環境變數來進行kafka的配置, 但除了環境變數之外, 其實還能夠用檔案配置的方式來對kafka進行配置, 如此一來我們就可以將配置檔與啟動檔完全分開,
Thumbnail
下載處: 安裝msi  https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 或單獨使用 https://the.earth.li/~sgtatham/putty/latest/w64/pscp.exe  安裝好可以
Thumbnail
AWS Systems Manager 建立 Activations Windows 使用PowerShell [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12' $code = "activation-code
Thumbnail
在日常生活和工作中,我們經常需要發送電子郵件來進行溝通和分享資訊。本文將介紹如何使用Python的pywin32模組連接到Outlook,並通過程式來自動發送郵件。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
Thumbnail
在C#程式開發中,有時候我們需要透過Outlook來發送郵件。這篇教學將會教你如何使用Microsoft.Office.Interop.Outlook來完成這個任務。
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
Thumbnail
提到後端工程師,似乎就只是開發 API,但一個複雜的系統其實不太可能只透過 API 就能完成,例如一個簡單的功能,註冊會員,其實是由好幾個不同類型的工作互相配合,您才能收到開通信,才確保資料庫不會有一堆未開通帳號等。所以今天就來聊聊一個系統有幾種不同執行方式的工作。