我有以下设置:
带有ADFS 3.0的Windows 2012 r2。 WordPress设置为SP(依赖方信任),SimpleSAMLphp设置为IdP(声明方信任)。
我想在SSP的帮助下验证WordPress用户。控制流程如下: 用户登录WordPress。然后,该页面将获取在ADFS服务器上配置的多个IdP提供程序。用户选择SSP。用户通过SSP进行身份验证,并将响应发送到ADFS,后者又将信息传递给WordPress。
我配置了所有依赖&索赔方&它单独运行(WP-ADFS,ADFS-SSP),但当我尝试用SSP验证WP时,它给了我error: The SAML authentication request had a NameID Policy that could not be satisfied.
我将规则设置为: 索赔方规则:
转换传入规则:NameID transient到Windows帐户名
依赖方规则:
规则1:
LDAP规则:SAM帐户名称> Windows帐户名称, 电子邮件的地址 - >电子邮件地址
规则2:
转换传入声明:Windows帐户名称 - > NameID瞬态标识符
我刚刚开始在Windows服务器上使用SSO,因此对索赔规则&我猜它可能有问题,因为单独所有模块都工作正常。 (例如:WP作为SP,ADFS作为IdP,ADFS作为SP,SSP作为IdP)。
我究竟做错了什么。
如果我错过任何细节,请告诉我。
谢谢!
答案 0 :(得分:3)
第一步是弄清楚要求的NameID策略。在FireFox中安装SAML Tracer
并运行您的流程。您会看到AuthnRequest
可能列出了NameIDPolicy
(示例<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
)。
一旦知道需要什么NameID,您可以尝试将Wordpress配置为接受其他类型(SSP默认使用urn:oasis:names:tc:SAML:2.0:nameid-format:transient
)或配置SSP以预期格式发布NameID。
以下是在SSP中使用authproc
为NameId使用mail
属性的示例
'authproc' => array(
60 => array(
'class' => 'saml:AttributeNameID',
'attribute' => 'mail',
'Format' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
),
),
还有其他NameID
generation filters documented。