2017-09-07 204 views
1

需要一些關於Azure AD的UI流程是否可以自定義的指導,以便我們可以根據UPN & Tenantid在身份驗證之前進行某種級別的授權。Azure AD身份驗證體驗流程

在我的應用程序的當前狀態下,當它第一次啓動時,認證發生,然後是同意。隨着身份驗證流程完成,應用程序將檢查租戶是否有資格獲得訪問權限(授權),然後應用程序會繼續。

電流:認證>用戶同意

的請求流量:檢查租戶ID>驗證訪問>認證>用戶同意

需要控制這種流,使得我們可以將用戶的電子郵件地址之前驗證能力進行身份驗證以確保用戶有權訪問應用程序。如果UPN未被授權,基本上不會進行認證。目標是當應用程序在App Store上可用時,任何人都可以下載該應用程序,並希望控制登錄體驗。

對於Auth,我們使用的是MSAL。另外我們有一個使用OpenID Connect的應用程序版本。

欣賞指導。

+0

我想說這通常是不可能的,但在我將其作爲問題的答案之前,我想提出以下問題:如果用戶未登錄,您將如何「檢查租戶ID」?你怎麼知道他們的房客身份證是什麼? –

+0

您可以做的一件事是在終端中使用特定於承租人的登錄信息,但這隻適用於單個承租人應用程序,不適用於多個承租人......除非您爲每個承租人創建了不同的登錄按鈕。由於租戶特定的登錄端點,來自其他租戶的用戶將被阻止登錄,因爲登錄屏幕會說租戶以外的用戶「未找到用戶」。 –

+0

謝謝肖恩 - 浮動的想法如下... a。建立一個TenantIds列表,可以訪問App b。向用戶提供表單以指定UPN c。基於UPN確定租戶ID並根據列表 確認d。如果檢索到的TenantID位於允許的承租人列表中,請繼續進行身份驗證 這隻會在首次啓動應用程序時發生。 –

回答

0

根據您的描述,您的要求是在Azure AD上使用多租戶應用程序時限制某些租戶。 AFAIK,Azure AD目前沒有映射到多租戶應用程序的租戶允許列表的應用程序配置屬性。

解決方法是在應用程序中通過檢查JWT令牌中的tenantID(tid)聲明來執行驗證。控制訪問權限需要在您的應用程序中授權用戶,而不是在您的方案中進行身份驗證之前進行。