【问题标题】:Invalid NameID policy for wordpresswordpress 的 NameID 策略无效
【发布时间】:2016-06-29 16:14:26
【问题描述】:

我有以下设置:

带有 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 临时转换为 Windows 帐户名

依赖方规则:

规则 1:

LDAP 规则:SAM-Account-Name->Windows 帐户名, 电子邮件地址-> 电子邮件地址

规则 2:

转换传入声明:Windows 帐户名-> NameID 瞬态标识符

我刚刚开始在 Windows Server 上使用 SSO,所以对声明规则不太了解,我猜它可能有问题,因为所有模块都运行正常。 (例如:WP 作为 SP,ADFS 作为 IdP,ADFS 作为 SP,SSP 作为 IdP)。

我到底做错了什么。

如果我遗漏了任何细节,也请告诉我。

谢谢!

【问题讨论】:

    标签: wordpress single-sign-on simplesamlphp adfs3.0


    【解决方案1】:

    第一步是确定请求的 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 以将 mail 属性用于 NameId 的示例

    'authproc' => array(
                 60 => array(
                        'class' => 'saml:AttributeNameID',
                        'attribute' => 'mail',
                        'Format' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress',
                ),
        ),
    

    还有其他NameIDgeneration filters documented

    【讨论】:

    • 感谢附加建议,这真的很有帮助。在跟踪器中,我发现 saml AuthnRequest 在 WP 和 ADFS 的 saml 请求中将 NameIDPolicy 指定为 transient。但是,对于 SSP,AuthnRequestNameIDPolicy 声明为 unspecified。我已在 SSP 的 sp-remote.php 中将 NameIDPolicy 设置为 transient,并且 SAML 响应也对 SSP 声明相同。但是在 WP 端,我在 SAML 响应消息中收到 NameIDPolicy 错误。
    • 嗯,我找到了原因。在 ADFS 中,我将声明规则设置为 unspecified(很可能是在各种调试解决方案中)。但是现在在将NameIDPolicy 设置为email 之后,我认为问题已解决,因为现在我收到类似username not provided 的SP-Initiated/IdP-Initiated 登录错误。
    猜你喜欢
    • 2012-04-23
    • 2020-12-27
    • 2019-02-06
    • 2013-10-30
    • 1970-01-01
    • 2023-01-24
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多