2017-09-07 208 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)声明来执行验证。控制访问权限需要在您的应用程序中授权用户,而不是在您的方案中进行身份验证之前进行。