2017-02-18 32 views
1

我正在考虑为一般企业开发一个Web应用程序。我在想的是以下情况:重新验证Web应用程序多个天蓝色广告?

应用程序应该能够为多个客户提供服务(称为多租户?)。这意味着多家公司可以为他们的员工使用该软件。

他们每个人都可以拥有自己的天蓝色广告或可能不是。因此,我想知道是否可以对多个/不同的天蓝色广告进行身份验证?

假设用户输入他的电子邮件地址[email protected],那么当有人试图用[email protected]登录时,我会尝试对他在companyA.com广告后面配置的广告进行身份验证。那么我会尝试使用为companyB.com配置的azure广告进行身份验证。

这可能吗?我怎么能这样做?

回答

4

这就是多租户应用程序存在的确切原因。因此,来自任何Azure AD的用户都可以登录到您的应用程序。

它的工作方式是这样的:

  1. 你在你的Azure的AD租户定义应用程序,包括它可能需要(如通过读取来自Azure的AD图/接入用户的OneDrive数据的能力的任何权限Microsoft Graph等)
  2. 定义应用程序时,将其设置为多租户。
  3. 现在,当来自其他组织的用户尝试登录您的应用时,系统会显示一个同意屏幕。该屏幕描述了您的应用程序及其在目录中所需的权限。 (谁报必须在自己的目录管理员的第一个用户),一旦他们给他们的同意的应用程序需要的权限
  4. ,一个服务主体是在他们的目录中创建的应用程序。这个委托人有点像现在存在于其应用程序的帐户
  5. 然后他们会被转回到您的应用程序。

有需要注意您应用的边几个重要的事情:

  1. 您必须将用户重定向到https://login.microsoftonline.com/common/oauth2/authorize,而不是承租人专用的终端登录。
  2. 随着ASP.NET MVC OpenIDConnect中间件,你必须关闭发行人确认,并做了一点手动(你必须检查租客之前实际上已经签署了)

更多关于单VS多租户:http://www.andrewconnell.com/blog/azure-ad-what%E2%80%99s-the-difference-between-single-vs-multi-tenant

示例多租户应用程序(ASP.NET MVC):https://github.com/Azure-Samples/active-directory-dotnet-webapp-multitenant-openidconnect

相关问题