【问题标题】:Multi-tenant ADAL JS SPA along with an Azure AD web application back-end多租户 ADAL JS SPA 以及 Azure AD Web 应用程序后端
【发布时间】:2017-01-16 19:01:25
【问题描述】:

我目前正在尝试实现一个多租户 Azure AD 应用程序,该应用程序将使用 Microsoft Graph API 来监控和分析租户域成员的 Office 365“元数据”。例如,应用程序可能会随着时间的推移监控 One Drive 用户空间。该应用程序的架构将包括一个 AngularJS SPA 客户端以及一个 Web 应用程序后端。这个想法是,除了 Azure AD 身份验证之外,Web 应用程序还允许本地注册(例如使用电子邮件地址和密码的传统注册)。例如,在本地注册的情况下,用户将来可能能够将 Azure AD 租户与本地帐户相关联。

我很难理解各种身份验证机制应该如何工作。例如,我认为在 Azure AD 的情况下应该有两个级别的身份验证:一个身份验证用于客户端 SPA 的用户,另一个身份验证由后端用于连续调用 Microsoft API,请求刷新令牌等。

  • 如何使用 Microsoft 已提供示例的 various Azure AD authentication scenarios 实现此架构?
  • 如果我最初打算在 Azure AD 中注册两个应用程序(例如,注册为原生应用程序的 SPA,以及自己注册的 Web 应用程序),用户将如何允许访问这两个应用程序,这个工作流程会是什么样子?此外,用户请求的流程是什么样的? SPA 将使用其 Azure AD 令牌向后端发出请求,但后端将如何接收其身份验证令牌并调用 Microsoft API?
  • 如何最好地将 Azure AD 身份验证与本地注册结合到我的应用程序中?

【问题讨论】:

    标签: angularjs azure authentication adal adal.js


    【解决方案1】:

    一般来说,您可以在后端服务器/数据库中将每个用户关联到他在 Azure AD 租户中的实体。因为 Azure AD 中的每个用户在实体对象中都有几个独特的属性。您可以使用Claims in Azure AD Security Tokens 中提到的用户的emailobjectId 作为用户表中的外部列。

    当您的用户通过ADAL.JS 验证您的网站时,您可以通过Authentication 标头在后端服务器中获取访问令牌。你可以使用访问令牌来请求受 Azure AD 保护的资源。访问令牌是JWT 令牌,您可以直接对其进行解码以获取我们之前提到的用户基本声明。您可以检索您存储在用户表中的声明,并匹配在您的服务器中注册的特殊用户,以请求您自己保护的资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多