Структура OpenLDAP и обслуживание пользователей на основе ролей

Структура OpenLDAP и обслуживание пользователей на основе ролей

Я планирую структуру сервера OpenLDAP для интеграции с несколькими приложениями (скажем, 10 приложений). В этом у меня есть 8 внутренних приложений (веб- и мобильные приложения) и 2 других, скажем, внешних сервиса, таких как GitLab.

Иерархия пользователей и приложений LDAP

Наш сценарий будет похож на использование всех 10 приложений с 1000 пользователями. Среди 1000 пользователей будут разные роли, такие как администратор, менеджеры, разработчики и т. д.

Все 1000 пользователей будут иметь разрешение/доступ для входа в приложения (например, cn=application3, cn=application4, cn=application5, как показано на рисунке).

Для cn=application1 и cn=application2 (которые являются внешними службами, такими как GitLab, и включают отдельные роли, как во внешнем приложении), только несколько пользователей будут иметь разрешение на доступ/использование.

Согласно нашим требованиям, мы вставили 1000 пользователей в cn=group1. И в этом случае мы переместили несколько пользователей в cn=application1 и cn=application2, которым нужен доступ к этим приложениям. В будущем размер моей организации увеличится, и количество приложений также увеличится. На данный момент мы продолжаем использовать структуру, показанную на рисунке. Является ли это наилучшей практикой для использования?

Может ли кто-нибудь подсказать мне, как мне с этим разобраться?? Поскольку я новичок в OpenLDAP, пожалуйста, дайте мне знать, если я что-то не так упомянул.

решение1

Ваш макет выглядит странно.

  • Обычно пользователи хранятся в ou=users,dc=example,dc=com, ou=accounts,dc=example,dc=comили ou=people,dc=example,dc=com.
  • Роли, как правило, рассматриваются группой определенного типа ( groupOfNames, groupOfUniqueNamesили organizationalRole) и занимают место, подобное ou=groups,dc=example,dc=com. groupOfNamesявляется наиболее распространенным.
  • Подумайте о том, чтобы назвать свои роли как-то так cn=admins+ou=app1,ou=groups,dc=example,dc=com. Это позволит вам извлечь все роли для app1, выполнив поиск по ou=app1.

Связанный контент