使用 AccessToken / ServicePrincipal 进行身份验证

问题描述 投票:0回答:1

我有一个 SSDT 单元测试项目,对我的 azure 数据库进行 EntraID 身份验证。

执行此SSDT单元测试项目(见下图):

    在 VS Code 中使用连接字符串 +
  • 本地

    Active Directory 交互式身份验证

  • 在我的 AzureDevOps 管道中 + 使用“服务主体”认证

...这是本地执行的app.config:

我需要如何配置我的 app.config 才能使用 AzureDevOps-Pipeline 中的 ServicePrincipal?

azure-devops azure-sql-database azure-ad-msal sql-server-data-tools entra
1个回答
0
投票

我需要如何配置我的 app.config 才能使用 AzureDevOps-Pipeline 中的 ServicePrincipal?

要在 app.config -> ConnectionString 中使用 AAD 服务主体,您可以将身份验证设置为 ActiveDirectoryServicePrincipal

这是一个例子:

Data Source=xx.database.windows.net,1433;Initial Catalog=DATABASE;Persist Security Info=False;User ID={appid};Password={appsecret};Multiple Active Result Sets=False;Encrypt=True;TrustServerCertificate=False;Authentication=ActiveDirectoryServicePrincipal

如果您想避免在 app.config 的连接字符串中存储敏感信息。您可以将连接字符串存储在管道中的秘密变量中。

并在 app.config 中使用令牌

connectionString="#{sqlDbTestConnectionString}#"
代替真实的连接字符串。

然后在管道中的 VsTest 任务之前添加 replace token task,以将 app.config 中的 token

#{sqlDbTestConnectionString}#
替换为秘密变量中定义的真实连接字符串。

您可以查看此博客以获取更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.