【问题标题】:Connect to Azure SQL using Azure Active Directory from an Azure Website?从 Azure 网站使用 Azure Active Directory 连接到 Azure SQL?
【发布时间】:2017-01-06 08:01:11
【问题描述】:

有一个 Azure 网站正在运行,它通过 Entity Framework 6 连接到 Azure SQL。一切都在运行,我使用标准用户名/密码(sql 登录)进行连接。

现在,我想切换到使用 AAD 对 sql 进行身份验证。我已经为该网站设置了 AD 应用程序。

我的问题是:

  1. 如何连接我的证书或 clientid/clientSecret?
  2. 如何确保SqlAzureExecutionStrategy 仍在运行

非常感谢任何指导 谢谢!

【问题讨论】:

    标签: entity-framework-6 azure-sql-database azure-web-app-service azure-active-directory adal


    【解决方案1】:

    使用 Azure Active Directory 身份验证连接到 SQL 数据库的方法有三种。

    1. 使用集成 (Windows) 身份验证进行连接
    2. 使用 Azure AD 主体名称和密码进行连接
    3. 使用 Azure AD 令牌连接

    有关 Azure SQL 数据库的 Azure AD 身份验证的更多详细信息,您可以参考here

    如果您尝试使用访问令牌进行连接配置,则此blog 提供的代码示例很有帮助。此外,熟悉使用来自此link 的证书通过客户端凭据流向 Azure AD 进行身份验证也很有帮助。

    根据我的理解,您使用的连接字符串不会影响实体框架提供的连接弹性功能。

    【讨论】:

    • 好的,因为我的“Azure Web App”根据定义不是域加入框,那么我们可以排除选项 1。选项 2 或多或少是我试图避免的:拥有 usr /pwd 在我的配置中。这给我们留下了选项 3。我可以使用上面链接中提到的 ADAL 来获取令牌。然后我可以将它传递给 SqlConnection。美好的。那么当令牌过期时会发生什么?如何在 EF6 中重新生成一个新的?有我可以收听的事件吗?
    • token过期后,SQL操作应该会出现异常。我们需要使用新的访问令牌将异常处理添加到新的新数据库上下文中。根据我的理解,令牌不适合这种情况。推荐用户名/密码。
    • 顺便说一句,我最终使用了解决方案 3(令牌),然后自己处理了续订。我本来希望这在某种程度上是提供商的一个组成部分......无论如何,谢谢
    【解决方案2】:

    这是在这种情况下可以做的。 通常,当您第一次获取令牌时,您会在令牌过期时获得信息。有了这个,您应该保持时间跟踪并在令牌过期之前重复您的连接代码获取令牌。

    【讨论】:

      猜你喜欢
      • 2014-01-06
      • 2021-04-16
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多