Azure动态成员规则中-contains运算符作用及AD组成员判定问题
Azure AD 规则中
-contains 运算符的工作机制解析 核心行为说明
-contains在Azure AD的成员规则里是精确匹配子字符串,默认不区分大小写,但不支持通配符(*)——也就是说*会被当作普通字符处理,不是模糊匹配的占位符。
针对你的问题解答
是的,user.city -contains "SEA" 会匹配所有包含连续"Sea"(不区分大小写)子字符串的user.city值:
- 比如
SeaExample、ExampleSeaExample这类包含"Sea"的字符串,都会匹配成功 - 哪怕是全大写的
SEATTLE,因为不区分大小写,也会匹配成功 - 但如果字符串只有
Se或者ea这种不完整的子串,就不会匹配
关于你给出的规则语句分析
你提到的规则 "user.city -contains "SEA" and user.city -contains "Sea*"" 里,第二个条件user.city -contains "Sea*"的*是普通字符,它只会匹配包含"Sea*"这个具体内容的城市值(比如Sea*Town),而不会匹配Seattle或者SeaExample这类字符串。如果你的需求是匹配以"Sea"开头的城市,应该用-match "Sea.*"(因为-match支持正则,且默认不区分大小写),而不是带*的-contains。
内容的提问来源于stack exchange,提问作者truco
相关产品推荐
相关产品推荐

