将Shibboleth(v3)用作SP时,我可以映射attribute-map.xml中的属性值吗?

时间:2019-02-21 20:48:33

标签: attributes shibboleth

在此设置中,OKTA是IdP,Shibboleth是SP。 OKTA正在传递属性“角色”,例如idp_dev_SLAN_Power,idp_dev_SLAN_Admin,idp_dev_SLAN_account等

我想知道是否可以在使用“ idp_dev_SLAN_”这个属性时将其删除。

这是我在当前attribute-map.xml中看到的内容。

var source = "http://test.stage.cms.9c9media.net:8080/pete-test-1.867172"
var regex = /\d\.\d+/;
var matches = source.match(regex);
if(matches)
  console.log(matches[0])

我觉得我可以使用AttributeDecoder做一些事情。有什么想法吗?

1 个答案:

答案 0 :(得分: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转换为两个属性givenNamesn。但是我敢肯定,您可以构建一个正则表达式来获取各种入站元素的idp_dev_SLAN_并将其映射到您期望的1个或多个属性。