Я успешно настроил simpleSAMLphp, чтобы он проходил аутентификацию через Test Shib IDP (https://www.testshib.org/).
Test Shib возвращает следующие атрибуты:
Я хотел бы сопоставить эти атрибуты с понятными именами. Кто-нибудь может дать мне несколько советов о том, как это сделать?
Пример 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'),
не имеет никакого эффекта
Любая помощь будет принята с благодарностью!
Если предположить, SimpleSAMLPHP
1.6 и выше, вы можете просто использовать сборку в oid2name
Таблица атрибутов, чтобы сделать сопоставление для вас.
'authproc' => array(
50 => array(
'class' => 'core:AttributeMap',
'oid2name',
),
),
Чтобы добавить ответ Люка, вы можете просто добавить фильтр authproc в следующих местах:
Взято из https://simplesamlphp.org/docs/stable/simplesamlphp-authproc
Вы можете увидеть дополнительные атрибуты, такие как oid2urn
а также oid2feide
в источнике, найденном здесь:
https://github.com/simplesamlphp/simplesamlphp/tree/master/attributemap
В соответствии с 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',
),
),
Документация предполагает, что этот массив конфигурации может быть добавлен в следующих местах:
Обратите внимание, что вам может потребоваться очистить все сеансы (закрыть и снова открыть браузер), чтобы изменения вступили в силу.
Главный совет для дальнейшего использования — всегда читайте самую последнюю версию документации!