我在 Azure AD 中注冊了一個 SPA 應用程式,并使用 msal-react 進行了基于反應的登錄流程。是否有可能使普通用戶僅在首次嘗試登錄應用程式時才請求訪問應用程式?管理員批準后,不再需要再次請求它。我嘗試過的事情是:
- 附加
prompt: "consent"到登錄請求 - 這可行,但是當管理員收到一封電子郵件并批準請求時,會要求用戶再次請求它,從而導致無限的請求->批準回圈。 - 我已經啟用和配置
Admin Content Requests下Enterprise Applications -> Manage -> User Settings - 我從我的 WebAPI 應用程式中公開了一個對
Who can consent?-有價值的 apiAdmins Only(不確定這是否正確)。此權限已添加到我的 SPA 應用程式中,但我尚未授予管理員同意(再次,不確定這是否是正確的配置)
SPA API 權限
通過上述配置,用戶可以自由登錄到應用程式,而根本看不到任何“請求管理員同意請求”彈出視窗。
我想要實作的目標有可能嗎?如果是,我的配置中缺少什么?任何幫助將非常感激!謝謝!
編輯 #1 我已經通過 msal-react 在登錄請求中指定了 api://id/Test.Read 范圍
uj5u.com熱心網友回復:
當管理員批準管理員同意請求時,他們通常會代表所有用戶授予同意,而不僅僅是代表請求訪問的用戶。
聽起來您正在尋找一種策略,即每個用戶都需要(一次)批準才能使用應用程式。這更多的是用戶訪問應用程式的授權問題,而不是應用程式代表用戶訪問 API 的授權(或用戶授予該授權的權限)。
您可以考慮以下選項:
- 不要使用
prompt=consent(作為一般規則,不要) - 僅請求您的應用實際需要的委派權限。如果應用程式不需要訪問 API,只需使用
scope=openid(或scope=openid profile等) - 將應用程式配置為需要分配(在 Azure 門戶 > Azure AD > 企業應用 >(應用)> 屬性 > 需要分配?)。
- 授予應用程式的管理員同意(代表所有用戶)。
通過上述配置,您將授予應用程式的授權(管理員同意)與用戶訪問應用程式的授權(需要分配)分開。只有已分配應用程式的用戶才能登錄應用程式。您可以選擇誰可以將應用程式分配給用戶,方法是讓他們成為企業應用程式下的應用程式所有者(即應用程式服務主體的所有者),或者將應用程式分配給一個組并讓擁有該組的人決定。
這種方法的主要缺點是,當用戶嘗試登錄應用程式并且他們沒有被分配時,目前沒有內置的“單擊此處請求訪問”體驗。
作為此策略的一部分,您可能還對使用自助服務應用訪問功能感興趣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431826.html
