如何将IDP返回的属性映射到SimpleSAMLphp中的友好名称?

时间:2016-02-05 12:21:52

标签: php saml-2.0 simplesamlphp

我已成功配置simpleSAMLphp,以便通过Test Shib IDP(https://www.testshib.org/)进行身份验证。

Test Shib返回以下属性:

enter image description here

  • 瓮:OID:0.9.2342.19200300.100.1.1
  • urn:oid:1.3.6.1.4.1.5923.1.1.1.1
  • 瓮:OID:1.3.6.1.4.1.5923.1.1.1.6
  • 瓮:OID:2.5.4.4
  • urn:oid:1.3.6.1.4.1.5923.1.1.1.9
  • 瓮:OID:2.5.4.42
  • 瓮:OID:1.3.6.1.4.1.5923.1.1.1.7
  • 瓮:OID:2.5.4.3
  • urn:oid:1.3.6.1.4.1.5923.1.1.1.10
  • 瓮:OID:2.5.4.20

我想将这些属性映射到友好名称。谁能给我一些关于如何做到这一点的指示?

authsources.php中的default-sp示例包含以下内容:

/*
 * The attributes parameter must contain an array of desired attributes by the SP.
 * The attributes can be expressed as an array of names or as an associative array
 * in the form of 'friendlyName' => 'name'.
 * The metadata will then be created as follows:
 * <md:RequestedAttribute FriendlyName="friendlyName" Name="name" />
 */
 /*'attributes' => array(
   'attrname' => 'urn:oid:x.x.x.x',
 ),*/

但设置

'attributes' => array('myTestValue' => 'urn:oid:0.9.2342.19200300.100.1.1'),

没有效果。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

假设SimpleSAMLPHP 1.6及更高版本,您只需使用oid2name属性映射中的构建为您执行映射。

'authproc' => array( 50 => array( 'class' => 'core:AttributeMap', 'oid2name', ), ),

要添加到Luke的答案,您只需在以下位置添加authproc过滤器:

  • 全球在config.php
  • 在SP上:仅适用于authsources.php中的SP
  • 在SP上:仅适用于saml20-idp-remote或shib13-idp-remote中的一个远程IdP
  • 关于IdP:仅适用于saml20-idp-hosted或shib13-idp-hosted中的一个托管IdP
  • 在IdP上:仅适用于saml20-sp-remote或shib13-sp-remote中的一个远程SP

取自https://simplesamlphp.org/docs/stable/simplesamlphp-authproc

您可以在此处找到的来源中看到其他属性匹配,例如oid2urnoid2feide

https://github.com/simplesamlphp/simplesamlphp/tree/master/attributemap

答案 1 :(得分:2)

根据https://simplesamlphp.org/docs/stable/simplesamlphp-authproc,操作属性的正确方法是通过&#34; authproc&#34;功能。

就我而言,我在config / saml20-idp-remote.php中为https://idp.testshib.org/idp/shibboleth添加了以下配置数组:

'authproc' => array(
    50 => array(
        'class' => 'core:AttributeCopy',
        'urn:oid:0.9.2342.19200300.100.1.1' => 'uid',
    ),
),

文档建议可以在以下位置添加此配置数组:

  • 全球在config.php
  • 在SP上:仅适用于authsources.php中的SP
  • 在SP上:仅适用于saml20-idp-remote或shib13-idp-remote中的一个远程IdP
  • 关于IdP:仅适用于saml20-idp-hosted或shib13-idp-hosted中的一个托管IdP
  • 在IdP上:仅适用于saml20-sp-remote或shib13-sp-remote中的一个远程SP

请注意,您可能需要清除所有会话(关闭并重新打开浏览器)才能使更改生效。

未来参考的最佳提示 - 始终阅读最新版本的文档!