在本文中,我們會說明您身為開發人員,為了要求需要系統管理員同意的應用程式許可權而編寫應用程式程式碼時的許可權和同意體驗。 許可權和同意對話框的範例螢幕快照,以及 Microsoft Entra 系統管理中心可讓您了解使用者和租用戶系統管理員的體驗。 改善與系統管理員的共同作業,以在應用程式中實作最低許可權的 零信任 原則。
當您開發應用程式時,您可以撰寫程式代碼,藉由請求具有特定範圍(或許可權)的存取令牌來要求 存取資源。 您可以使用範圍參數,按照某些人描述為許可權的 OAuth 2.0 標準進行操作。 資源擁有者授與或拒絕許可權要求。 在 Microsoft Entra 識別符中,資源擁有者是應用程式的使用者或有權代表所有使用者授與該資源同意的系統管理員。
使用者同意體驗
當您的應用程式要求存取資源的許可權時,您的使用者可能會看到 類似此範例的許可權 要求對話方塊。
在範例對話框中,用戶藉由選取 [ 接受 ] 或選取 [ 取消] 拒絕要求,授與同意,以允許應用程式代表他們讀取數據。 應用程式會收到存取令牌,而且可以在使用者授與同意之後繼續其程式。 請記得確定您的應用程式已準備好在未收到令牌時正常處理。
管理員同意體驗
對於某些存取要求,只有系統管理員可以授與同意。 如果要求的存取權限強大,或涉及擁有者非現有使用者的資源,程式應設計成只有系統管理員能授予這些請求。
不過,您永遠不知道哪些許可權需要系統管理員同意,哪些允許一般使用者授予同意,因為租用戶系統管理員可以設定其租用戶,以不允許使用者同意(所有許可權都需要管理員同意),如下列 Microsoft Entra 系統管理中心 中 使用者同意設定 的範例螢幕截圖所示。
系統管理員也可以允許使用者同意來自已驗證發行者之應用程式的選定許可權,如下列範例螢幕快照中 Microsoft Entra 系統管理中心的使用者同意設定所示。
然後 ,系統管理員可以新增使用者可以同意的許可權 ,如下列範例螢幕快照 所示:Microsoft Entra 系統管理中心的許可權分類 。
當您的應用程式要求需要系統管理員同意的許可權時(透過設計或系統管理員設定),您的使用者可能會看到類似此範例的 [需要管理員核准 ] 對話方塊。
範例對話顯示需要管理員同意的許可權的預設(開箱即用)使用體驗。 大部分的使用者都不知道此案例中該怎麼做。 他們不知道他們的系統管理員是誰,他們不知道誰要去核准。 這種不確定性可能會限制用戶達到預期結果的能力。
改善許可權和同意體驗
若要改善許可權和同意體驗,租用戶系統管理員可以 設定系統管理員同意工作流程 ,如下列範例螢幕快照 所示:Microsoft Entra 系統管理中心的用戶設定 。
在
在租用戶系統管理員選取 [是] 在 使用者可以要求系統管理員同意他們無法自行同意的應用程式 且應用程式請求需要系統管理員同意的許可權之後,使用者會看到類似下列 [核准必要] 的對話方塊,提供更佳的使用者體驗。
在範例對話框中,用戶可以在選取 [要求核准] 之前,輸入要求此應用程式的理由。 然後,核准要求會 輸入系統管理員同意要求 佇列,系統管理員可以選擇根據風險配置檔檢閱、接受或禁止組織中的應用程式。
當系統管理員未在 Microsoft Entra 系統管理中心設定同意時,執行需要系統管理員同意的應用程式,系統管理員會看到 類似下列範例的許可權要求 對話方塊。
在此範例中,系統管理員會看到應用程式要求的許可權描述。 系統管理員可以選取 [ 接受 ] 個別執行應用程式,或者他們可以 選取 [代表貴組織 同意],再選取 [ 接受]。 系統管理員對組織授予同意後,除非系統管理員從租用戶的 管理員同意要求 設定中移除同意,否則未來的組織使用者不需要為此應用程式授予權限。
租用戶系統管理員同意的另一種方法是在 Microsoft Entra 系統管理中心 許可權 中,系統管理員可以檢閱先前要求之應用程式許可權的詳細數據。
在 [使用者同意 ] 範例中,系統管理員可以檢閱應用程式的已授與許可權,以及宣告、許可權類型,以及已授與同意的人員相關信息。 系統管理員可以選取 [管理員同意 ],以檢閱需要管理員同意的已授與許可權。
事先要求管理員同意
您最好的應用程式許可權策略是事先宣告應用程式在註冊應用程式時可能需要或要求的所有許可權。 您不需要同時要求所有許可權,但在宣告應用程式可能需要的所有許可權之後,系統管理員可以在租使用者的 app 設定中選取 [授與系統管理員同意 ] 來顯示類似此範例的對話框。
此範例顯示系統管理員如何預先同意您宣告的許可權,並為使用者及租用戶管理員提供最佳體驗。
事先要求系統管理員同意是企業營運 (LOB) 應用程式的絕佳選擇,尤其是您組織正在開發的應用程式。 透過預先同意這些應用程式,您不必詢問使用者是否可以存取公司數據,這樣做會更方便。 您會在應用程式註冊程式中提出系統管理員同意要求。
下一步
- 取得存取資源的授權可協助您瞭解如何在取得應用程式的資源訪問許可權時,最好確保 零信任。
- API 保護說明透過註冊、定義許可權和同意來保護 API 的最佳做法,以及強制執行存取以達成您的 零信任 目標。
- 授權最佳做法 可協助您為應用程式實作最佳的授權、許可權和同意模型。
- 自訂的 Microsoft Entra 令牌描述了您可以在令牌中接收的資訊。 它說明如何自定義令牌,以改善彈性和控制,同時提高應用程式零信任安全性與最低許可權。
- Microsoft 身分識別平台 中的許可權和同意概觀可協助您瞭解存取和授權的基本概念。
- 同意和許可權的概覽 可協助您瞭解 Microsoft Entra ID 中同意和許可權的基本概念和案例。
- 學習課程模組: 許可權和同意架構 可協助您了解許可權和同意架構模型。
- 學習直播:Microsoft身份识别:权限和同意框架 可幫助您了解Microsoft身份识别的基本概念,包括令牌、帳戶類型和拓撲。