如何使用powershell为服务主体设置回复URL。当我查看管理门户网站时,以下命令不会向该字段添加任何内容
- $aa=new AzureADApplication-DisplayName"Name"-主页"addr"-IdentifierUris"addr
- new AzureADServicePrincipal-ApplicationId$aa.ApplicationId
- 。。。。。设置角色等
IdentifierUri似乎只填充APP ID URI。它需要一个数组,但当我执行这样的操作时,azure会返回一个内部错误:任一
$arr = @("addr1","addr2")
New-AzureAdApplication -IdentifierUris $arr
或
New-AzureAdApplication -IdentifierUris (,$arr)
或
New-AzureAdApplication -IdentifierUris @("addr1","addr2")
是否可以通过powershell设置此字段?
我不知道如何使用Azure PowerShell模块执行此操作,但您可以使用Azure AD(又名MSOnline)模块中的Set-MsolServicePrincipal cmdlet执行此操作。回复URL可以通过Addresses
集合进行管理。
示例(来自https://gist.github.com/rytmis/4178996):
$addresses = $principal.Addresses
$addresses.Add((New-MsolServicePrincipalAddresses -Address http://localhost:81))
$addresses.Add((New-MsolServicePrincipalAddresses -Address http://my-deployment-endpoint.cloudapp.net))
Set-MsolServicePrincipal -AppPrincipalId $appPrincipalId -Addresses $addresses
编辑(一些背景信息)
应用程序和服务主体是独立但相关的实体。(本文解释了两者之间的关系)
当您通过Azure AD门户创建应用程序时,它会同时创建应用程序和服务主体。若要从PowerShell获得相同的结果,必须同时创建两个对象。
# Create the application object
$azureAdApplication = New-AzureRmADApplication -DisplayName "<Your Application Display Name>" `
-HomePage "<https://YourApplicationHomePage>" `
-IdentifierUris "<https://YouApplicationUri>"
# Create the corresponding service principal
New-AzureRmADServicePrincipal -ApplicationId $azureAdApplication.ApplicationId
以这种方式创建的应用程序/服务主体组合应显示在门户中,并且可以以与在门户中创建的组合相同的方式使用。