azure - 针对多个 Azure 广告对 Web 应用程序进行身份验证?

标签 azure azure-active-directory

我正在考虑为企业开发一个 Web 应用程序。我正在考虑以下场景:

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

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

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

这可能吗?我怎样才能做到这一点?

最佳答案

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

它的工作方式是这样的:

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

在您的应用方面有一些重要事项需要注意:

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

有关单租户与 Multi-Tenancy 的更多信息:http://www.andrewconnell.com/blog/azure-ad-what%E2%80%99s-the-difference-between-single-vs-multi-tenant

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

关于azure - 针对多个 Azure 广告对 Web 应用程序进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42316181/

相关文章:

Azure b2c 注销时注销所有应用程序(单点注销)

windows - 如何使用 Windows Azure 表存储时间戳或 Etag 字段

asp.net - Azure .Net WebApp 部署失败,但可以在 VS 本地运行

azure - VS2019 Azure服务身份验证帐户选择用于本地调试

Azure 应用服务编辑器(摩纳哥)停止工作/无法访问 http 错误 500.1001

azure-active-directory - 是否可以通过组成员身份设置 Azure AD 目录角色?

azure - 使用 AWS 托管应用程序中的 Azure Active Directory 集成进行身份验证

Azure Active Directory 登录 : Web App Permissions, 未触发用户同意

azure - 如何删除Azure中资源组中的所有公共(public)IP地址

azure - 如何配置每月只需启动并运行几天的应用服务