如何使用PowerShell创建具有其他SAML端点的ADFS信赖方?

时间:2018-04-19 13:46:24

标签: powershell active-directory saml adfs

我想使用以下命令创建一个带有额外SAML端点的ADFS信赖方:

$SamlEndpoint = New-AdfsSamlEndpoint `
    -Binding "POST" `
    -Protocol "SAMLSingleSignOn" `
    -Uri "https://$AdditionalUrl/plugins/servlet/samlsso/metadata$SingleLogout"

Add-AdfsRelyingPartyTrust `
    -Name "$Name" `
    -MetadataUrl "https://$AppHost.lab.example.com/plugins/servlet/samlsso/metadata$SingleLogout" `
    -SamlEndpoint $SamlEndpoint `
    -AccessControlPolicyName "Permit Everyone" `
    -MonitoringEnabled $true `
    -AutoUpdateEnabled $true `
    -IssuanceTransformRules $IssuanceRules

没有参数-SamlEndpoint ...,脚本运行正常。我收到错误消息:

  

Add-AdfsRelyingPartyTrust:无法使用。解析参数集   指定的命名参数。在   C:\ Users \ ssh.AD \ scripts \ addRelyingParty.ps1:34 char:2   + Add-AdfsRelyingPartyTrust`   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidArgument:(:) [Add-AdfsRelyingPartyTrust],ParameterBindingException       + FullyQualifiedErrorId:AmbiguousParameterSet,Microsoft.IdentityServer.Management.Commands.AddRelyingPartyTrustCommand

我该怎么写呢?

1 个答案:

答案 0 :(得分:1)

这里有几个问题。

首先,$ SamlEndpoint需要成为" SAMLAssertionConsumer"。 SAMLSingleSignOn适用于声明提供商信托。

其次,您在添加RP信任时使用元数据,并且正在启用和监控它。因此,cmdlet将尝试下载元数据并使用其值来定义RP信任属性(如端点)。您无需提供端点配置作为其在元数据中发布的内容。

但是如果你想在你认为合适时添加一个RP信任,然后让AD FS通过轮询元数据进行监控和修复,我建议这样做。

$SamlEndpoint = New-AdfsSamlEndpoint `
-Binding "POST" `
-Protocol "SAMLAssertionConsumer" `
-index 0 -isdefault $false `
-Uri "https://some/post/url/endpoint"

$samlEndpoint2 = New-AdfsSamlEndpoint `
-Binding Redirect `
-Protocol SAMLAssertionConsumer `
-Uri "https://some/redirect/endpoint"`
-Index 1 `
-IsDefault $true


Add-AdfsRelyingPartyTrust `
-Name "$Name" `
-Identifier "http://x/y" `
-SamlEndpoint $SamlEndpoint,$samlendpoint2 `
-AccessControlPolicyName "Permit Everyone" `
-MonitoringEnabled $false `
-AutoUpdateEnabled $false `
-IssuanceTransformRulesFile c:\my\rulesfile.txt

Get-AdfsRelyingPartyTrust -Name $name | Set-AdfsRelyingPartyTrust `
-MetadataUrl "https://$AppHost.lab.example.com/plugins/servlet/samlsso/metadata$SingleLogout"  `
-MonitoringEnabled $true     `
-AutoUpdateEnabled $true