Size: a a a

2021 March 18

VL

Victor Litvin in LDAP
Но есть еще возможность довставлять данные в запрос исходя из метадаты авторизованного
источник

R

Reykjanes in LDAP
Victor Litvin
Но есть еще возможность довставлять данные в запрос исходя из метадаты авторизованного
Как именно?
источник

VL

Victor Litvin in LDAP
Reykjanes
Как именно?
источник

VL

Victor Litvin in LDAP
По умолчанию есть ldap_dn и ldap_groups, но можно еще добавить метадаты
источник

R

Reykjanes in LDAP
Да, про это
источник

R

Reykjanes in LDAP
Victor Litvin
По умолчанию есть ldap_dn и ldap_groups, но можно еще добавить метадаты
Так вот, я добавляю метадату
источник

VL

Victor Litvin in LDAP
Victor Litvin
Но есть еще возможность довставлять данные в запрос исходя из метадаты авторизованного
Ну или фильтровать результаты, я пока в этом плохо понимаю.
источник

R

Reykjanes in LDAP
но поле метадаты, приходит в формате ["значение1", "значение2", "значение"]
В этом варианте эластик парсит это как массив
источник

R

Reykjanes in LDAP
А если у поля только одно начение, оно приходит в формате поле: "значение1"
источник

R

Reykjanes in LDAP
И конечно же, запрос который настроен на обработку массива тупо не понимает и не может выполнить разделение прав на основе получаемых значений поля
источник

R

Reykjanes in LDAP
Было бы правильно, если метаполе всегда было в формате массива
источник

R

Reykjanes in LDAP
вот тут кстати и примеры запросов, один для строковой обработки. Другой с массивом.
источник

VL

Victor Litvin in LDAP
Из того что приходит в голову:
- Написать тикет в https://github.com/elastic/elasticsearch/issues потому что подобного я там не нашел. На самом деле все это пока очень похоже на баг (фичу)  приложения. Хотя я и могу понять почему так было сделано.
- Использовать рбак. И фильтровать документы в соотвествии с группами пользователей.
- На самом деле существуют функции которые преобразуют строку в массив с одним элементом, и я их просто не нашел в документации к эластику.
- Написать все что нужно в один аттрибут, возможно в каким-то хитром формате (через запятую, сразу жсоном?), а потом это в эластике правильно зашаблонится.
- Вставить костыль добавив каждому пользователю в лдапе одину-два аттрибута с неиспользуемыми значениями чтобы оно всегда было массивом.
источник

R

Reykjanes in LDAP
Благодарю за рекомендации!
источник

R

Reykjanes in LDAP
Тикет Написала
источник

R

Reykjanes in LDAP
Появилась идея с форматом в одной строке, проверю
источник

VL

Victor Litvin in LDAP
Anatolij Iz Podvala
в модуле для нода это работает https://www.npmjs.com/package/ldapjs

например, у меня такой профиль пользователя (с массивом email'ов)
Мне интересно, а нода тоже же мапит единственный аттрибут в строку?
Прост за соотвествие типов могла бы отвечать схема, а она никаким образом [тут] не участвует.
источник

AI

Anatolij Iz Podvala in LDAP
да
источник

AI

Anatolij Iz Podvala in LDAP
но там это просто проверить потом
источник

VL

Victor Litvin in LDAP
Это да, с нодой проще, там императивщина.
источник