使用 零信任 原則增加應用程式安全性
無法假設開發之應用程式周圍的安全網路周邊。 根據設計,幾乎每個開發的應用程式都會從網路周邊外部存取。 應用程式在開發時無法保證安全,或在部署後仍會保持安全。 應用程式開發人員的責任不僅是將應用程式的安全性最大化,而且會盡可能降低應用程式在遭入侵時可能造成的損害。
此外,責任還包括支援客戶和用戶不斷演進的需求,他們預期應用程式符合 零信任 安全性需求。 瞭解 零信任 模型的原則,並採用做法。 藉由學習並採用原則,可以開發更安全的應用程式,並盡可能降低在安全性中斷時可能造成的損害。
零信任 模型會規定明確驗證的文化特性,而不是隱含信任。 此模型錨定在三個主要 指導原則上:
- 明確驗證
- 使用最低權限存取
- 假設缺口
零信任 最佳做法
請遵循這些最佳做法,使用 Microsoft 身分識別平台 及其工具建置 零信任 就緒的應用程式。
明確驗證
Microsoft 身分識別平台 提供驗證機制,以驗證存取資源的個人或服務的身分識別。 套用以下所述的最佳做法, 以明確 驗證任何需要存取數據或資源的實體。
最佳做法 | 應用程式安全性的優點 |
---|---|
使用 Microsoft 驗證連結 庫 (MSAL)。 | MSAL 是一組適用於開發人員的 Microsoft 驗證連結庫。 透過 MSAL,使用者和應用程式可以進行驗證,而且可以使用幾行程式代碼取得令牌來存取公司資源。 MSAL 會使用新式通訊協定 (OpenID 連線 和 OAuth 2.0)來移除應用程式直接處理使用者認證的需求。 隨著身分識別提供者成為安全性周邊,這種認證處理可大幅改善使用者和應用程式的安全性。 此外,這些通訊協定會持續演進,以解決身分識別安全性的新範例、機會和挑戰。 |
視需要採用增強式安全性延伸模組,例如 持續存取評估 (CAE) 和條件式存取驗證內容。 | 在 Microsoft Entra ID 中,一些最常用的延伸模組包括 條件式存取、 條件式存取驗證內容 和 CAE。 使用 CAE 和條件式存取驗證內容等增強式安全性功能的應用程式必須經過程式代碼處理,才能處理宣告挑戰。 開放式通訊協定可讓 宣告挑戰和宣告要求 用來叫用額外的用戶端功能。 這些功能可能是繼續與 Microsoft Entra 識別符互動,例如發生異常或使用者驗證條件變更時。 這些延伸模組可以編碼至應用程式,而不會干擾主要程式碼流程以進行驗證。 |
依應用程式類型使用正確的驗證流程。 針對 Web 應用程式,請一律嘗試使用 機密用戶端流程。 針對行動應用程式,請嘗試使用 訊息代理程式 或 系統瀏覽器 進行驗證。 | 可以保存秘密的 Web 應用程式流程(機密用戶端)會被視為比公用用戶端更安全(例如:桌面和控制台應用程式)。 當系統網頁瀏覽器用來驗證行動應用程式時,安全 單一登錄 (SSO) 體驗可讓您使用應用程式保護原則。 |
使用最低權限存取
開發人員會使用 Microsoft 身分識別平台 來授與許可權(範圍),並確認呼叫者在允許存取之前已授與適當的許可權。 藉由啟用允許授與最少存取所需的最小存取權,在應用程式中強制執行最低特殊許可權存取。 請考慮下列做法,以確保遵守 最低許可權原則:
- 評估要求的許可權,以確定已將絕對最低許可權設定為完成作業。 請勿建立具有整個 API 介面存取權的「全部攔截」許可權。
- 設計 API 時,請提供細微的許可權,以允許最低許可權的存取。 首先,將功能和數據存取分成可使用範圍和應用程式角色來控制的區段。 請勿以變更許可權語意的方式,將 API 新增至現有的許可權。
- 提供 唯讀 許可權。
Write
存取,包括建立、更新和刪除作業的許可權。 客戶端絕對不需要寫入許可權才能讀取數據。 - 同時 提供委派和應用程式 許可權。 略過應用程式許可權可能會為用戶端建立硬性需求,以達到自動化、微服務等常見案例。
- 如果使用敏感數據,請考慮使用「標準」和「完整」訪問許可權。 限制敏感性屬性,使其無法使用「標準」訪問權限來存取,例如
Resource.Read
。 然後實作「完整」訪問許可權,例如Resource.ReadFull
傳回所有可用的屬性,包括敏感性資訊。
假設缺口
Microsoft 身分識別平台 應用程式註冊入口網站是想要使用平台進行驗證和相關聯需求之應用程式的主要進入點。 註冊和設定應用程式時,請遵循以下所述的作法,將安全性缺口所造成的損害降到最低。 如需詳細資訊,請參閱 Microsoft Entra 應用程式註冊安全性最佳做法。
請考慮下列動作來防止安全性缺口:
- 正確定義應用程式的重新導向 URI。 請勿對多個應用程式使用相同的應用程式註冊。
- 確認應用程式註冊中用於擁有權的重新導向 URI,並避免網域接管。 請勿將應用程式建立為多租使用者,除非它是預期。 |
- 請確定應用程式與服務主體擁有者一律會針對在租用戶中註冊的應用程式定義和維護。