繁体   English   中英

多次验证Web应用程序多个azure广告?

[英]Authenticate web application agains multiple azure ad?

我正在考虑开发一般的企业Web应用程序。 我在想的是以下场景:

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

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

让我们假设用户输入他的电子邮件地址user1@companyA.com然后我会尝试根据在companyA.com广告后面配置的广告对他进行身份验证,当有人尝试使用user361@companyB.com登录然后我会尝试对针对companyB.com配置的azure广告进行身份验证。

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

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

它的工作方式是这样的:

  1. 您可以在Azure AD租户中定义应用程序,包括它可能需要的任何权限(例如,通过Microsoft Graph等从Azure AD Graph /访问用户的OneDrive读取数据的能力)
  2. 定义应用程序时,将其设置为多租户。
  3. 现在,当来自其他组织的用户尝试登录您的应用时,系统会向他们显示同意屏幕。 此屏幕描述了您的应用程序及其目录所需的权限。
  4. 一旦他们同意应用程序所需的权限,就会在其目录中为应用程序创建服务主体 此主体有点像现在存在于其目录中的应用程序的帐户。
  5. 然后他们会转发回您的应用。

您的应用程序有几个重要的事项要注意:

  1. 您必须将用户重定向到https://login.microsoftonline.com/common/oauth2/authorize而不是特定于租户的端点。
  2. 使用ASP.NET MVC中的OpenIDConnect中间件,您必须关闭颁发者验证,并手动执行此操作(您必须检查租户之前是否已实际注册)

有关单租户与多租户的更多信息: 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM