我想使用以下命令创建一个带有额外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
我该怎么写呢?
答案 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