【问题标题】:How to change NameID in SimpleSAMLphp如何在 SimpleSAMLphp 中更改 NameID
【发布时间】:2014-09-04 02:49:09
【问题描述】:

我正在使用 simpleSAMLphp 开发 SSO。

我正确配置了服务提供商和 IdP,但我必须将 XML 发送到带有特定格式 NameID 的 SP。

我该如何执行此操作?在元数据中?或者我可以通过代码来完成吗?

谢谢,

【问题讨论】:

  • 你能不能再含糊一点?您是说服务提供者期望名称 id 格式化的 XML,但您不知道如何格式化 nameid 值?
  • 这与他们文档中提到的NameIDFormat 有什么关系吗? simplesamlphp.org/docs/stable/simplesamlphp-reference-sp-remote
  • 正是 Anthony,我必须以这种格式将 NameID 传递给服务提供者:“key1:value1; key2:value2”而且我不确定我应该从身份提供者那里更改它。这是我第一次使用这种身份验证方法。
  • 还有这个:simplesamlphp.org/docs/stable/saml:nameid 如果你能给出一些你可以控制的指示,这将对你的问题有所帮助。在传递之前如何获取 NameID 中的值?你把它们交给哪里?为什么不能在hand off之前格式化? nameID 中对应的实际值是什么?谁是 SP/SP 的基础库?也许这种格式有一个名称,并且库在指定时自动知道使用该格式。也许这是特殊的 SP 的一个已知怪癖等等。

标签: php saml simplesamlphp


【解决方案1】:

我已经排序了,我把解决方案贴在下面:

在 IdP authsources 配置文件中:

'idp-name' => array(
...
'message' => 'key1:'.$value1.';key2:'.$value2,
...
),

并且在Service Provider的元数据中(saml20-sp-remote.php):

...
'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid-format:persistent',
'simplesaml.nameidattribute' => 'message',
...

然后在您的代码中,您只需在进行身份验证之前指定 $value1 和 $value2。

感谢安东尼的帮助。

【讨论】:

    【解决方案2】:

    这可能是一个老问题,但是当我最近遇到这个问题时,我想我可以简单地编辑 saml20-sp-remote.php 并将 nameid-format 更改为我需要的任何内容。我需要将我的从暂时性更改为持久性 sisnce 我的 SP 所期望的。简单地用“持久”替换“瞬态”是行不通的。 nameidattribute 值也必须更改。我所拥有的是“SAML_SUBJECT”而不是 NameID。在我的 saml20-sp-remote.php 中,属性部分如下所示: 'attributes' => array ( 0 => 'SAML_SUBJECT', 1 => 'NameID', 2 => 'ClientID', 3 => 'FirstName', 4 => 'LastName', 5 => 'Email', ), 一旦我的 nameidattibute 值更改为 NameID,而不是我的默认值 SAML_SUBJECT,我就可以使用持久 nameid 格式。希望这对某人有所帮助。

    【讨论】:

      【解决方案3】:

      metadata/saml20-idp-hosted 中,添加以下配置:

      ``` /* 自定义名称 ID */ 'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'authproc' => 数组( 3 => 数组( 'class' => 'saml:AttributeNameID', '属性' => 'uid', '格式' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', ), ), ```

      您将在 SAML 响应断言中收到:

      ``` 学生姓名ID> 主题> ```

      【讨论】:

        猜你喜欢
        • 2018-10-19
        • 2016-08-07
        • 1970-01-01
        • 2016-02-20
        • 1970-01-01
        • 2014-05-14
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        相关资源
        最近更新 更多