使用服务连接获取OAuth令牌

使用服务连接获取OAuth令牌,oauth,azure-devops,azure-service-principal,Oauth,Azure Devops,Azure Service Principal,我正在使用Azure DevOps部署web应用程序,并为SQL数据库执行数据库迁移。我有一个服务连接设置,并且能够使用Azure CLI部署Azure资源,例如: -任务:AzureCLI@2 displayName:“部署Azure资源” 投入: azureSubscription:“我的服务连接” 脚本类型:“bash” scriptLocation:inlineScript inlineScript:./deploy.sh 现在,我想执行数据库迁移,并想使用服务连接进行身份验证(应用程

我正在使用Azure DevOps部署web应用程序,并为SQL数据库执行数据库迁移。我有一个服务连接设置,并且能够使用Azure CLI部署Azure资源,例如:

-任务:AzureCLI@2
displayName:“部署Azure资源”
投入:
azureSubscription:“我的服务连接”
脚本类型:“bash”
scriptLocation:inlineScript
inlineScript:./deploy.sh
现在,我想执行数据库迁移,并想使用服务连接进行身份验证(应用程序注册已被授予访问SQL数据库的权限)。我的理解是,我可以使用OAuth令牌登录SQL数据库-我的问题是如何使用服务连接获取该令牌

请注意,我无法在Azure中向服务主体添加客户端密码,因此无法使用
客户端密码
/oauth2/token
进行REST调用(我在企业空间中工作,事情被锁定)


考虑到管道可以访问Azure DevOps服务连接,我的感觉是必须有某种方法使用它来获取对
有效的OAuth令牌https://database.windows.net/
resource-但是如何解决呢?

您可以在以下情况下尝试该解决方案:

正在添加检索承载令牌的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")

啊!!因此,您的意思是在
AzureCLI@2
任务?是的,您可以试一试。