【问题标题】:Decoupled Web APIs on Azure (Architecture Advise)Azure 上的解耦 Web API(架构建议)
【发布时间】:2016-01-03 21:18:36
【问题描述】:

我正在为一家非营利组织工作,该非营利组织试图创建一系列服务,让他们能够做一些事情:

  • 创建/管理用户
  • 创建/管理比赛
  • 创建/管理赛事(一场比赛由许多赛事组成)
  • 物流

以下是一些要求:

  • 在 Azure 上托管
  • 使用用户自己的电子邮件地址创建帐户(可以是任何域)
  • 每个服务必须相互独立
  • 应该可以从任何地方(浏览器、移动应用等)访问系统
  • 一旦用户登录,应该可以访问其他系统(如果需要或取决于权限) - 服务可以相互通信(我们已经使用 Azure Active Directory 成功完成了 POC)

我花了一些时间研究解决这个问题的可能方法,包括查看这样的文章:

http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/

听起来 JWT 是可行的方法,但我想确保这种架构方法在未来具有灵活性。我愿意学习/使用任何技术,只要它与 .Net、Web Api 和 MVC 兼容。

我最初的想法是将每个“系统”设置为 Web API,这非常简单。我关心的是身份验证/授权。那么百万美元的问题就变成了:

如何在浏览器/移动/桌面应用程序上对用户进行身份验证,然后使用其他服务 (API),其中每个服务都可以验证用户是否独立于其他服务进行身份验证。

例如,假设我正在使用网络应用程序(浏览器)并注册为用户(使用用户服务)以注册比赛(比赛服务)。两种服务需要使用哪种技术/架构才能使用相同的身份验证机制?

我对 MVC 或 Web API 并不陌生,但我对这样的场景很熟悉,因此非常感谢所有帮助或建议。对于任何感兴趣的人,这是非营利组织:http://worldjumprope.org/

他们在外展和传播对跳绳的热爱方面做了一些很酷的事情。他们的目标是能够帮助世界各地的人们,并为他们提供一种聚在一起竞争的方式。他们多年来一直在这样做,每年都在成长,这一切都是免费的,完全出于对这项运动的热情。帮我帮他们!

【问题讨论】:

    标签: asp.net-mvc asp.net-web-api owin jwt azure-active-directory


    【解决方案1】:

    Azure Active Directory 可以帮助您满足您的需求。

    关于安全/身份验证机制,简单地说,就像您从 Azure Active Directory 中获取一个令牌,以便能够使用它对某些受众/租户进行身份验证。

    并且在您的架构中,当您获得令牌时,您可以指定是否要针对特定​​受众使用它,或者它将适用于特定租户或多租户场景中的受众列表或所有受众.

    以下是有关 AAD 单点登录的视频链接:

    https://azure.microsoft.com/en-us/documentation/videos/overview-of-single-sign-on/

    您可以从此处下载 AAD 解决方案架构:

    http://www.microsoft.com/en-us/download/details.aspx?id=45909

    【讨论】:

    • 我忘记在我的帖子中包含无法在 Azure AD 中创建用户帐户。我们可以通过我在 POC 中成功完成的 AD 进行 API 到 API。我对您提出的解决方案的理解是,用户帐户必须在 AD 中才能使一切正常工作。用户使用他们自己的电子邮件注册,而不是我们的域,所以这就是我们没有走这条路的原因。但是,如果可以使用用户的电子邮件在我们的 Azure AD 中创建一个帐户,我们会很高兴的!让我知道你的想法。
    • 您可以使用 Azure Graph Api (msdn.microsoft.com/en-ca/library/azure/hh974476.aspx) 在 Azure AD 中创建用户。然后,您可以将该功能封装在您的 API 中,以使用您自己的 API 创建用户,并在后台将用户信息放入 Azure AD。
    • 我们将如何处理密码?我们会直接将它们传递给 AD 而不存储它们吗?
    【解决方案2】:

    也许值得看看 Identity Server - https://github.com/IdentityServer/IdentityServer3

    在令牌方面与 Azure AD 的概念相同,但可能有更多选项可供您选择作为用户信息的数据存储。

    网站上有很多演示和源代码,特别是围绕不同类型的身份验证流程\服务到服务身份验证

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 2019-06-09
      • 1970-01-01
      • 2014-08-08
      • 2012-04-10
      • 2014-02-19
      • 1970-01-01
      相关资源
      最近更新 更多