В настоящее время я изучаю методы хранения пользовательских ролей и разрешений для проектов на основе .NET. Некоторые из этих проектов основаны на сети, некоторые - нет. В настоящее время я изо всех сил стараюсь найти лучший метод для достижения того, что я ищу, в последовательном, переносном виде по типам проектов.
Где я нахожусь, мы стремимся использовать Active Directory в качестве нашей единственной точки контакта для получения основных пользовательских данных. Из-за этого мы не хотим поддерживать пользовательскую базу данных для каждого пользователя приложения, так как они уже хранятся в Active Directory и активно поддерживаются там. Кроме того, мы не хотим писать собственную модель безопасности/код, если это возможно, и хотели бы использовать что-то ранее существовавшее, например блоки приложений безопасности, предоставленные Microsoft.
Некоторые проекты требуют только базовых привилегий, таких как чтение, запись или отсутствие доступа. Другие проекты требуют более сложных разрешений. Пользователям этих приложений может быть предоставлен доступ к некоторым областям, но не к другим, и их разрешения могут изменяться в каждой области. Раздел администрирования приложения будет контролировать и определять этот доступ, не инструменты AD.
В настоящее время мы используем встроенную проверку подлинности Windows для проверки подлинности в нашей интрасети. Это хорошо работает для поиска базовой информации пользователя, и я видел, что ASP.NET можно расширить, чтобы предоставить провайдер ролей Active Directory, поэтому я могу узнать о любых группах безопасности, к которым принадлежит пользователь. Но, похоже, что падение этого метода для меня заключается в том, что все хранится в Active Directory, что может привести к беспорядку, чтобы поддерживать, если вещи становятся слишком большими.
В этой же строке я также слышал о Active Directory Lightweight Directory Services, который, похоже, может расширить нашу схему и добавить только специальные атрибуты и группы приложений. Проблема в том, что я не могу найти ничего о том, как это будет сделано или как это работает. Существуют статьи MSDN, в которых описывается, как разговаривать с этим экземпляром и как создать новый экземпляр, но ничто никогда не отвечает на мой вопрос.
Мой вопрос: Основываясь на вашем опыте, я иду по правильному пути? Является ли то, что я ищу, чтобы сделать возможным использование только Active Directory или использовать другие инструменты?
Другие методы, которые я изучил:
- Использование нескольких файлов web.config [qaru.site/info/103457/...]
- Создание пользовательской модели безопасности и базы данных для управления пользователями через приложения