自定义索赔规则
Custom claim rules
我是 ADFS 声明规则的新手,正在为自定义规则苦苦挣扎。
我想做的是根据组名过滤组,然后return匹配的组作为 SID。我还想 return UPN、电子邮件、姓氏、GivenName 和 WindowsAccountName 以及这些,但过滤组最重要。
我已经试过了,但没有成功:
c:[Type == "http://schemas.xmlsoap.org/claims/Group", Value =~ "(?i).+(Test|Test2).+"]
=> issue(Type = "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid");
任何人都可以帮助我创建此规则或为我指明正确的方向吗?如果您费心的话,我也很感激对规则的解释。
您首先需要一个规则来创建组。
所以在向导中,设置一个 LDAP 规则。
在 LHS 上,选择“令牌组 - 不合格名称”。
在 RHS 上,选择“http://schemas.xmlsoap.org/claims/Group”。
你现在可以运行正则表达式了。
c:[类型 == "http://schemas.xmlsoap.org/claims/Group", 值 =~ "(?i).+(Test|Test2).+"]
=>问题(类型=“https://schemas.microsoft。com/ws/2008/06/identity/claims/groupsid”,值=c.value);
规则所说的是采用“http://schemas.xmlsoap.org/claims/Group”类型的所有声明,运行 正则表达式,如果为真,则创建一个 groupsid 声明集团索赔的价值。
请注意,如果有多个组与正则表达式匹配,您将获得多个 groupsid 类型的声明。
此外,请在此处查找 reference。
这为用户提供了我想要的参数,根据名称过滤组,returns 组作为非限定名称和 SID
获取群组:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> add(store = "Active Directory", types = ("http://schemas.xmlsoap.org/claims/Group"), query = ";tokenGroups;{0}", param = c.Value);
过滤器和问题组:
c1:[Type == "http://schemas.xmlsoap.org/claims/Group", Value =~ "INSERT-REGEX-HERE"]
&& c2:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", "http://schemas.xmlsoap.org/claims/Group"), query = "(&(name={0}));objectSid,name;{1}", param = c1.Value, param = c2.Value);
发布用户参数:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"), query = ";givenName,sn,mail,userPrincipalName,sAMAccountName;{0}", param = c.Value);
我是 ADFS 声明规则的新手,正在为自定义规则苦苦挣扎。
我想做的是根据组名过滤组,然后return匹配的组作为 SID。我还想 return UPN、电子邮件、姓氏、GivenName 和 WindowsAccountName 以及这些,但过滤组最重要。
我已经试过了,但没有成功:
c:[Type == "http://schemas.xmlsoap.org/claims/Group", Value =~ "(?i).+(Test|Test2).+"]
=> issue(Type = "https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid");
任何人都可以帮助我创建此规则或为我指明正确的方向吗?如果您费心的话,我也很感激对规则的解释。
您首先需要一个规则来创建组。
所以在向导中,设置一个 LDAP 规则。
在 LHS 上,选择“令牌组 - 不合格名称”。
在 RHS 上,选择“http://schemas.xmlsoap.org/claims/Group”。
你现在可以运行正则表达式了。
c:[类型 == "http://schemas.xmlsoap.org/claims/Group", 值 =~ "(?i).+(Test|Test2).+"] =>问题(类型=“https://schemas.microsoft。com/ws/2008/06/identity/claims/groupsid”,值=c.value);
规则所说的是采用“http://schemas.xmlsoap.org/claims/Group”类型的所有声明,运行 正则表达式,如果为真,则创建一个 groupsid 声明集团索赔的价值。
请注意,如果有多个组与正则表达式匹配,您将获得多个 groupsid 类型的声明。
此外,请在此处查找 reference。
这为用户提供了我想要的参数,根据名称过滤组,returns 组作为非限定名称和 SID
获取群组:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> add(store = "Active Directory", types = ("http://schemas.xmlsoap.org/claims/Group"), query = ";tokenGroups;{0}", param = c.Value);
过滤器和问题组:
c1:[Type == "http://schemas.xmlsoap.org/claims/Group", Value =~ "INSERT-REGEX-HERE"]
&& c2:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("https://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", "http://schemas.xmlsoap.org/claims/Group"), query = "(&(name={0}));objectSid,name;{1}", param = c1.Value, param = c2.Value);
发布用户参数:
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types = ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn", "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"), query = ";givenName,sn,mail,userPrincipalName,sAMAccountName;{0}", param = c.Value);