如何通过Azure Bicep或PowerShell获取服务主体的应用ID?
获取服务主体的企业应用ID(应用ID)的程序化方式
一、Azure Bicep 实现方式
可以直接通过Bicep的资源引用或内置逻辑获取,无需额外脚本:
引用已存在的服务主体
如果已知服务主体的显示名称,可通过existing关键字直接关联对应的Azure AD应用资源,提取其appId:existing adApp 'Microsoft.AzureAD/b2cDirectories/applications@2021-04-01-preview' = { name: '目标服务主体显示名称' } // 提取应用ID作为角色分配的principalId var principalId = adApp.properties.appId引用同模板创建的服务主体
若你在当前Bicep模板内创建服务主体,可直接引用其输出的appId属性:resource newAdApp 'Microsoft.AzureAD/b2cDirectories/applications@2021-04-01-preview' = { name: 'new-service-principal' properties: { // 服务主体配置参数 } } // 直接获取新创建服务主体的应用ID var principalId = newAdApp.properties.appId
二、PowerShell 实现方式
如果Bicep的场景限制无法满足需求,PowerShell可以灵活实现获取操作,以下是常用命令:
按服务主体显示名称查询
# 获取目标服务主体对象并提取应用ID $servicePrincipal = Get-AzADServicePrincipal -DisplayName '目标服务主体名称' $appId = $servicePrincipal.AppId按服务主体对象ID查询
$servicePrincipal = Get-AzADServicePrincipal -ObjectId '服务主体对象ID' $appId = $servicePrincipal.AppId批量导出服务主体信息
若需要批量查看,可导出所有服务主体的显示名称、应用ID和对象ID:Get-AzADServicePrincipal | Select-Object DisplayName, AppId, ObjectId
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

