wordpress 的 NameID 策略无效
Invalid NameID policy for wordpress
我有以下设置:
Windows 2012 r2 与 ADFS 3.0。 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.
我将规则设置为:
索赔方规则:
Transform an incoming rule: NameID transient to Windows account name
依赖方规则:
规则 1:
LDAP rules: SAM-Account-Name->Windows account name,
E-Mail-Addresses-> Email Address
规则 2:
Transform an incoming claim: Windows account name-> NameID Transient Identifier
我刚开始在 windows 服务器上使用 SSO,所以对声明规则了解不多,我猜它可能有问题,因为所有模块都单独工作正常。
(例如:WP 作为 SP,ADFS 作为 IdP,ADFS 作为 SP,SSP 作为 IdP)。
我到底做错了什么。
如果我遗漏了任何细节,也请告诉我。
谢谢!
第一步是找出请求的 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.
我有以下设置:
Windows 2012 r2 与 ADFS 3.0。 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.
我将规则设置为: 索赔方规则:
Transform an incoming rule: NameID transient to Windows account name
依赖方规则:
规则 1:
LDAP rules: SAM-Account-Name->Windows account name, E-Mail-Addresses-> Email Address
规则 2:
Transform an incoming claim: Windows account name-> NameID Transient Identifier
我刚开始在 windows 服务器上使用 SSO,所以对声明规则了解不多,我猜它可能有问题,因为所有模块都单独工作正常。 (例如:WP 作为 SP,ADFS 作为 IdP,ADFS 作为 SP,SSP 作为 IdP)。
我到底做错了什么。
如果我遗漏了任何细节,也请告诉我。
谢谢!
第一步是找出请求的 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.