【发布时间】:2020-11-06 21:25:07
【问题描述】:
我正在执行以下操作以使用 Azure devops Pipeline for Powershell 任务连接到 AAD
- 创建了一个 SPN 并授予了图表的权限
- 使用下面的代码使用访问令牌进行连接时,它显示为Error Pipleline
我的代码很简单如下
Install-Module -Name "AzureAD" -Force
$context = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile.DefaultContext
$graphToken = [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://graph.microsoft.com").AccessToken
$aadToken = [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://graph.windows.net").AccessToken
Write-Output "Hi I'm $($context.Account.Id)"
Write-Output "AAD Token is $($aadToken)"
Connect-AzureAD -TenantId $context.tenant.id -AadAccessToken $aadToken -MsAccessToken $graphToken -AccountId $context.Account.Id
$outputusers= get-azureaduser -Top 5
Write-Output "The users are listed $($outputusers)"
如果我遗漏了任何细节,请告诉我。 SPN 只是一个 devops 管道,它不是 AAD 用户。因此令牌可能对身份验证无效。
我需要做什么才能让 SPN 成为 AAD 中的用户。请指教
【问题讨论】:
标签: powershell azure-devops azure-active-directory azure-ad-graph-api