零信任 身分識別和存取管理開發最佳做法
本文可協助您身為開發人員瞭解應用程式開發生命週期的身分識別和存取管理最佳做法。 您開始開發安全、零信任 相容且具有身分識別和存取管理的應用程式(IAM)。
零信任 安全性架構會使用明確驗證、最低特殊許可權存取和假設缺口的原則。 保護使用者和數據,同時允許從網路周邊外部存取應用程式等常見案例。 減少對安全網路周邊後方的隱含信任依賴,而這種互動可能會容易受到安全性攻擊。
產業安全性趨勢會影響應用程式需求
雖然 零信任 實作持續演進,但每個組織的旅程都是獨一無二的,而且通常會從使用者和應用程式身分識別開始。 以下是許多組織在推出 零信任 時優先處理的原則和控件:
- 實作應用程式和服務的認證衛生和輪替原則。 當攻擊者入侵憑證或密碼等秘密時,他們可以在應用程式身分識別的掩飾下,達到系統存取權的深度,以取得令牌。 然後,他們會存取敏感數據、橫向移動並建立持續性。
- 推出強身份驗證。 IT 系統管理員正在設定需要多重要素驗證和無密碼 FIDO2 裝置的原則。
- 限制使用者同意具有低風險許可權的應用程式,以存取已驗證的發行者應用程式。 存取 Microsoft Graph 等 API 中的數據可讓您建置豐富的應用程式。 在授與同意之前,組織和客戶會先評估應用程式的許可權要求和可信度。 IT 系統管理員需要發行者驗證,以明確採用驗證原則。 他們只允許使用者同意低風險許可權,以套用最低許可權原則。
- 封鎖舊版通訊協定和 API。 IT 系統管理員封鎖舊版驗證通訊協定,例如「基本身份驗證」,並要求 OpenID 連線 和 OAuth2 等新式通訊協定。
使用信任的標準型驗證連結庫
使用已知且接受的標準和連結庫開發您的應用程式,以提高應用程式可移植性和安全性。 信任且以標準為基礎的驗證連結庫保持最新狀態,讓您的 app 能夠回應最新的技術和威脅。 以標準為基礎的開發方法 提供支持的標準及其優點的概觀。
與其使用具有已知弱點的通訊協定和廣泛的檔,而是使用 Microsoft 驗證連結庫(MSAL)、 Microsoft 身分識別 Web 驗證連結庫和 Azure 軟體開發人員套件 (SDK) 等連結庫來開發您的應用程式。 MSAL 和軟體開發人員套件 (SDK) 可讓您使用這些功能,而不需要撰寫額外的程式代碼:
- 條件式存取
- 裝置註冊和管理
- 無密碼和 FIDO2 驗證
MSAL 和 Microsoft Graph 是開發 Microsoft Entra 應用程式的最佳選擇。 MSAL 開發人員可確保符合通訊協定。 Microsoft 會針對直接使用 Microsoft Entra ID 時的效率優化 MSAL。
在 Microsoft Entra 識別碼中註冊您的應用程式
遵循 Microsoft Entra 識別碼中應用程式屬性的安全性最佳做法。 Microsoft Entra 識別碼中的應用程式註冊非常重要,因為應用程式的衛生設定錯誤或失誤可能會導致停機時間或危害。
改善安全性的應用程式屬性包括重新導向 URI、存取令牌(永遠不會與隱含流程搭配使用)、憑證和秘密、應用程式識別碼 URI 和應用程式擁有權。 針對程式代碼進行與安全性威脅模型評量類似的定期安全性和健康情況評定。
委派身分識別和存取管理
開發您的應用程式,以使用令牌進行客戶定義和管理的明確身分識別驗證和訪問控制。 Microsoft 建議不要開發您自己的使用者名稱和密碼管理系統。
讓認證遠離您的程式代碼,讓IT系統管理員可以輪替認證,而不需要關閉或重新部署您的應用程式。 使用 Azure 金鑰保存庫 或 Azure 受控識別等服務來委派 IAM。
規劃及設計最低許可權存取
零信任 的主要原則是最低許可權存取權。 充分開發和記錄您的應用程式,讓您的客戶能夠成功設定最低許可權原則。 支援令牌和 API 時,請為客戶提供應用程式所呼叫之資源的良好檔。
一律提供使用者執行特定工作所需的最低許可權。 例如,在 Microsoft Graph 中使用細微範圍。
探索 Graph 總管中的範圍,以呼叫 API 並檢查所需的許可權。 它們會依最低許可權到最高許可權的順序顯示。 挑選最低的可能許可權可確保您的應用程式較不容易遭受攻擊。
請遵循增強安全性中的 指引,並遵循最低許可權 原則,以減少應用程式的攻擊面,且安全性缺口爆破半徑應該會遭到入侵。
安全地管理令牌
當您的應用程式要求來自 Microsoft Entra 識別碼的令牌時,請安全地管理它們:
- 驗證它們是否適當地限定於您的應用程式。
- 適當地快取它們。
- 如預期般使用它們。
- 檢查錯誤類別和編碼適當的回應,以處理令牌問題。
- 不要直接讀取存取令牌,而是在令牌回應中檢視其範圍和詳細數據。
支援持續存取評估 (CAE)
持續存取評估 (CAE) 可讓 Microsoft Graph 快速拒絕存取以回應安全性事件。 範例包括下列租用戶系統管理員活動:
- 刪除或停用用戶帳戶。
- 為用戶啟用多重要素驗證 (MFA)。
- 明確撤銷使用者的已發行令牌。
- 偵測移至高風險狀態的使用者。
當您支援 CAE 時,Microsoft Entra ID 呼叫 Microsoft Graph 的令牌有效期為 24 小時,而不是標準 60 到 90 分鐘。 CAE 藉由讓 MSAL 在令牌到期之前,主動重新整理令牌,以將復原功能新增至您的應用程式。
定義IT指派給使用者和群組的應用程式角色
應用程式角色 可協助您在應用程式中實作角色型訪問控制。 應用程式角色的常見範例包括 管理員 istrator、讀者和參與者。 角色型訪問控制可讓您的應用程式根據其定義的角色,限制對使用者或群組的敏感性動作。
成為已驗證的發行者
身為 已驗證的發行者,您可以使用您的 Microsoft 合作夥伴網路帳戶來驗證您的身分識別,並完成已建立的驗證程式。 對於多租使用者應用程式的開發人員,身為已驗證的發行者,可協助與客戶租使用者中的IT系統管理員建立信任。
下一步
- 自定義令牌 描述您可以在 Microsoft Entra 令牌中接收的資訊。 瞭解如何自定義令牌,以改善彈性和控制,同時提高應用程式 零信任 最低許可權的安全性。
- 在令牌 中設定群組宣告和應用程式角色說明如何使用應用程式角色定義設定應用程式,並將安全組指派給應用程式角色。 這種方法可改善彈性和控制,同時以最低許可權提高應用程式 零信任 安全性。
- 使用身分識別 零信任 方法來建置應用程式,提供許可權和存取最佳做法的概觀。
- 身分識別整合指南說明如何將安全性解決方案與 Microsoft 產品整合,以建立 零信任 解決方案。
- 應用程式註冊、授權和存取 權的開發人員和系統管理員責任可協助您更妥善地與IT專業人員共同作業。
- 單一和多租使用者應用程式 支援的身分識別和帳戶類型會說明如何選擇您的應用程式是否只允許來自 Microsoft Entra ID) 租使用者、任何 Microsoft Entra 租使用者或具有個人 Microsoft 帳戶的使用者。
- 授權最佳做法 可協助您為應用程式實作最佳的授權、許可權和同意模型。
- API 保護說明透過註冊、定義許可權和同意來保護 API 的最佳做法,以及強制執行存取權以達成您的 零信任 目標。