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

测试 Shib 返回以下属性:

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

  • 骨灰盒:oid:0.9.2342.19200300.100.1.1
  • 骨灰盒: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
  • 骨灰盒: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
  • 骨灰盒: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'),
    

    没有效果。

    任何帮助将不胜感激!

    最佳答案

    假设 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

    您可以在此处找到的源中查看其他 AttributeMap,例如 oid2urnoid2feide:

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

    关于php - 如何将 IDP 返回的属性映射到 SimpleSAMLphp 中的友好名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35224143/

    10-11 22:21