開發應用程式許可權策略
當您瞭解如何使用 零信任 原則進行開發時,請檢閱取得存取資源的授權並開發委派的許可權策略之後,參考本文。 當您使用 Microsoft 身分識別平台 來驗證和授權您的應用程式,以及管理許可權和同意時,請定義認證管理的應用程式許可權方法。
未涉及任何使用者時,您沒有有效的許可權模型,因為應用程式一律會被授與其預先指派的許可權。
應用程式證明它是要求許可權的應用程式。 您的應用程式會使用下列其中一種方法來證明自己的身分識別:
- 憑證,這是最佳選項,或
- 複雜秘密管理系統中的秘密,或
- 當您在 Azure 上開發服務時,請使用 適用於 Azure 資源的受控識別,請檢閱下列 管理應用程式認證一節。
應用程式一律需要事先管理員同意。 您的應用程式會向
.default
範圍要求此許可權。 它會要求系統管理員指派給應用程式的許可權。跨使用者功能。 根據預設,
User.ReadWrite.All
可讓您的應用程式更新每個使用者的配置檔。 應用程式許可權可讓您的應用程式讀取和更新租使用者中每個使用者的配置檔。授與應用程式的許可權一律是所使用的許可權。 與委派的許可權不同,應用程式許可權不會受到任何特定使用者所能執行的系結。
限制應用程式許可權
有三種方式可將應用程式限制為小於全域存取。
Microsoft Teams 應用程式具有 資源特定的同意 (RSC),可讓應用程式存取特定小組,而不是存取企業中的所有小組。 RSC 是 Microsoft Teams 和 Microsoft Graph API 整合,可讓您的應用程式使用 API 端點和管理特定資源。 其許可權模型可讓 Teams 和聊天擁有者授與應用程式存取和修改其 Teams 和聊天數據的同意。
Microsoft Exchange 系統管理員可以建立 Exchange 應用程式原則 ,以使用 PowerShell 腳本限制特定信箱的應用程式存取權。 他們可以將特定應用程式限制為具有
Calendar.Read
或Mail.Read
存取權的特定信箱。 例如,這可讓您建置自動化,該自動化只能讀取一個信箱,或只從一個信箱傳送郵件,而不是從企業中的每個人傳送郵件。SharePoint 具有 Sites.Selected 作為特定範圍 ,以允許使用應用程式存取 SharePoint 的細微許可權。
Sites.Selected
根據預設,在應用程式中選擇您的應用程式,而不是其他其中一個許可權結果,而無法存取任何 SharePoint 網站集合。 系統管理員會使用網站許可權端點,將讀取、寫入或讀取和寫入許可權授與您的應用程式。
管理應用程式認證
認證衛生可確保您的應用程式能快速從潛在的缺口中復原。 下列最佳做法會引導您開發執行偵測和補救的應用程式,同時避免停機並影響合法使用者。 這些建議支援 零信任 假設違反原則,以準備回應安全性事件。
從程式代碼和組態中移除所有秘密。 當您使用 Azure 平臺時,請將秘密放在 Key Vault 中,並透過 Azure 資源的受控識別加以存取。 如果您的程式代碼有彈性,可在發生入侵時處理秘密輪替。 IT 系統管理員可以移除和輪替秘密和憑證,而不需要關閉您的應用程式或影響合法使用者。
除非有安全程式可管理秘密,否則請使用憑證,而不是客戶端密碼。 攻擊者知道客戶端密碼處理較不安全,且洩漏的秘密使用方式難以追蹤。如果遭入侵,憑證可以更妥善地管理和撤銷。 當您使用秘密時,請為其建置或使用安全的無觸控部署和變換程式。 使用具有設定到期時間週期的秘密(例如,一年、兩年),並避免 永不過期。
定期變換憑證和秘密 ,以 在應用程式中建置復原功能 ,並避免因緊急變換而中斷。
下一步
- 取得存取資源的授權可協助您瞭解如何在取得應用程式的資源訪問許可權時,最好確保 零信任。
- 開發委派的許可權策略可協助您實作在應用程式中管理許可權的最佳方法,並使用 零信任 原則進行開發。
- 授權最佳做法 可協助您為應用程式實作最佳的授權、許可權和同意模型。
- 要求需要系統管理同意 的許可權描述應用程式許可權需要系統管理同意時的許可權和同意體驗。
- API 保護說明透過註冊、定義許可權和同意來保護 API 的最佳做法,以及強制執行存取以達成您的 零信任 目標。
- 當沒有任何使用者 說明 Azure 資源的受控識別為何是 Azure 上服務(非使用者應用程式)的最佳客戶端認證作法時,請提供應用程式身分識別認證。