phy*_*man 7 powershell azure azure-cli azure-cli2
尝试az cli使用服务主体执行登录并抛出错误说明No subscriptions found for <Service_Principal_AppId>. If this is expected, use '--allow-no-subscriptions'. 此代码以前运行良好,但现在似乎不再起作用。正在使用的命令行如下:
$sp_appid = (Get-AzureRmADServicePrincipal -DisplayName $spDisplayName).ApplicationId.Guid
$sp_secret = (Get-AzureKeyVaultSecret -VaultName $kvName -Name $appKeySecretName).SecretValueText
az login --service-principal --username $sp_appid --password $sp_secret --tenant $tenant_Id
Run Code Online (Sandbox Code Playgroud)
我验证了Contributor在订阅级别为服务主体分配了角色。
Ben*_*jam 25
在中创建服务主体后,Azure Active Directory您需要为该新用户提供订阅中的一些角色:
Access Control (IAM)roles assignment(例如使您的服务主体contributor)然后az login应该可以工作。
实际上,我不建议您将 Azure Powershell 和 CLI 混合在一起。如果你坚持这样做,我已经尝试过你的脚本,我无法重现你的问题,它工作正常。根据错误,你可以尝试传递 a --subscription,它也可以。
$sp_appid = (Get-AzADServicePrincipal -DisplayName joywebapp2).ApplicationId.Guid
$sp_secret = (Get-AzKeyVaultSecret -VaultName joykeyvault1 -Name joywebapp2).SecretValueText
$tenant_Id = "xxxxxxxxxxxx"
$subscription_Id = "xxxxxxxxxxx"
az login --service-principal --username $sp_appid --password $sp_secret --tenant $tenant_Id --subscription $subscription_Id
Run Code Online (Sandbox Code Playgroud)
注意:由于AzureRMpowershell模块已被弃用,我使用新的Azpowershell模块,如果你想升级到Az,请参阅此链接。(可能不是问题的原因,但我建议您升级。)
更新:
我们必须仅使用 AZ CLI 来获取我们想要获取的属性...没有 PowerShell 等效项。
实际上你可以通过 powershell 使用服务主体登录,这strong password是秘密,更多详细信息请参阅这篇文章。
$azureAplicationId ="Azure AD Application Id"
$azureTenantId= "Your Tenant Id"
$azurePassword = ConvertTo-SecureString "strong password" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)
Add-AzureRmAccount -Credential $psCred -TenantId $azureTenantId -ServicePrincipal
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6164 次 |
| 最近记录: |