You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Az模块PowerShell脚本更新Microsoft Entra ID应用注册清单

在Az模块PowerShell脚本中为应用注册添加trustedCertificateSubjects清单配置

你可以通过以下修改后的脚本,实现创建应用注册(或检查已有应用)并更新其清单文件中的trustedCertificateSubjects配置:

param(
    [Parameter(Mandatory=$true)]
    [string]$Environment,
    [Parameter(Mandatory=$true)]
    [string]$PartnerName
)

switch ($Environment) {
    'test' {
        $PartnerAppSuffix = '-test'
    }
    'dev' {
        $PartnerAppSuffix = '-dev'
    }
}

$appName = "$PartnerName$PartnerAppSuffix"

# 检查应用注册是否存在(改用Get-AzADApplication获取应用对象,而非服务主体)
$App = Get-AzADApplication -Filter "DisplayName eq '$appName'"

if ($App -eq $null) {
    # 创建新的应用注册
    $redirectUris = @("https://mscloud.onmicrosoft.com/$appName")

    $App = New-AzADApplication -DisplayName $appName `
        -ReplyUrls $redirectUris `
        -Homepage "https://mscloud.onmicrosoft.com/$appName" `
        -IdentifierUris "https://mscloud.onmicrosoft.com/$appName" `
        -Web @{
            ImplicitGrantSetting = @{
                EnableAccessTokenIssuance = $true
                EnableIdTokenIssuance = $true
            }
        }

    # 创建服务主体
    $ServicePrincipal = New-AzADServicePrincipal -ApplicationId $App.AppId

    Write-Host "新应用注册已创建。AppId: $($App.AppId)"
} else {
    Write-Host "应用注册 '$appName' 已存在。AppId: $($App.AppId)"
}

# 定义要添加的trustedCertificateSubjects配置
$trustedCertConfig = @(
    @{
        authorityId = "00000000-0000-0000-0000-000000000001"
        subjectName = "subjectname1"
        revokedCertificateIdentifiers = @()
    },
    @{
        authorityId = "00000000-0000-0000-0000-000000000001"
        subjectName = "subjectname2"
        revokedCertificateIdentifiers = @()
    }
)

# 更新应用注册的清单
Update-AzADApplication -ObjectId $App.Id -PublicClient $App.PublicClient -Web $App.Web -IdentifierUris $App.IdentifierUris `
    -DisplayName $App.DisplayName -Homepage $App.Homepage -ReplyUrls $App.ReplyUrls `
    -AdditionalProperties @{ trustedCertificateSubjects = $trustedCertConfig }

Write-Host "应用注册 '$appName' 的trustedCertificateSubjects配置已更新"

关键修改说明:

  • 替换存在性检查对象:原脚本使用Get-AzADServicePrincipal获取服务主体,但修改应用清单需要操作应用对象,因此改用Get-AzADApplication来检查和获取应用注册。
  • 添加清单更新逻辑:无论应用是新创建还是已存在,都会执行Update-AzADApplication,通过-AdditionalProperties参数将trustedCertificateSubjects配置注入到应用清单中。
  • 保留原有配置:更新时保留了应用的原有属性(如Web配置、回复URL等),避免覆盖已存在的设置。

内容的提问来源于stack exchange,提问作者Diwakar Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:55:22