如何使用 Azure 自动化向 Microsoft 合作伙伴中心进行身份验证?

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

我在 Azure 自动化中有以下 PowerShell 脚本。需要连接到合作伙伴中心。

Connect-AzAccount -Identity

$accessToken = (Get-AzAccessToken -ResourceUrl "https://api.partnercenter.microsoft.com").Token

Connect-PartnerCenter -AccessToken $accessToken

Azure 自动化帐户正在使用 系统分配的托管标识。

  1. 您可以使用此托管身份为其授予合作伙伴中心权限吗?如果是的话,怎么办?
  2. 或者我们是否必须创建 Azure AD 应用程序注册?需要什么应用程序权限?
  3. 还有别的办法吗?

该脚本需要在 Azure 自动化中运行,而不是作为登录用户运行。这可能吗? 脚本的范围将是:

    从合作伙伴中心拉出所有客户
  • 从每个客户中提取所有用户
  • 提取每个用户的所有许可证
脚本向合作伙伴中心进行“身份验证”;但是,在结果
Get-PartnerCustomer

之后运行

Error: Get-PartnerCustomer : (invalid_grant)
。我假设这是因为托管标识没有任何合作伙伴中心权限。
    

powershell azure-automation microsoft-partner-center
1个回答
0
投票

MsDoc,您需要创建一个Microsoft Entra ID应用程序来验证合作伙伴中心。 创建一个

Microsoft Entra ID 应用程序

并授予 API 权限,如下所示:

enter image description here现在要连接到合作伙伴中心,请使用以下脚本:

$appId = "ClientID" $appSecret = ConvertTo-SecureString -String "Secret" -AsPlainText -Force $tenantId = "TenantID" $credential = [PSCredential]::new($appId, $appSecret) $tokenSplat = @{ ApplicationId = $appId Credential = $credential Scopes = "https://api.partnercenter.microsoft.com/user_impersonation" ServicePrincipal = $true TenantId = $tenantId UseAuthorizationCode = $true } $token = New-PartnerAccessToken @tokenSplat $token.RefreshToken

enter image description here

enter image description here现在连接到合作伙伴中心:

$connectSplat = @{ ApplicationId = $appId Credential = $credential RefreshToken = $token.RefreshToken } Connect-PartnerCenter @connectSplat

enter image description here例如,我执行了以下命令:

Get-PartnerRole

enter image description here

参考资料:

azure - Microsoft 合作伙伴 API:无法进行身份验证 - Stack Overflow

,作者:matey-dzhigoshev

partner-rest/partner-rest/develop/api-authentication.md 位于文档·MicrosoftDocs/partner-rest·GitHub

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