ADFS自定义声明规则:对于一个组失败,适用于两个或更多

时间:2017-08-24 01:56:54

标签: adfs

我继承了一个ADFS设置,其中包含一些自定义声明规则,这些规则根据使用特定前缀命名的组中的成员资格来分配SAML角色。

第一个检索所有组并填充角色:

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", 
   Issuer == "AD AUTHORITY"]
 => add(
    store = "Active Directory", 
    types = ("http://schemas.microsoft.com/ws/2008/06/identity/claims/role"), 
    query = ";tokenGroups;{0}", 
    param = c.Value);

第二个过滤器仅列出具有所需前缀的过滤器:

c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role", 
   Value =~ "(?i)^prefix.*"]
   => issue(claim = c);

但是,如果用户只属于其中一个前缀组,而不返回任何角色,则此操作无效。如果它们被添加到具有相同前缀的第二个组,则两者都返回。

我对DSL的索赔规则并不过分熟悉,但这似乎与我见过的例子相同。如果只找到一个匹配组,有没有办法让它返回一个角色列表?

0 个答案:

没有答案