【问题标题】:Azure Firewall settings for VSTO add-in & SQLVSTO 加载项和 SQL 的 Azure 防火墙设置
【发布时间】:2018-12-17 17:06:08
【问题描述】:

我编写了一个非常基本的 SQL 支持的 VSTO Outlook 插件,最终将在我工作的公司的多个办公室中被大约 20 人使用。所有人也将定期在家工作。

到目前为止,我所遵循的教程都将“您自己的”IP 地址添加到服务器防火墙规则中: https://docs.microsoft.com/en-gb/azure/sql-database/sql-database-get-started-portal-firewall

我在研究这个问题时遇到了一个类似的问题: SQL Azure Firewall Rules on New Portal

当我只是使用该应用程序时,这不是问题,我按照教程一次添加了我的办公室 IP 地址,一次添加了我的家庭 IP 地址。如果我必须让每个人都收集他们的 IP 地址并将每个人都设置在防火墙上,那将是非常尴尬的。

这将是我第一个使用远程资源的应用程序,因此我不确定防火墙的后续步骤,因此很难找到指南。我应该是:

  1. 向所有人开放防火墙,但创建存储在应用程序中的强密码
  2. 在应用程序中创建初始化步骤以授予新用户通过防火墙的访问权限
  3. 创建某种代理,以便所有 SQL 请求都来自同一个 IP 地址。

在 (2) 创建初始化步骤的情况下 - azure sql server firewall settings 似乎更改了防火墙规则 - 这是否意味着一次只能连接一个人?

【问题讨论】:

  • 外接程序是否安装在人们的计算机上?那么数据库密码是否对任何有权访问该 PC 的人都可用?这听起来有点冒险。
  • 插件将作为其 MS Outlook 安装的一部分进行安装。我不相信源代码对他们可见? Azure 教程将数据库用户名和密码编码到源代码中。 docs.microsoft.com/en-us/azure/sql-database/…
  • 这篇文章建议了一个“中间层”应用程序——类似于我的选项 (3),但没有详细说明。然后我是否还必须编写一个用户身份验证应用程序,或者是否有一种直接的方法可以针对 Active Directory 或类似方法对其进行身份验证? social.msdn.microsoft.com/Forums/sqlserver/en-US/…
  • 某种中间层 API 可能是最佳选择。我不能说推荐的身份验证方法是什么。

标签: azure azure-sql-database vsto


【解决方案1】:

最好的选择是:

1a。向所有人开放防火墙,但需要为用户提供Azure Active Directory Authentication

【讨论】:

    【解决方案2】:

    您可以创建一个小型应用程序,该应用程序可以使用本地 PC IP 地址远程更新 Azure SQL 防火墙规则。为此,您将需要 Microsoft Azure 的 Microsoft Management Fluent libraryResource Group and Resource Management (Fluent) 功能。 Here 你会找到一个示例应用程序。

    您可能还需要按照here 的说明将应用程序注册为 Azure Active Directory 应用程序并为其分配相应的角色。然后您将能够按照here 的说明为应用程序创建授权文件。

    subscription=########-####-####-####-############
    client=########-####-####-####-############
    tenant=########-####-####-####-############
    key=XXXXXXXXXXXXXXXX
    managementURI=https\://management.core.windows.net/
    baseURL=https\://management.azure.com/
    authURL=https\://login.microsoftonline.com/
    graphURL=https\://graph.windows.net/
    

    您还可以为所有用户提供 PowerShell 脚本,该脚本可以使用 Azure Active Directory 身份验证令牌自行向 SQL Azure 进行身份验证,如 here 所述,然后更新防火墙规则或使用以下命令创建新规则脚本。

    New-AzureRmSqlServerFirewallRule -ResourceGroupName "myResourceGroup" 
          -ServerName $servername -FirewallRuleName "AllowSome" -StartIpAddress "0.0.0.0" -EndIpAddress "0.0.0.0"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多