如何通过代码设置 Azure Active Directory 服务主体的属性?

How to set properties of Azure Active Directory service principal from code?

我已经从库中创建了 AAD 应用程序。应用程序注册部分有一个,企业应用程序有一个。应用程序注册应用程序指向企业应用程序(本地目录中的托管应用程序)。

我想为企业应用程序配置 SAML SSO。必须设置一些必需的属性。

我可以设置 Sign on URL(使用图表 api),但我无法设置 Identifier (Entity ID)Reply URL。我认为这可以完成工作:

Set-AzureADApplication -ObjectId <id of app from App registrations> 
         -IdentifierUris $Identifiers -ReplyUrls $ReplyUrls

但企业应用未受影响。另外 Set-AzureADServicePrincipal 似乎对我不起作用。

没有错误。刷新后门户上没有任何变化。我已连接到正确的租户并安装了新模块。

我也尝试使用 RM:Update-AzureRmADApplicationSet-AzureRmADApplicationSet-AzureRmADServicePrincipalUpdate-AzureRmADServicePrincipal。 我也找不到工作图 api.

有没有办法从代码中做到这一点?也许我只是做错了什么而它对你有用?我将不胜感激。谢谢

but enterprise app is untouched.

其实企业已经受到影响,我们使用Set-AzureADApplication后可以通过Microsoft Graph查看,只是没有出现在门户中,可能是一个错误,我不确定.

$Identifiers = @(
    "http://www.tableau.com/products/server",
    "https://azure.idtest.link"
)
$ReplyUrls = @(
    "https://azure.rptest.link/wg/saml/SSO/index.html"
)
Set-AzureADApplication -ObjectId <object-id of the AD App> -IdentifierUris $Identifiers -ReplyUrls $ReplyUrls 

如果我们第一次在门户中设置它们,然后再次 运行 命令,您会发现它有效。

并且看起来无法通过 powrshell 或 API 设置 Default Reply URL,如果我们设置 Reply URL 与在门户中手动设置的不同,它会有如下提示。

但如果我们查看它,实际上会检查 Default 选项。

更新:

最终,我找到了诀窍,这不是错误,我们只需要先通过 Microsoft Graph 为服务主体设置 preferredSingleSignOnMode,然后我们就不需要在门户中进行配置了手动。

样本:

PATCH https://graph.microsoft.com/beta/servicePrincipals/<object-id of the service principal>

{
  "preferredSingleSignOnMode":"saml",
  "loginUrl": "https://azure.signtest.link"
}