Microsoft Entra ID 中的應用程式同意體驗
在本文中,了解 Microsoft Entra 應用程式同意使用者體驗。 您能夠以明智的方式為您的組織管理應用程式,並/或開發同意體驗更順暢的應用程式。
同意是使用者授權應用程式代表使用者存取受保護的資源所用的程序。 系統管理員或使用者需要同意允許存取其組織/個人資料。
授與同意的實際使用者體驗會有所不同,具體取決於使用者的租用戶上所設定的原則、使用者的權限 (或角色) 範圍,以及在用戶端應用程式所要求的權限類型。 這表示應用程式開發人員和租用戶管理員擁有相同的同意體驗控制權。 管理員可彈性設定租用戶或應用程式控制其租用戶同意體驗的原則,和加以停用。 應用程式開發人員可以決定可要求的權限類型,以及是否要引導使用者進行使用者同意流程或管理員同意流程。
- 使用者同意流程是應用程式開發人員將使用者導向授權端點以僅針對目前使用者記錄同意的過程。
- 管理員同意流程是應用程式開發人員將使用者導向管理員同意端點以僅針對整個租用戶記錄同意的過程。 若要確保管理員同意流程運作正常,應用程式開發人員必須列出應用程式資訊清單中
RequiredResourceAccess
屬性的所有權限。 如需詳細資訊,請參閱應用程式資訊清單。
同意提示的建置組塊
同意提示的設計可確保使用者擁有足夠的資訊來判斷是否信任用戶端應用程式,來代表自己存取受保護的資源。 了解建置組塊有助於授與同意的使用者做出更明智的決策,並協助開發人員建置更好的使用者體驗。
下圖和下表提供同意提示的建置組塊相關資訊。
# | 元件 | 目的 |
---|---|---|
1 | 使用者識別碼 | 此識別碼代表所要求的用戶端應用程式使用者存取受保護的資源。 |
2 | 標題 | 標題變更取決於使用者是否要進行使用者或管理員同意流程。 在使用者同意流程中,標題是「所要求的權限」,而在管理員同意流程中,標題則還有另一行「為您的組織接受」。 |
3 | 應用程式標誌 | 此映像應為使用者提供視覺提示,說明此應用程式是否為使用者要存取的應用程式。 此映像由應用程式開發人員提供,且此映像的擁有權不得驗證。 |
4 | 應用程式名稱 | 此值應可告知使用者要求存取其資料的應用程式為何。 請注意,此名稱由應用程式開發人員提供,且此應用程式名稱的擁有權不得驗證。 |
5 | 發行者名稱和驗證 | 藍色「已驗證」徽章表示應用程式發行者已使用 Microsoft 合作夥伴網路帳戶驗證其身分識別,並已完成驗證流程。 如果應用程式已驗證發行者,則會顯示發行者名稱。 如果應用程式未驗證發行者,則會顯示「未驗證」,而不是發行者名稱。 如需詳細資訊,請閱讀發行者驗證。 選取發行者名稱時會顯示更多可用的應用程式資訊,例如發行者名稱、發行者網域、建立日期、認證詳細資料和回覆 URL。 |
6 | Microsoft 365 認證 | Microsoft 365 認證標誌表示應用程式已針對衍生自領先業界標準架構的控制項進行審查,並且具備強大的安全性和合規性做法可保護客戶資料。 如需詳細資訊,請閱讀 Microsoft 365 認證。 |
7 | 發行者資訊 | 顯示應用程式是否由 Microsoft 所發行。 |
8 | 權限 | 此清單包含用戶端應用程式所要求的權限。 使用者務必評估要求的權限類型,以了解用戶端應用程式會獲得授權的資料內容,以在其接受時代為存取。 作為應用程式的開發人員,最好以最低的權限要求對權限的存取權。 |
9 | 權限描述 | 此值是由公開權限的服務所提供。 若要查看權限描述,您必須切換權限旁的 > 形箭號。 |
10 | https://myapps.microsoft.com |
使用者可以使用這個連結檢閱和移除任何目前擁有其資料存取權的非 Microsoft 應用程式。 |
11 | 在此處報告 | 如果您不信任應用程式、如果認為應用程式正在模擬另一個應用程式、如果認為應用程式將誤用您的資料,或基於其他原因,則此連結用來報告可疑的應用程式。 |
常見的案例及同意體驗
下一節將描述常見的案例,以及每個案例的預期同意體驗。
應用程式需要使用者有權授與的權限
在此同意案例中,使用者存取的應用程式需要使用者授權範圍內的權限集。 使用者會導向至使用者同意流程。
管理員會在傳統的同意提示上看到另一個控制項,這將允許他們代表整個租用戶給予同意。 該控制項預設為關閉,因此只有當管理員明確勾選方塊,才能代表整個租用戶授與同意。 此核取方塊將僅針對至少為特殊權限角色管理員的角色顯示,因此雲端管理員和應用程式管理員將不會看到此核取方塊。
使用者會看到傳統的同意提示。
應用程式需要使用者無權授與的權限
在此案例中,使用者存取的應用程式至少需要一個在使用者授權範圍外的權限。
管理員會在傳統的同意提示上看到另一個控制項,這將允許他們代表整個租用戶表示同意。
非管理員的使用者會被阻止向應用程式授與同意,他們會被告知要向其管理員要求存取該應用程式的權限。 如果在使用者的租用戶中啟用了管理員同意工作流程,則使用者能夠從同意提示中提交要求以取得管理員核准。 如需管理員同意工作流程的詳細資訊,請參閱管理員同意工作流程。
使用者會導向至管理員同意流程
在此同意案例中,使用者會巡覽至或被導向至管理員同意流程。
管理使用者會看到管理員同意提示。 此提示的標題和權限說明有所變更,該變更指出,接受此提示將代表整個租用戶將應用程式存取權授與要求的資料。
使用者會被阻止向應用程式授與同意,他們會被告知要向其管理員要求存取該應用程式的權限。
透過 Microsoft Entra 系統管理中心進行管理員同意
在此案例中,管理員同意應用程式要求的所有權限,這可能包括代表租用戶中所有使用者的委派權限。 系統管理員可透過 Microsoft Entra 系統管理中心的應用程式註冊的 [API 權限] 頁面授與同意。
除非應用程式需要新的權限,否則該租用戶中的所有使用者都不會看到同意對話方塊。 若要了解哪些系統管理員角色可同意委派權限,請參閱 Microsoft Entra ID 中的系統管理員角色權限。
重要
目前,使用 MSAL.js 的單頁應用程式 (SPA) 必須使用 [授與權限] 按鈕,以授與明確同意。 否則,應用程式會在要求存取權杖時失敗。
常見的問題
本節概述同意體驗的常見問題及可能的疑難排解提示。
403 錯誤
使用者無法同意
- 檢查租用戶系統管理員是否已停用您組織的使用者同意
- 確認您要求的權限是否為受管理員限制的權限。
即使管理員已同意,使用者仍會遭到封鎖
- 檢查靜態權限是否已設定為動態要求的權限超集。
- 檢查應用程式是否需要使用者指派。
針對已知錯誤進行疑難排解
如需疑難排解步驟,請參閱同意應用程式時發生未預期的錯誤。
另請參閱
- 取得有關 Microsoft Entra 同意架構如何實作同意的逐步概觀。
- 深入了解多租用戶應用程式如何使用同意架構來實作「使用者」與「系統管理員」同意,進而支援更進階的多層應用程式模式。
- 了解如何設定應用程式的發行者網域。