Я использую Symfony в php с этим комплектом: https://github.com/hslavich/OneloginSamlBundle
Использует инструментарий onelogin php -saml: https://github.com/onelogin/php-saml
Мой IDP при аутентификации возвращает атрибуты, которые необходимо сопоставить с oid на понятное имя
<saml:AttributeStatement>
<saml:Attribute Name="urn:oid:0.9.2342.19200300.100.1.1"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml:AttributeValue xsi:type="xs:string">58690</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="urn:oid:1.2.840.113549.1.9.1"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml:AttributeValue xsi:type="xs:string">mytestemail@gmail.com</saml:AttributeValue>
</saml:AttributeStatement>
Это прекрасно работает, если я использую имя oid в конфигурации symfony bundles и У меня нет дружеских имен. Однако я хочу сопоставить их с UID и электронной почтой. Я использовал simplesaml php, и он предоставлен как класс для отображения этих значений, но не нашел аналогичных в onelogin php -saml, поэтому я думаю, что мне нужно вручную отобразить их.
Я думал, что мне нужно указать служба поддержки атрибутов, но это ничего не изменило
## ...
sp:
entityId: 'http://test.local/saml/metadata'
assertionConsumerService:
url: 'http://test.local/saml/acs'
binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'
attributeConsumingService:
serviceName: 'SP test'
serviceDescription: 'Test Service'
requestedAttributes:
- name: 'urn:oid:0.9.2342.19200300.100.1.1'
isRequired: true
friendlyName: 'uid'
- name: 'urn:oid:1.2.840.113549.1.9.1'
isRequired: true
friendlyName: 'email'
## etc...
Кто-нибудь знает, как это сделать в onelogin / в плагине? Я на правильном пути по отношению к onelogin хотя бы?