Automation 如何以编程方式为基于库的应用程序配置Azure AD SSO?
我需要为Tableau Server gallery应用程序配置Azure Active Directory SSO,因为它是在MS文档中以编程方式配置的。是否有有用的powershell cmdlet/rest API 我从第1步开始使用GraphAPI从gallery创建应用程序。 要获取可用模板,请执行以下操作:Automation 如何以编程方式为基于库的应用程序配置Azure AD SSO?,automation,azure-active-directory,single-sign-on,tableau-api,Automation,Azure Active Directory,Single Sign On,Tableau Api,我需要为Tableau Server gallery应用程序配置Azure Active Directory SSO,因为它是在MS文档中以编程方式配置的。是否有有用的powershell cmdlet/rest API 我从第1步开始使用GraphAPI从gallery创建应用程序。 要获取可用模板,请执行以下操作: GET https://graph.microsoft.com/beta/applicationTemplates 要创建模板应用程序,请执行以下操作: POST https:
GET https://graph.microsoft.com/beta/applicationTemplates
要创建模板应用程序,请执行以下操作:
POST https://graph.microsoft.com/beta/applicationTemplates/{id}/instantiate
现在我需要从代码中配置SAMLSO并分配用户。有没有一个简单的方法?我尝试了设置AzureADApplication,但它对我没用。企业应用程序仍未设置。
也许它还不被支持?我相信可以有一些解决办法。如果有任何帮助,我将不胜感激
是否有有用的powershell cmdlet/rest API
是的,但根据我的测试,我们需要分为两部分
1.设置登录URL
,为此,我们需要调用Microsoft Graph-
在图形浏览器中,使用以下请求
PATCH https://graph.microsoft.com/beta/servicePrincipals/<object-id of the service principal>
{
"loginUrl": "https://azure.signtest.link"
}
对于广告应用程序的对象id
,请导航到门户中的Azure广告->应用程序注册
->找到您的Tableau服务器
。运行该命令后,设置将映射到企业应用程序
在门户中检查结果:
更新:
不确定这是否是一个bug,如果我创建了一个新的应用程序,但没有在门户中手动设置标识符
和回复URL
,那么只需使用上面的powershell进行设置,它们将不会映射到门户
但是,如果我们直接通过Microsoft Graph检查服务主体(企业应用程序),我们可以看到powershell实际上影响了服务主体
如果我们首先在门户中手动配置设置,然后使用powershell用其他值更新它们,那么它会起作用
而且看起来没有办法通过powrshell或API设置默认回复URL
,如果我们设置回复URL
,这与门户中手动设置的不同,它会有如下提示
但是如果我们仔细研究一下,实际上,Default
选项是选中的
更新2:
最后,我发现了诀窍,它不是一个bug,我们只需要首先通过Microsoft Graph为服务主体设置preferredSingleSignOnMode
,然后我们就不需要在门户中手动配置它了
样本:
PATCH https://graph.microsoft.com/beta/servicePrincipals/<object-id of the service principal>
{
"preferredSingleSignOnMode":"saml",
"loginUrl": "https://azure.signtest.link"
}
补丁https://graph.microsoft.com/beta/servicePrincipals/
{
“preferredSingleSignOnMode”:“saml”,
“罗吉努尔”:https://azure.signtest.link"
}
Hi@joy wang,谢谢你的回答!我测试了你的解决方案。我设法设置了登录Url,但set-AzureAdApplication出现了一些错误,该应用程序为我提供了code:Request\u ResourceNotFound
,其中包含广告应用程序的对象id
和企业对象id
。我甚至在列表中找不到这个应用程序Get AzureADApplication-All$true
。例如,如果我使用获取AzureRmADServicePrincipal
和更新AzureRmADApplication
应用程序就在那里。但是如果我使用更新AzureRmADApplication
,企业应用程序将保持未设置状态(ReplyUrls和IdentifierUris)…@MichaelK。它应该可以工作,首先尝试更新AzureAD
模块,使用updatemodule-Name AzureAD-Force
。如果您将AD应用程序的对象id直接传递给Set-AzureADApplication
,它会工作吗?@MichaelK。更新模块后,如果仍然无法工作,请确保您使用正确的租户登录,使用Connect AzureAD-TenantId”“
再次登录。您是对的,我设置了错误的租户。Connect AzureAD-TenantId”“
之后,Set AzureADApplication
没有返回错误,但企业应用程序在涉及到identieruris
和ReplyUrls
@MichaelK时仍然未设置。你刷新门户了吗?
PATCH https://graph.microsoft.com/beta/servicePrincipals/<object-id of the service principal>
{
"preferredSingleSignOnMode":"saml",
"loginUrl": "https://azure.signtest.link"
}