Sql server MVC中的Azure AD auth将模拟传递到Azure SQL
我所拥有的:Sql server MVC中的Azure AD auth将模拟传递到Azure SQL,sql-server,asp.net-mvc,azure,azure-active-directory,Sql Server,Asp.net Mvc,Azure,Azure Active Directory,我所拥有的: MVC和web api通过实体框架访问azure sql数据库(在这种情况下,EF并不重要) MVC应用程序的Azure广告登录 我想做的是: 使用登录的Azure AD用户连接到Azure sql数据库(模拟用户) 现在我知道人们会告诉我,由于连接池等原因,不要这样做。但这是为一家小公司设计的,所讨论的web应用在任何给定时间最多可能有2个并发用户,所以我不担心这些事情。DBA希望使用对sql server的单独登录,以便轻松设置行级安全性。也许有一种不同的方式来进行设置
- MVC和web api通过实体框架访问azure sql数据库(在这种情况下,EF并不重要)
- MVC应用程序的Azure广告登录
- 使用登录的Azure AD用户连接到Azure sql数据库(模拟用户)
我已经搜索过了,但找不到任何关于这条消息的答案。正如你所料,这似乎不是人们经常尝试做的事情。我认为这不会奏效。SQLAzure使用集成的Sql安全性,而您的MVC应用程序使用基于声明的安全性。有一件事应该是可行的,那就是将MVC站点托管在加入到您的域中的azure VM上。我认为这是行不通的。SQLAzure使用集成的Sql安全性,而您的MVC应用程序使用基于声明的安全性。有一件事应该是可行的,那就是将MVC站点托管在加入到您的域中的azure VM上。这正是我所怀疑的。不幸的是,虚拟机不是一个选项。我想我们将使用会话上下文来实现行级安全,希望没有人知道如何欺骗另一个用户(如果他们这样做了,我怀疑RLS无论如何都不会阻止他们)。这就是我所怀疑的。不幸的是,虚拟机不是一个选项。我认为我们将使用会话上下文来实现行级安全,希望没有人知道如何欺骗另一个用户(如果他们这样做了,我怀疑RLS无论如何都不会阻止他们)。我有同样的要求,这似乎是可能的,因为在创建EF连接时可以传递来自Azure AD的JWT令牌。必要时调用AcquireTokenAsync。我不认为“Active Directory集成”是一种方式。必须使用个人用户的承载令牌以编程方式建立连接。嗨@MarkH,你知道吗?@CarlosGarcia是的,我知道,设置起来很痛苦。您需要调用Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext的AcquireTokenAsync方法的实例来获取AccessToken。您可以使用它来设置SqlConnection的AccessToken属性。应用注册需要Azure Sql数据库用户\u模拟委派权限。谢谢@MarkH!我必须用Python来完成,所以我可能会使用MSAL库来获取令牌。顺便说一句,你应该写下来作为一个答案-我会投票给upI,因为我有同样的要求,这似乎是可能的,因为来自Azure AD的JWT令牌可以在创建EF连接时传递。必要时调用AcquireTokenAsync。我不认为“Active Directory集成”是一种方式。必须使用个人用户的承载令牌以编程方式建立连接。嗨@MarkH,你知道吗?@CarlosGarcia是的,我知道,设置起来很痛苦。您需要调用Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext的AcquireTokenAsync方法的实例来获取AccessToken。您可以使用它来设置SqlConnection的AccessToken属性。应用注册需要Azure Sql数据库用户\u模拟委派权限。谢谢@MarkH!我必须用Python来完成,所以我可能会使用MSAL库来获取令牌。顺便说一句,你应该写下来作为答案——我会投票赞成的