Резюме
Короче говоря, нам поставили задачу портить части аутентификации и авторизации довольно старого и раздутого приложения asp.net, которое ранее использовало все эти компоненты, написанные с нуля. Поскольку наше приложение не является типичным, и никто из нас не имеет опыта работы с asp.net, созданным в составе компонентов поставщика членства, мы не уверены, нужно ли снова повторять нашу собственную проверку подлинности и авторизацию или если мы должны попытаться работать в asp.net членство провайдера мышления и развивать наш собственный членский провайдер.
Наше приложение
У нас есть довольно старое приложение asp.net, которое устанавливается в местах расположения клиентов для обслуживания клиентов в локальной сети. Админы создают пользователей (пользователи не регистрируются), и в зависимости от установки у нас может быть интегрировано программное обеспечение с LDAP.
В настоящее время интеграция с LDAP-массой импортирует пользователей в нашу базу данных, и когда они входят в систему, она аутентифицируется против LDAP, поэтому нам не нужно управлять их паролями. Ничего удивительного нет.
Администраторы могут назначать пользователей в 1 группу, и они могут изменять авторизацию этой группы для управления доступом к различным частям программного обеспечения.
Группы поддерживаются админами (веб-интерфейс), и, как было сказано ранее, предоставлены/запрещены разрешения для определенных функций внутри приложения.
Все это было полностью записано с нуля без использования встроенной авторизации или аутентификации .net. У нас буквально есть методы IsLoggedIn()
, которые проверяют вход в систему и перенаправляют на нашу страницу входа в систему, если это не так.
Наша перепись
Нам было поручено более тесно интегрироваться с LDAP, они хотят, чтобы мы связывали группы в нашем приложении с группами (или любыми типами контейнеров, которые использует LDAP) в LDAP, чтобы, когда клиент решил использовать нашу интеграцию LDAP, они не должны управлять своими пользователями в LDAP и в нашем приложении.
Новый способ: они просто создадут пользователей в LDAP, добавят их в группы в LDAP, и наше приложение увидит, что они принадлежат к соответствующей группе LDAP и аутентифицируют и авторизуют их.
Кроме того, нам предоставили возможность полностью разорвать код аутентификации пользователя и авторизации и полностью переделать его.
Наша проблема
Проблема в том, что никто из нас не имеет опыта работы с функциями поставщика членства в asp.net. Небольшое количество воздействия, которое я испытываю к этому, заставляет меня беспокоиться о том, что он не предназначен для использования в таких приложениях, как наша. Хотя разработка нашего собственного провайдера членства ASP.NET и диспетчера ролей звучит так, что это будет большой опыт и, скорее всего, подходящая вещь.
В принципе, я ищу совет, должен ли мы использовать поставщик членства ASP.NET и API управления ролями или мы должны продолжать сворачивать наши собственные? Я знаю, что это решение будет зависеть от наших требований, поэтому я перехожу через них ниже
Наши требования
Просто быстрый n грязный список
- Поддерживайте способность иметь db пользователей и аутентифицировать их и предоставлять администраторам (только, а не пользователям) возможность пользователей CRUD
- Разрешить сайту интегрироваться с LDAP, когда это выбрано, они не хотят, чтобы какие-либо пользователи, хранящиеся в БД, только отношения между группами, как они существуют в нашем приложении /db, и Группы/Контейнеры, поскольку они существуют в LDAP.
- .net 3.5 используется (сочетание веб-форм asp.net и asp.net mvc)
- Должен работать в ASP.NET и ASP.NET MVC (не должен быть проблемой, я предполагаю)
- Это не может быть ориентировано на пользователя, администраторы должны быть единственными CRUD (или импортировать через ldap) пользователей и групп.
- Мы должны иметь возможность Auth через LDAP, когда он настроен для этого
Я всегда стараюсь внимательно следить за своими вопросами, поэтому не стесняйтесь обращаться за дополнительной информацией. Кроме того, как общее резюме того, что я ищу в ответе, просто. "Вы должны/не должны использовать xyz, вот почему".
Ссылки, касающиеся провайдера членства asp.net и управления ролью, очень приветствуются, большинство вещей, которые я нахожу, составляет 5+ лет.