C# 如何使用Azure AD令牌自动验证从WPF应用程序连接到Azure SQL Server:避免防火墙

C# 如何使用Azure AD令牌自动验证从WPF应用程序连接到Azure SQL Server:避免防火墙,c#,azure,active-directory,azure-sql-database,azure-sql-server,C#,Azure,Active Directory,Azure Sql Database,Azure Sql Server,现在,我开发了一个WPF应用程序,可以访问Azure SQL Server并在Windows10平板电脑中为我的客户端工作 我注册了用于开发的PC的客户端IP地址,因此应用程序可以访问正在开发的sql server。 但它在其他网络的平板电脑上不起作用。我知道,我也必须注册它的ip地址 现在我有一个问题。。当然,我的客户使用自己的网络,我无法确认他使用的ip地址! 为了解决这个问题,我尝试使用带有令牌的Azure AD autehntiation。 (请参阅,等等) 我的应用程序成功地在我的PC

现在,我开发了一个WPF应用程序,可以访问Azure SQL Server并在Windows10平板电脑中为我的客户端工作

我注册了用于开发的PC的客户端IP地址,因此应用程序可以访问正在开发的sql server。 但它在其他网络的平板电脑上不起作用。我知道,我也必须注册它的ip地址

现在我有一个问题。。当然,我的客户使用自己的网络,我无法确认他使用的ip地址! 为了解决这个问题,我尝试使用带有令牌的Azure AD autehntiation。 (请参阅,等等)

我的应用程序成功地在我的PC上使用Azure AD authentication登录以进行开发,但在其他网络中它仍然失败

这是否意味着我必须在任何身份验证方法中注册应用程序工作的ip地址? (如果是,这意味着所有用户都必须告诉开发者自己的ip地址。不行!!)

或者我需要允许此应用程序的所有ip地址范围


我希望您的帮助,谢谢

如果我正确理解您的问题,有两个问题:

1。如何确保开发人员计算机可以访问Azure SQL数据库?

对此,别无选择。您必须启用要从中访问Azure SQL数据库的IP地址(或地址范围)。如果不允许,您将无法连接到它

您可以在创建SQLAzure实例时启用此功能,也可以在以后需要时配置这些IP地址

如果你问我什么是最好的方法,我建议使用你当地的SQL Server进行开发。这样,您就不需要配置所有网络中的所有IP地址。这也是非常方便的,因为您的机器上有数据库

如果您使用的是中央数据库,并且许多人都在使用它,那么您可以选择安装开发团队可用的SQL Server

或者,如果您对使用Azure SQL进行开发感兴趣(我不建议这样做),那么您也可以尝试设置代理服务,只将请求转发给Azure SQL。这样可以确保所有请求都来自一个IP

2。如何确保部署的应用程序始终能够访问Azure SQL数据库?

这取决于应用程序的部署方式。如果应用程序将部署在Azure中,那么您可能希望启用从其他Azure服务到Azure SQL实例的访问。这也是您可以在创建SQL Azure数据库时启用的设置,也可以在创建SQL Azure实例后对其进行配置

如果应用程序不在Azure上,但数据库在Azure上,则必须更新防火墙以允许来自应用程序的连接


我希望这能为您提供足够的见解,以了解您的解决方案。

您的应用程序是否也托管在Azure中?如果是这种情况,那么如果您允许从其他Azure服务连接到Azure SQL数据库,您的客户端将不需要任何进一步的配置。谢谢您的回答!我将我的应用程序注册为Azure AD的本机应用程序,并授予对sql server的访问权,并获得了密钥。我认为使用此密钥的应用程序(exe)可以访问sql server,从而避免防火墙。这不对吗?如何将本机应用程序“托管”到Azure?