零信任身份與存取管理開發最佳實務

本文將協助您作為開發人員,了解應用程式開發生命週期中的身份與存取管理最佳實務。 你開始開發安全、 符合零信任 規範的應用程式,並具備身份與存取管理(IAM)。

零信任安全架構採用明確驗證、最低權限存取及假設違規的原則。 同時保護使用者與資料,同時允許從網路邊界外存取應用程式等常見情境。 減少對安全網路邊界後互動的隱性信任依賴,避免這些互動容易受到安全攻擊的威脅。

雖然零信任的實施持續演進,但每個組織的歷程皆獨一無二。 它通常從使用者與應用程式的身份開始。 以下是許多組織在推行零信任政策時優先執行的政策與控管措施:

  • 為應用程式和服務實施憑證衛生與輪替政策。 當惡意攻擊者入侵憑證或密碼等秘密時,他們可以在冒充應用程式身份的情況下取得系統存取權杖。 接著他們存取敏感資料,橫向移動,並建立持久化。
  • 推出強而有力的驗證。 IT 管理員正在設定需要多重驗證和無密碼 FIDO2 裝置的政策。
  • 限制用戶同意僅限於具有低風險權限的應用程式,並且限於已驗證的發行商應用程式。 透過像 Microsoft Graph 這類 API 存取資料,能讓你打造豐富的應用程式。 組織與客戶會在授權前評估您的應用程式的許可請求與可信度。 IT 管理員明確採用驗證原則,要求發佈者驗證。 他們採用最小權限原則,僅允許低風險權限獲得用戶同意。
  • 封鎖舊有協定和 API。 IT 管理員正在封鎖舊有的認證協定,例如「基本認證」,並要求使用像 OpenID Connect 和 OAuth2 這類現代協定。

使用可信且基於標準的認證函式庫

為了提升應用程式的可攜性與安全性,請依據已知且被接受的標準與函式庫來開發你的應用程式。 值得信賴且以標準為基礎的認證庫能保持最新,讓您的應用程式能迅速應對最新的技術和威脅。 標準導向開發方法 論提供了所支援標準及其好處的概覽。

與其使用已知漏洞且文件繁多的協定,不如使用像 Microsoft 認證庫(MSAL)、 Microsoft Identity 網頁驗證庫和 Azure 軟體開發套件(SDK)等函式庫來開發你的應用程式。 MSAL 與軟體開發套件(SDK)允許您使用這些功能,而無需撰寫額外程式碼:

  • 條件式存取
  • 裝置註冊與管理
  • 無密碼與 FIDO2 認證

MSAL 和 Microsoft Graph 是開發 Microsoft Entra 應用程式的最佳選擇。 MSAL 開發者確保符合協定。 Microsoft 在直接使用 Microsoft Entra ID 時,會優化 MSAL 的效率。

在 Microsoft Entra ID 註冊你的應用程式

請遵循 Microsoft Entra 識別碼中應用程式屬性的安全性最佳做法。 在 Microsoft Entra ID 中註冊應用程式至關重要,因為配置錯誤或應用程式安全衛生的疏忽可能導致停機或遭到入侵。

提升安全性的應用程式屬性包括重定向 URI、存取權杖(切勿與隱含流程共用)、憑證與秘密、應用程式 ID URI,以及應用程式所有權。 定期進行資安與健康評估,類似於資安威脅模型評估。

委託身份與存取管理

開發你的應用程式,使用代幣來明確進行身份驗證和存取控制,客戶會定義並管理這些功能。 Microsoft 建議不要自行開發使用者名稱和密碼管理系統。

將憑證排除在程式碼中,讓 IT 管理員能輪換憑證,而不會關閉或重新部署你的應用程式。 可以使用像 Azure Key Vault 或 Azure Managed Identities 這樣的服務來委派 IAM。

最低權限存取的規劃與設計

零信任的一個關鍵原則是最低權限存取。 充分開發並記錄您的應用程式,讓客戶能成功配置最小權限政策。 在支援令牌和 API 時,請向客戶提供應用程式所使用資源的文件說明。

務必提供使用者執行特定任務所需的最低權限。 例如,在 Microsoft Graph 中使用細緻範圍。

在 圖檔案管理器 中探索範圍,呼叫 API 並檢查所需權限。 它們依照從最低到最高權限的順序排列。 選擇最低權限可確保您的應用程式較不易受到攻擊。

為降低應用程式的漏洞和安全被攻擊時的影響範圍,若發生安全損害,請遵循《以最小權限原則強化安全》中的指引。

安全管理數位憑證代幣

當您的應用程式向 Microsoft Entra ID 請求權杖時,請以安全方式管理:

  • 確認它們是否正確地定義於你的應用程式範圍內。
  • 適當地緩存它們。
  • 照原本的用途使用。
  • 透過檢查錯誤類別並編碼適當的回應來處理令牌問題。
  • 與其直接讀取存取權杖,不如在權杖回應中查看其範圍與細節。

支援持續存取評估(CAE)

持續存取評估 (CAE) 允許 Microsoft Graph 在安全事件時迅速拒絕存取。 例如,以下租戶管理員的活動包括:

  • 刪除或停用使用者帳號。
  • 啟用使用者的多重驗證(MFA)。
  • 明確撤銷用戶已發放的代幣。
  • 偵測到使用者進入高風險狀態。

當你支援 CAE 時,Microsoft Entra ID 發出的 Microsoft Graph 令牌有效期為 24 小時,而非標準的 60 到 90 分鐘。 CAE 透過讓 MSAL 能在令牌到期前主動刷新令牌,為你的應用程式增添韌性。

定義 IT 部門可指派給使用者與群組的應用程式角色

應用程式角色 幫助你在應用程式中實作基於角色的存取控制。 應用程式角色的常見範例包括管理員、讀者和貢獻者。 基於角色的存取控制允許您的應用程式根據 使用者或群組的定義角色,限制敏感操作。

成為已驗證的發行者

作為 已驗證的出版者,請用你的 Microsoft 合作夥伴網路帳號驗證你的身份,並完成既定的驗證流程。 對於多租戶應用程式的開發者來說,成為經過驗證的發佈者有助於建立與 IT 管理員對客戶租戶的信任。

下一步