簡體   English   中英

Azure AD 登錄流程到 SPA 應用程序僅需要管理員批准才能首次登錄

[英]Azure AD Login flow to SPA application require admin approval for first login only

我在公元 Azure 有一個 SPA 應用程序注冊和一個使用 msal-react 的基於反應的登錄流程。 是否有可能要求普通用戶在首次嘗試登錄該應用程序時才請求訪問該應用程序? 管理員批准后,不再需要再次請求。 我嘗試過的事情是:

  • append prompt: "consent"登錄請求 - 這可行,但是當管理員收到 email 並批准請求時,用戶會被要求再次請求,從而導致無限請求-> 批准循環。
  • 我已經在企業應用程序下啟用並配置了Admin Content Requests Enterprise Applications -> Manage -> User Settings
  • 我從我的 WebAPI 應用程序中公開了一個 api,它對Who can consent? - Admins Only (不確定這是否正確)。 此權限已添加到我的 SPA 應用程序中,但我尚未授予管理員同意(同樣,不確定這是否是正確的配置)

SPA API 權限

通過上述配置,用戶可以自由登錄應用程序,根本看不到任何“請求管理員同意請求”彈出窗口。

我想要實現的目標有可能嗎? 如果是,我的配置中缺少什么? 任何幫助將非常感激! 謝謝!

編輯#1我已經通過 msal-react 在登錄請求中指定了 api://id/Test.Read scope

當管理員批准管理員同意請求時,他們通常會代表所有用戶授予同意,而不僅僅是代表請求訪問權限的用戶。

聽起來您正在尋找一種策略,每個用戶在使用應用程序之前都需要獲得批准(一次)。 這更多的是用戶訪問應用程序的授權問題,而不是應用程序代表用戶訪問 API 的授權(或用戶授予該授權的權限)。

您可以考慮以下選項:

  • 不要使用prompt=consent (作為一般規則,不要
  • 僅請求您的應用實際需要的委派權限。 如果應用程序不需要訪問 API,只需使用scope=openid (或scope=openid profile等)
  • 將應用程序配置為需要分配(在 Azure 門戶下 > Azure AD > 企業應用程序 > (app) > 屬性 > 需要分配?)。
  • 授予該應用程序的管理員許可(代表所有用戶)。

通過上述配置,您將授予應用程序的授權(管理員同意)與用戶訪問應用程序的授權(需要分配)分開。 只有分配了該應用程序的用戶才能登錄該應用程序。 您可以選擇誰可以將應用程序分配給用戶,方法是在企業應用程序下讓他們成為應用程序的所有者(即應用程序服務主體的所有者),或者通過將應用程序分配給一個組並讓擁有該組的人來決定。

這種方法的主要缺點是,當前沒有內置的“單擊此處請求訪問權限”體驗,當用戶嘗試登錄應用程序但未分配給他們時。

作為此策略的一部分,您可能還對使用自助服務應用程序訪問功能感興趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM