为在Azure上运行的三层应用程序设计基于令牌的身份验证

时间:2019-05-20 22:25:28

标签: azure azure-active-directory azure-sql-database azure-web-sites

我正在设计一个包含以下内容的应用程序:

  • 以React编写的SPA,已部署到Azure App Service实例
  • 用.Net Core Web API编写的REST API,已部署到Azure App Service的另一个实例
  • 与上述应用程序服务位于同一Azure租户中的Azure SQL数据库

所有这些资源都将连接到同一Azure AD实例(也位于同一租户中)。

从概念上讲,我认为身份验证可以大致这样进行:

  • 与SPA的用户连接并获得身份验证令牌
  • 然后将令牌传递给API,然后API将使用该令牌向SQL数据库(此seems possible)的用户进行身份验证

但是,我还没有找到任何演练或其他文档来证明这种看似简单的身份验证方法。似乎这样的情况已经足够典型,足以被博客或Microsoft自己广泛地记录在案,因此无法找到它使我想知道我是不是在考虑这一权利,还是在不合适的地方寻找。

有人可以帮我找出解决此问题的正确方法,并向我指出一些可以指导我完成此任务的在线资源吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

REST API使用其托管服务标识来获取Azure SQL数据库的令牌并使用令牌的情况更为常见。 Web应用程序很少使用浏览器用户的身份连接到SQL Server。

例如,参见:Tutorial: Secure Azure SQL Database connection from App Service using a managed identity