Skip to content

Сервис авторизации и администрирования пользователей и отделов абонентов

License

Notifications You must be signed in to change notification settings

oknosoft/metadata-auth-proxy

Repository files navigation

metadata-auth-proxy

Сервис авторизации и администрирования пользователей и отделов абонентов

Metadata.js с момента основания, ориентирована на одновременную работу с разными источниками данных: nosql, sql, 1c. Однако, мы долго не уделяли должного внимания инструментам администрирования пользователей. Наверное от того, что задачи удавалось решать встроенными в 1С средствами. Рост масштаба внедрений, выявил недостатки механизма управления пользователями из 1С и репликации баз _users couchdb между активными серверами.

Откровение

Специалисты по авторизации и аутентификации будут смеяться, но для меня стало открытием, что задачу проверки подлинности (аутентификации) пользователя и получения списка свойств и прав этого пользователя (авторизации), можно и нужно разделить. Провайдер авторизации в 1С, точно так же, как провайдер авторизации Couchdb, возвращают при успешной авторизации пользователя, список его ролей. Couchdb, допускает хранение в базе _users, дополнительных реквизитов, умолчаний и свойств пользователя. В 1С для тех же целей, используются справочник Пользователи.

Схема выглядит вполне стройно, что вместе с авторитетом 1С и Couchdb, подталкивает разработчиков поступать так же - сваливать в кучу проверку подлинности пользователя и хранение списка его разрешений и умолчаний. Однако, этот подход не лишен недостатков:

  • Администратор системы знает пароли пользователей. Будет лучше, если пользователь зарегистрируется в системе самостоятельно, а администротор назначит этому пользователю список ролей и разрешений
  • Свойства пользователя дублируются во многих местах. Репликация этих свойств не повышает надёжность системы
  • Отсуствует возможность использовать для аутентификации произвольных LDAP и oAuth провайдеров, т.к. мы ожидаем вместе с идентификатором пользователя получить список ролей и умолчаний
  • Сложное администрирование инфраструктуры. Сейчас, при большом числе пользователей, их запросы перенаправляются разным физическим серверам, в зависимости от отдела абонента текущего пользователя. За маршрутизацию отвечает nginx, настройки которого приходится изменять руками при изменении топологии отделов авбоентов

Решение

Сервис администрирования пользователей, позволит:

  • Назначить отдельных администраторов пользователей для каждого Абонента или Отдела Абонента (сейчас, пользователи всех абонентов в общем списке 1С)
  • Использовать для подтверждения подлинности LDAP, oAuth или произвольную couchdb без необходимости репликации базы _users
  • Обеспечить автоматическую маршрутизацию запросов пользователя к целевой couchdb в соответствии с отделом абонента текущего пользователя
  • Реализовать сценарий самостоятельной регистрации пользователей с последующим назначением прав администратором Абонента (самообслуживание)
  • Создавать и редактировать отделы абонентов, управлять репликациями баз doc

About

Сервис авторизации и администрирования пользователей и отделов абонентов

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •