我一直在测试最近发布的适用于Azure的托管服务标识,并使用以下文档中描述的ARM模板方法成功地为我们的应用服务创建了托管服务标识:How to use Azure Managed Service Identity (public preview) in App Service and Azure Functions
但是,我想授予对其他资源(如密钥库)的托管身份的访问权限。我已经能够通过门户做到这一点,但需要能够在PowerShell中编写脚本,以便与我们的持续部署构建集成。
我已经通过执行Set-AzureRmKeyVaultAccessPolicy cmdlet使用PowerShell成功创建了访问。然而,我只能使用硬编码的对象id完成此操作,一旦创建了MSI,就从门户网站手动复制和粘贴。
我的问题是,在PowerShell中,我如何才能获得对MSI的对象id的引用,以便我可以授予对其他资源的访问权限?我能找到的唯一示例(如this one)仅涉及虚拟机,而不涉及应用程序服务。
发布于 2017-09-22 10:46:12
您可以使用Get-AzureADServicePrincipal
。
$web=Get-AzureADServicePrincipal -SearchString "<name>"
$web.ObjectId
默认情况下,该名称是您的web应用程序名称。
更新:
对于OP的场景,我们可以使用template来获取对Azure MSI的引用。
发布于 2019-06-13 21:01:34
使用最新的AzureRM模块(6.13.1)
$AppProp = Get-AzureRmWebApp -ResourceGroupName $resourceGroupName -Name $name
写入-输出$AppProp.Identity
此Identity属性提供有关MSI的所有必需详细信息。
Type : SystemAssigned
TenantId : c764619f-8856-4a9f-a81e-eeb0c3f93592
PrincipalId : 3d317dfe-5589-4aae-94a4-51f1776979a7
https://stackoverflow.com/questions/46347139
复制相似问题