Могу ли я сопоставить значение атрибута в attribute-map.xml при использовании Shibboleth (v3) в качестве SP?

OKTA - это IdP, а Shibboleth - это SP. OKTA передает атрибуты «роли», например idp_dev_SLAN_Power, idp_dev_SLAN_Admin, idp_dev_SLAN_account и т. Д.

Мне интересно, могу ли я удалить idp_dev_SLAN_, когда он принимает этот атрибут.

Вот что я вижу в текущем attribute-map.xml.

<Attribute id="roles" name="roles" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" />

Я чувствую, что могу что-то сделать с AttributeDecoder. любая идея??


person jetulis    schedule 21.02.2019    source источник


Ответы (1)


Я думаю, вы, вероятно, ищете Transform тип AttributeResolver, который:

применяет одно или несколько регулярных выражений к входному атрибуту, либо заменяя его значения, либо создавая новые атрибуты. - из Shibboleth Wiki

Приведен пример:

<AttributeResolver type="Transform" source="displayName">
    <Regex match="^(.+) (.+)$" dest="givenName">$1</Regex>
    <Regex match="^(.+) (.+)$" dest="sn">$2</Regex>
    <Regex match="^(.+) (.+)$">$2, $1</Regex>
</AttributeResolver>

который преобразует displayName в два атрибута givenName и sn. Но я уверен, что вы могли бы создать регулярное выражение, чтобы захватить idp_dev_SLAN_ для различных входящих элементов и сопоставить их с одним или несколькими атрибутами по вашему желанию.

person Kellen Murphy    schedule 22.02.2019
comment
ой. звучит многообещающе. протестирую и приму ответ в ближайшее время !! еще раз спасибо - person jetulis; 24.02.2019
comment
Привет, Келлен. Я разместил еще один вопрос. stackoverflow.com/questions/56045744/ - person jetulis; 08.05.2019