Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 如何从DevOps发布管道运行Connect AzureAD?_Azure Devops_Azure Active Directory - Fatal编程技术网

Azure devops 如何从DevOps发布管道运行Connect AzureAD?

Azure devops 如何从DevOps发布管道运行Connect AzureAD?,azure-devops,azure-active-directory,Azure Devops,Azure Active Directory,我需要从发布管道中的Powershell脚本运行新AzureADServiceAppRoleAssignment 此操作的先决条件是Connect AzureAD,默认情况下,它会提示进行身份验证。我已经检查了StackOverflow,查找了我能找到的这个问题的每一种排列方式,但所提到的解决方案都不起作用 Azure Powershell任务已存在并已登录,这种情况就发生了。要使用登录的上下文连接AzureAD模块,我需要做什么 如何从DevOps发布管道运行Connect AzureAD 因

我需要从发布管道中的Powershell脚本运行
新AzureADServiceAppRoleAssignment

此操作的先决条件是
Connect AzureAD
,默认情况下,它会提示进行身份验证。我已经检查了StackOverflow,查找了我能找到的这个问题的每一种排列方式,但所提到的解决方案都不起作用

Azure Powershell任务已存在并已登录,这种情况就发生了。要使用登录的上下文连接AzureAD模块,我需要做什么

如何从DevOps发布管道运行Connect AzureAD

因为默认情况下,
connectazuread
会在弹出窗口中提示您输入登录名和密码

默认情况下,Azure DevOps内部的Connect AzureAD堆栈等待身份验证

我们可以尝试使用
Connect AzureAD
-Credential
选项:

$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($AdminUserEmailAddress, $SecurePassword)
Connect-AzureAD -Credential $Credential
我们需要在您的Azure广告中创建具有访问Microsoft Graph和生成密钥权限的服务主体。之后,您可以使用服务主体的应用程序ID和密钥作为
$Credential
的登录名和密码

我们可以将凭证存储在secret变量中

你可以检查和线程的更多细节


希望这能有所帮助。

是什么阻止您在脚本中运行
Connect AzureAD
?我在问题中说过-它会提示进行身份验证。发布管道任务无法确认该提示,因此发布将挂起,直到超时。DevOps管道已在服务主体下运行。我如何使用它?如果您已经在服务主体下运行,您可以尝试通过以下方式使用它:注释中链接的答案运行时不会出错,但我现在无法为服务主体分配适当的权限以运行cmdlet。然而,从原始问题的角度来看,这个答案是有效的。@TomW你有没有发现你需要什么权限?在我的例子中,Connect AzureAD由于对象引用错误而失败。似乎我缺少一些权限,但我找不到我的权限missing@PaulVrugt如果我没记错的话,这是脚本使用未经授权的令牌所做的事情,而不是连接过程。我的目标是使用DevOps已经获得的令牌,而不是运行
Connect AzureAD
。所以我没办法,对不起。