使用AzureAD PowerShell设置SignInAudience创建应用注册失败求助
原因分析
- AzureAD模块的局限性:AzureAD(AzureAD PowerShell v2)模块的
New-AzureADApplication和Set-AzureADApplicationcmdlet本身不支持SignInAudience参数,该属性在模块对应的API接口中被标记为只读,官方文档也未收录该参数的支持信息。 - 属性本身特性:
SignInAudience对应应用注册的「支持的账户类型」,属于应用的核心配置项,一旦创建完成后无法修改,仅能在应用创建时指定。
解决方案:改用Microsoft Graph PowerShell模块
Microsoft Graph PowerShell是微软官方推荐替代AzureAD模块的工具,完全支持在创建应用注册时指定SignInAudience属性,步骤如下:
1. 安装并连接Microsoft Graph
# 安装Applications模块(若未安装) Install-Module Microsoft.Graph.Applications -Force -AllowClobber # 连接Graph,需申请应用读写权限 Connect-MgGraph -TenantId "3433191-6b37-34325-9e6b-e631ac3434347" -Scopes "Application.ReadWrite.All"
2. 创建指定SignInAudience的应用注册
$appParams = @{ DisplayName = "MyTestApp20001" SignInAudience = "AzureADandPersonalMicrosoftAccount" } # 创建应用 New-MgApplication @appParams
3. 验证配置结果
# 查询应用并确认SignInAudience属性 Get-MgApplication -Filter "DisplayName eq 'MyTestApp20001'" | Select-Object DisplayName, SignInAudience
注意事项
- 若已通过AzureAD模块创建了目标应用,因
SignInAudience无法修改,需删除现有应用后重新创建。 - AzureAD模块已被微软标记为弃用,将于2024年6月30日停止支持,建议全面迁移至Microsoft Graph PowerShell模块。
内容的提问来源于stack exchange,提问作者Surinder
相关产品推荐
相关产品推荐

