Authentication 如何使用用户凭据而不是web应用程序对Azure数据库进行身份验证

Authentication 如何使用用户凭据而不是web应用程序对Azure数据库进行身份验证,authentication,azure-active-directory,azure-web-app-service,Authentication,Azure Active Directory,Azure Web App Service,我有一个连接到azure sql数据库的ASP.Net MVC web应用程序。我使用AAD登录在该数据库上设置了一个帐户。当我在本地(localhost)运行时,web应用程序加载良好,我的凭据已成功通过身份验证,并且我能够查询数据库。当我将应用程序发布到云上的应用程序服务时,我无法在数据库上进行身份验证 我最初遵循了本教程,据我所知,该教程在应用程序发布后即验证为应用程序本身(我已通过将应用程序注册到AAD并将应用程序API登录添加到数据库中证明了这一点) 我真正想要的是一种作为应用程序用户

我有一个连接到azure sql数据库的ASP.Net MVC web应用程序。我使用AAD登录在该数据库上设置了一个帐户。当我在本地(localhost)运行时,web应用程序加载良好,我的凭据已成功通过身份验证,并且我能够查询数据库。当我将应用程序发布到云上的应用程序服务时,我无法在数据库上进行身份验证

我最初遵循了本教程,据我所知,该教程在应用程序发布后即验证为应用程序本身(我已通过将应用程序注册到AAD并将应用程序API登录添加到数据库中证明了这一点)


我真正想要的是一种作为应用程序用户而不是应用程序本身进行身份验证的方法,即我们目前用于on-prem应用程序的Azure版本Kerberos,前提是您了解AAD身份验证在Azure SQL DB中的工作方式,并且您已成功配置MSI以使用Azure SQL DB进行身份验证,下面是使用AAD对Azure SQL DB中的个人用户帐户进行身份验证所需执行的操作

  • 向您的AAD()注册应用程序
  • API权限下
    再添加一个权限->Azure SQL数据库
  • 选择
    委托权限
    ->
    用户模拟
  • 在Azure SQL DB中创建新的安全组
  • 将该安全组权限授予SQL DB实例()
  • 还可以将应用程序作为外部用户添加到SQL DB中(与添加安全组的方式相同)
  • 当您将用户登录到应用程序时,请使用
    资源请求Azure SQL DB的访问令牌=https://database.windows.net
    在您的授权请求中
  • 使用访问令牌在登录用户的上下文中访问数据库:
如果您成功完成了所有步骤,您将能够使用AAD
access\u token
和已登录用户的安全上下文登录数据库。
但问题是——你真的想这么做吗?只有在数据库中做出数据授权决策时,这才有意义。并在数据库中真正配置用户帐户。

鉴于您已经了解AAD身份验证在Azure SQL DB中的工作原理,并且您已经成功地将MSI配置为使用Azure SQL DB进行身份验证,下面是使用AAD在Azure SQL DB中对个人用户帐户进行身份验证所需执行的操作

  • 向您的AAD()注册应用程序
  • API权限下
    再添加一个权限->Azure SQL数据库
  • 选择
    委托权限
    ->
    用户模拟
  • 在Azure SQL DB中创建新的安全组
  • 将该安全组权限授予SQL DB实例()
  • 还可以将应用程序作为外部用户添加到SQL DB中(与添加安全组的方式相同)
  • 当您将用户登录到应用程序时,请使用
    资源请求Azure SQL DB的访问令牌=https://database.windows.net
    在您的授权请求中
  • 使用访问令牌在登录用户的上下文中访问数据库:
如果您成功完成了所有步骤,您将能够使用AAD
access\u token
和已登录用户的安全上下文登录数据库。 但问题是——你真的想这么做吗?只有在数据库中做出数据授权决策时,这才有意义。并在数据库中真正配置用户帐户