最低許可權的資訊安全性原則判斷提示使用者和應用程式應該只授與他們執行作業所需的數據和作業的存取權。 請遵循此處的指引,以助於降低應用程式的攻擊面,並在 Microsoft 身分識別平台整合應用程式中遭遇安全性漏洞(波及範圍)時,減輕其影響。
建議一目了然
- 藉由撤銷未使用和可減少的許可權,防止應用程式獲取過多權限。
- 使用身分識別平臺的 同意 架構,要求使用者同意應用程式的要求,才能存取受保護的數據。
- 在開發的所有階段中, 以最小權限建置應用程式。
- 定期稽核已部署的應用程式,以識別過度許可權的應用程式。
權限過多的應用程式
已授與 未使用 或 可減少 權限的任何應用程式,都會被視為權限過多。 未使用且可減少的許可權可能會提供應用程式或其使用者執行其工作所需的數據或作業未經授權的或非預期存取權。 只授與適當的許可權,以避免因未使用和可降低的許可權所造成的安全性風險。 適當的許可權是應用程式或使用者執行其必要工作所需的最寬鬆存取權。
未使用的許可權
未使用的許可權是已授與應用程式的許可權,但當應用程式如預期使用時,應用程式不會呼叫該應用程式所公開的 API 或作業。
範例:應用程式會使用 Files.Read 許可權呼叫 Microsoft Graph API,以顯示儲存在已登入使用者的 OneDrive 中的檔案清單。 不過,應用程式也已獲得 Calendars.Read 許可權,但未提供行事曆功能,而且不會呼叫 Calendars API。
安全性風險:未使用的許可權會造成 水平許可權提升 安全性風險。 利用應用程式中安全性弱點的實體可以使用未使用的許可權,在應用程式如預期般使用時,取得應用程式通常不支援或允許的 API 或作業存取權。
緩解措施:移除應用程式在 API 呼叫中未使用的任何權限。
可減少的許可權
可減少的許可權是具有較低許可權的對應許可權,該許可權仍會提供應用程式及其使用者執行其必要工作所需的存取權。
範例:應用程式會藉由呼叫 Microsoft Graph API 來顯示已登入使用者的配置檔資訊,但不支援配置檔編輯。 不過,應用程式已獲得 User.ReadWrite.All 許可權。 User.ReadWrite.All 許可權在這裡被視為可減少,因為較寬鬆的 User.Read.All 許可權會授與足夠的使用者配置檔數據的只讀存取權。
安全性風險:可降低的許可權會造成 垂直許可權提升 安全性風險。 利用應用程式中安全性弱點的實體,可以使用可減少的許可權來未經授權存取數據,或執行實體角色通常不允許的作業。
風險降低:將應用程式中每個可減少的許可權取代為其限制性最小但仍支援應用程式預期功能的許可權。
使用同意來控制數據的存取
大部分的應用程式都需要存取受保護的數據,而該數據的擁有者必須 同意 該存取權。 同意可以透過數種方式授與,包括 Microsoft Entra 租用戶的系統管理員可以為所有使用者同意,或應用程式使用者本身可以授予存取權。
每當在裝置中執行的應用程式要求存取受保護的數據時,應用程式應該要求使用者同意,再授與受保護數據的存取權。 用戶必須先授與或拒絕要求許可權的同意,應用程式才能進行。
應用程式開發期間的最低許可權
應用程式的安全性及其存取的用戶數據是開發人員的責任。
在應用程式開發過程中遵循這些指導方針,以幫助避免權限過高的情況發生:
- 完全瞭解應用程式需要呼叫 API 所需的許可權。
- 瞭解應用程式使用 Graph Explorer 進行的每個 API 呼叫所需的最低必要權限。
- 尋找從最低許可權到最高許可權的對應 許可權 。
- 如果應用程式進行具有重疊許可權的 API 呼叫,請移除任何重複的許可權集。
- 藉由在許可權清單中選擇最低許可權,將最低權限集套用至應用程式。
已部署應用程式的最低許可權
組織通常會猶豫修改執行中的應用程式,以避免影響其正常商務作業。 不過,組織應該考慮降低因使用過度許可權而可能發生或更加嚴重的安全事件風險,這樣的風險值得安排應用程式的更新。
在組織中制定這些標準做法,以協助確保已部署的應用程式不會有過度授權的情況,並且不會隨著時間的推移逐漸變得過度授權。
- 評估從應用程式進行的 API 呼叫。
- 使用 Graph Explorer 和 Microsoft Graph 文件,以取得必要的和最低特權的權限。
- 審核授予使用者或應用程式的權限。
- 使用最低許可權集合更新應用程式。
- 定期檢閱授權,以確保所有授權仍然相關。