Как сопоставить атрибуты, возвращенные IDP, с понятными именами в SimpleSAMLphp?

Я успешно настроил simpleSAMLphp, чтобы он проходил аутентификацию через Test Shib IDP (https://www.testshib.org/).

Test Shib возвращает следующие атрибуты:

введите описание изображения здесь

  • Урна: подъязычная: 0.9.2342.19200300.100.1.1
  • Урна: подъязычная: 1.3.6.1.4.1.5923.1.1.1.1
  • Урна: подъязычная: 1.3.6.1.4.1.5923.1.1.1.6
  • Урна: подъязычная: 2.5.4.4
  • Урна: подъязычная: 1.3.6.1.4.1.5923.1.1.1.9
  • Урна: OID: 2.5.4.42
  • Урна: подъязычная: 1.3.6.1.4.1.5923.1.1.1.7
  • Урна: подъязычная: 2.5.4.3
  • Урна: подъязычная: 1.3.6.1.4.1.5923.1.1.1.10
  • Урна: OID: 2.5.4.20

Я хотел бы сопоставить эти атрибуты с понятными именами. Кто-нибудь может дать мне несколько советов о том, как это сделать?

Пример default-sp в authsources.php имеет следующее:

/*
* 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'),

не имеет никакого эффекта

Любая помощь будет принята с благодарностью!

3

Решение

Если предположить, SimpleSAMLPHP 1.6 и выше, вы можете просто использовать сборку в oid2name Таблица атрибутов, чтобы сделать сопоставление для вас.

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

Чтобы добавить ответ Люка, вы можете просто добавить фильтр authproc в следующих местах:

  • Глобально в config.php
  • На SP: Специфично только для SP в authsources.php
  • На SP: только для одного удаленного IdP в saml20-idp-remote или shib13-idp-remote
  • На IdP: только для одного размещенного IdP в saml20-idp-hosted или shib13-idp-hosted
  • На IdP: только для одного удаленного SP в saml20-sp-remote или shib13-sp-remote

Взято из https://simplesamlphp.org/docs/stable/simplesamlphp-authproc


Вы можете увидеть дополнительные атрибуты, такие как oid2urn а также oid2feide в источнике, найденном здесь:

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

3

Другие решения

В соответствии с https://simplesamlphp.org/docs/stable/simplesamlphp-authproc, правильный способ манипулирования атрибутами — через функцию «authproc».

В моем случае я добавил следующий массив конфигурации для https://idp.testshib.org/idp/shibboleth в config / saml20-idp-remote.php:

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

Документация предполагает, что этот массив конфигурации может быть добавлен в следующих местах:

  • Глобально в config.php
  • На SP: Специфично только для SP в authsources.php
  • На SP: только для одного удаленного IdP в saml20-idp-remote или shib13-idp-remote
  • На IdP: только для одного размещенного IdP в saml20-idp-hosted или shib13-idp-hosted
  • На IdP: только для одного удаленного SP в saml20-sp-remote или shib13-sp-remote

Обратите внимание, что вам может потребоваться очистить все сеансы (закрыть и снова открыть браузер), чтобы изменения вступили в силу.

Главный совет для дальнейшего использования — всегда читайте самую последнюю версию документации!

2

По вопросам рекламы [email protected]