LDAP - Добавьте фильтр к URL-адресу LDAP, чтобы только пользователи, принадлежащие определенной группе, могли получить доступ к приложению.

Мы разрешаем приложению использовать LDAP.

В конфигурации приложения нам необходимо указать URL-адрес для подключения к LDAP. В настоящее время мы предоставляем следующий URL-адрес ...

ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid

ВОПРОС: Нам нужно добавить фильтр к указанному выше URL-адресу, чтобы находились только пользователи, принадлежащие к группе «accessgroup», чтобы ограничить доступ к приложению только пользователи, принадлежащие к этой группе.

То есть что-то похожее на это ...

curl "ldap://10.2.0.5:389/dc=domain,dc=abc,dc=de?uid?sub?(&(memberof=cn=accessgroup,ou=groups,dc=domain,dc=abc,dc=de)(uid=%s))"

Мы перепробовали сотни настроек, но ничего не работает ... = |

ГРУППА

cn:
accessgroup

gidNumber:
1004

memberUid:
usera
userb
userc
userd
usere
userf
userg
userh
useri

objectClass:
top
posixGroup

ПОЛЬЗОВАТЕЛИ

cn:
User Letter A

gecos:
User Letter A

gender:
M

gidNumber:
544

givenName:
User

gotoLastSystemLogin:
01.01.1970 00:00:00

homeDirectory:
/home/usera

loginShell:
/bin/bash

mail:
user.letter.a@domain.abc.de

objectClass:
top
person
organizationalPerson
inetOrgPerson
gosaAccount
posixAccount
shadowAccount
sambaSamAccount

[...]

uid:
usera

uidNumber:
1004

[...]

Спасибо! = D

0
задан 30 July 2021 в 02:09
2 ответа

СИТУАЦИЯ:

Проблема в том, что мы пытаемся фильтровать с помощью групп POSIX, и для этого нет специального наложения. Существует довольно сложный и трудоемкий обходной путь, который можно увидеть здесь ГЕНЕРАЦИЯ АТРИБУТА ЧЛЕНА ДЛЯ POSIXGROUPS.

РЕШЕНИЕ:

Чтобы решить эту проблему, мы реализовали простое решение, которое можно увидеть здесь...

psx-grp-flt - членство пользователя в posixGroup против pgMemberOf (memberOf)

... которое в основном выглядит следующим образом...

Простой скрипт Python 2.7, в котором хранится posixGroup каждого пользователя (POSIX Group) в их атрибуте pgMemberOf (memberOf). То цель состоит в том, чтобы включить поисковые фильтры, как показано ниже...

MODEL

ldapsearch -x -H 'ldap://127.0.0.1:389' -б 'ou=persons,dc=domain,dc=abc,dc=de'
-D 'cn=admin,dc=domain,dc=abc,dc=de'
-w 'мое секретное значение'
'(&(pgMemberOf=cn=certaingroup,ou=groups,dc=domain,dc=abc,dc=de)(uid=certainuid))'

ПРИМЕР

ldapsearch -x -H '' -b ','
-D ''
-w ''
'(&(pgMemberOf=cn=,,))'

Этот сценарий полезен в случаях, когда у нас уже есть OpenLDAP установлены, и мы хотим сделать фильтры доступными для групп POSIX, которые уже существует очень простым способом и без создания новых типов группы. Также полезно, когда невозможно установить оверлеи или когда процесс слишком трудоемкий или рискованный.

Спасибо! =D

0
ответ дан 13 August 2021 в 15:18

Как создается атрибут memberOf вашего сервера LDAP? Проверяли ли вы, действительно ли у ваших пользователей есть атрибуты memberOf?

Например, в OpenLDAP memberOf заполняется только в том случае, если вы используете наложение memberof или управляете ими с помощью динамических списков.

1
ответ дан 13 August 2021 в 08:09

Теги

Похожие вопросы