Azure devops Azure管道使用服务主体连接到SQL DB
在我的azure管道创建了azure sql数据库之后,我想执行一些sql 有问题的sql必须由经过AAD身份验证的用户执行 管道的服务连接是数据库的AAD身份验证用户 如果我希望脚本使用服务主体机密,那么我可以构造一个OAuth调用来检索承载令牌,并使用它连接到数据库 但是,由于powershell脚本是在服务主体的上下文中运行的,我有一种直觉,即有一种更好的方法可以使用服务主体连接到db,而不依赖于秘密Azure devops Azure管道使用服务主体连接到SQL DB,azure-devops,azure-sql-database,service-principal,Azure Devops,Azure Sql Database,Service Principal,在我的azure管道创建了azure sql数据库之后,我想执行一些sql 有问题的sql必须由经过AAD身份验证的用户执行 管道的服务连接是数据库的AAD身份验证用户 如果我希望脚本使用服务主体机密,那么我可以构造一个OAuth调用来检索承载令牌,并使用它连接到数据库 但是,由于powershell脚本是在服务主体的上下文中运行的,我有一种直觉,即有一种更好的方法可以使用服务主体连接到db,而不依赖于秘密 有什么想法吗?您可以在azure管道的azure powershell任务中尝试以下脚本
有什么想法吗?您可以在azure管道的azure powershell任务中尝试以下脚本,以获取资源的accesstoken
https://database.windows.net/
$context = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile.DefaultContext
$databaseAccessToken = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate($context.Account, $context.Environment, $context.Tenant.Id.ToString(), $null, [Microsoft.Azure.Commands.Common.Authentication.ShowDialog]::Never, $null, "https://database.windows.net/").AccessToken
$databaseAccessToken
解决方案包括: 我添加了一个Azure CLI任务,用于检索承载令牌。然后我将其传递给使用该令牌的Azure Powershell任务
$token= & az account get-access-token --resource=https://database.windows.net --query accessToken
Write-Host("##vso[task.setvariable variable=sqlToken]$token")
您能否共享在Azure CLI任务中检索承载令牌的脚本?感谢分享您的解决方案。你可以接受你的答案。