2016-08-31 11 views
0

Постановка задачи:Предложение/Руководство по внедрению LDAP (Active Directory) аутентификации

Я пытаюсь создать пользовательскую систему управления, которая потребует аутентификации и авторизации обоих. Система должна иметь возможности для управления/создания/обновления/удаления пользователей, ролей, разрешений и групп.

My Design Solution

Я планирую осуществить это в доме с нуля и будет обеспечивать аутентификацию и авторизацию следующим образом.

Аутентификация: пользователь предоставит свои учетные данные, и система будет аутентифицироваться, если пользователь действителен или нет.

Авторизация: после аутентификации пользователя на основе групп пользователей и разрешений они могут обращаться к запрошенным страницам на сайте.

Вопрос:

Теперь, мой вопрос заключается в том, что предположим, у меня есть это приложение, построенное успешно и в будущем мое приложение требует LDAP (Active Directory) аутентификации было бы возможно подключить LDAP связанных функций поддержания моего существующего приложения, или мне пришлось бы переписать все или большинство приложений с помощью API LDAP.

Я смотрел на apache shiro и весеннюю безопасность, которые предоставляет функции LDAP, а также предоставляют возможности для управления/создания/обновления/удаления пользователей.

На данный момент я еще не решил, поеду ли я с кем-нибудь из них или напишу сам.

Буду признателен, если я смогу получить подробный ответ о том, как идти о вещах.

Примечание: Я полный новичок в LDAP поэтому, пожалуйста, простите меня, если я использовал некоторые неправильную терминологию по отношению к LDAP.

ответ

1

Безопасность - это серьезный домен с множеством скрытых осложнений. Я бы определенно рекомендовал не применять это самостоятельно. Поскольку вы упоминаете Spring LDAP, я предполагаю, что вы находитесь в проекте на основе Spring. Очевидным выбором в такой установке был бы отличный проект Spring Security.

+0

спасибо, имеет ли весна безопасность возможность разрешить/запретить доступ к определенной странице на основе разрешений и ролей? Могу ли я определить группы в моей таблице и позволить пружине использовать эти группы, чтобы разрешить/запретить доступ к определенной странице? Могу ли я определить пользовательские роли в весенней безопасности? – user641887

+1

О да, все это и многое другое :). По умолчанию Spring Security использует авторизацию на основе ролей. Из вашего вопроса неясно, чего вы хотите достичь, разделив роли, разрешения и группы (думаете ли вы о авторизации на основе ACL?), Но все полностью подключается, поэтому вы сможете использовать любую настраиваемую схему авторизации, которую вы можете захотеть (есть также бесплатная поддержка авторизации на основе ACL). Проверьте справочную документацию, это действительно хорошо! – marthursson

+0

Я имею в виду, что в весенней документации говорится, что авторизация основана на ролях. Я хотел бы переопределить это и создать авторизацию на основе разрешений. У меня было бы 3 таблицы в моей схеме. пользователя, ролей и разрешений, и я бы хотел разрешить пользователям разрешения, а не роли. Это похоже на то, что пользователь имеет определенное разрешение, выполняющее определенное действие или показывающее определенную страницу, и нет. Таким образом, у него есть своя таблица пользователей, разрешений и ролей и использование весенней безопасности. Также у меня будет пользовательский интерфейс для редактирования, обновления и создания новых ролей, пользователей и разрешений. – user641887

2

Я бы рекомендовал НЕ реализовать это самостоятельно, просто интегрироваться с существующим API.

Раскрытие информации: Я работаю для Stormpath (что обеспечивает именно это) и на Apache Shiro.

Кроме того, если необходимо при поддержке LDAP, наиболее расстановок LDAP вашего приложения я видел только поддерживаю операцию чтения при интеграции с приложениями, так что вы можете общаться с LDAP администратором и посмотреть, если ваши «управлять «Случай использования пользователя жизнеспособен.

+0

ли весна безопасности или apache shiro имеет возможность поддерживать пользовательские роли, разрешения и группы? Могу ли я контролировать доступ к определенной странице для пользователя на основании его прав доступа не в весенней безопасности или Сиро? – user641887

+0

Да, общий обзор [разрешений Сиро] (http://shiro.apache.org/permissions.html), который, в свою очередь, может быть сконфигурирован для защиты данного [пути] (http://shiro.apache.org/web.html#Web-WebINIconfiguration) или с помощью программных и аннотационных подходов. –