如何使用Azure AD在Web应用程序中连接到Azure SQL?

时间:2018-12-11 23:56:32

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

我想编写一个使用用户自己的Azure AD凭据对Azure SQL数据库运行查询的工具。那可能吗?我可以设置自己的应用程序进行身份验证,但重要的是,我希望用户能够输入自由格式的查询并在执行SQL时使用其自己的凭据,而不是与我的应用程序关联的权限。

2 个答案:

答案 0 :(得分:0)

据我所知,C#提供了ActiveDirectoryInteractive模式,该模式可用于连接到Azure SQL数据库。有关更多详细信息,请参阅document

答案 1 :(得分:0)

是的,可以实现您描述的方案。除了显而易见的Azure SQL Server和Web应用程序/ API设置之外,身份验证还需要强调两点。

身份验证重点

  • 从Azure Active Directory的角度来看,您的应用程序注册可以利用Azure SQL的“委派权限”,以便应用程序可以代表登录用户访问数据库(而不是使用连接字符串或应用程序权限中的SQL用户) 。
  • 使用Azure AD对用户进行Web应用程序身份验证并在Web应用程序/ API中提供身份验证令牌后,现在就可以使用OAuth 2.0代理流程described here on Microsoft Docs来完成确保您的Web应用程序/ API访问数据库。

我提供了更详细的步骤,并提供了来自MS游乐场的博客的链接,该博客在下面做了非常相似的事情。

详细步骤

  1. 为Azure SQL Server启用Azure Active Directory身份验证
  2. 添加具有适当角色/权限的Azure Active Directory用户
  3. 将您的Web应用程序/ API注册到Azure Active Directory(Registering application with Azure AD
  4. 对于您的应用程序的“必需权限”,添加并选择

    a。 Azure门户> Azure AD>应用程序注册>您的应用程序注册

    enter image description here

    b。选择“ Azure SQL数据库”

    enter image description here

    c。选择“授权权限”>“ Azure SQL DB和数据仓库”

    enter image description here

  5. 用户使用Azure AD对您的Web应用程序/ API进行身份验证。这可以直接到您的Web应用程序(称为Azure SQL数据库),也可以通过调用您的Web API的客户端应用程序(如果具有单独的前端和API。则API应用程序调用Azure SQL数据库)。

  6. 现在,您的Web应用程序/ API具有可用的Azure AD Access令牌,请使用“代表流”代表登录用户调用Azure SQL数据库。这将利用我们之前设置的来自Azure AD的委派权限。 Sample code for On-behalf-Of flow

博客文章,提供更多详细信息

这是MSFT操场上的博客文章,其作用类似。它分为三个部分。我正在分享最重要的第二个。您可以按照自己认为合适的方式跟随其他两个。

Part 2 – Azure API Application to query the Azure SQL Database