Regex Отрицательный взгляд в правило утверждений ADFS
Мне нужно предоставить претензию всем, кто не соответствует определенному атрибуту LDAP. Я хочу использовать регулярное выражение с отрицательным взглядом вперед, чтобы выполнить это "не" предложение
c1:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", Value =~ "^(?!Test User).*$"]
=> issue(Type = "http://goofyclaim", Value = "youre not a tester");
вышеприведенное правило, кажется, не удовлетворено моими тестовыми пользователями. Что-то не так с регулярным выражением? или ADFS4.0 не поддерживает его. Я не вижу ошибок в журналах событий ADFS.
это win2016srv в домене AD win2012r2.
для справки, это правило работает:
c1:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", Value =~ "(?i)^Test User1"]
=> issue(Type = "http://somethignelseentreily", Value = "imispellwhendriving");
2 ответа
(оставив мой другой ответ, чтобы другие могли видеть его не right
ответ)
NOT EXISTS([Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", Value =~ "^Test User"])
=> issue(Type = "http://somethignelseentreily", Value = "all");
Сначала мне нужно использовать (можно найти здесь языковые терминалы правил ADFS) для REGEXP_NOT_MATCH
!~
Затем мне пришлось немного реструктурировать модификатор режима regex, так как регистр нечувствителен внутри ^ idenifier
c1:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", Value !~ "^(?i)Test User"]
=> issue(Type = "http://somethignelseentreily", Value = "imispellwhendriving");