Использование Active Directory для авторизации в .Net - PullRequest
0 голосов
/ 09 августа 2011

Помимо простых примеров кода для выполнения основных функций AD с использованием System.DirectoryServices.AccountManagement, есть ли общие рекомендации или кто-то может опубликовать свои собственные по интеграции .net с приложением?У меня есть отдельная база данных проектов.

Проекты могут быть назначены пользователю.Должен ли я хранить UserPrincipleName, Отличительное имя, GUID или SID в базе данных?

Части проекта доступны только сотрудникам определенного отдела.Создаю ли я простую группу AD для каждого отдела?Стоит ли предпочесть какое-либо локальное кэширование или несколько вызовов IsMemberOf?

Как мне обрабатывать более детальные разрешения, такие как CanDoSomething.Стоит ли вкладывать больше групп?

1 Ответ

1 голос
/ 09 августа 2011

Если ваше приложение и пользователи, использующие его, находятся в одной локальной сети, я определенно рекомендую использовать прямую проверку подлинности Windows.

То есть:

  • для каждой группы пользователей в вашем приложении (обычные пользователи, демонстрационные пользователи, администраторы) создайте группы безопасности Windows / AD - они могут администрироваться и обрабатываться любым администратором Windows / AD (без специальных инструментов / пользовательского интерфейса) необходимые вещи)

  • в вашем коде, используйте метод IsInRole для текущего WindowsPrincipal, чтобы выяснить, принадлежит ли этот текущий пользователь определенной роли (или нет)

  • более детальные разрешения: это полностью ваше дело; Есть некоторые «готовые» решения, такие как AzMan, но ни одно из них, похоже, не используется широко - мы в основном «свертываем свои» с помощью какого-то двух- или трехслойного подхода (пользователь - профиль - разрешение), который управляется в базе данных и администрируется в наших приложениях

Имя объекта AD может измениться, поэтому я бы не использовал его в качестве своей уникальной и стабильной ссылки. GUID или SID оба фиксированы и не меняются - GUID тем более (SID могут быть объединены при определенных обстоятельствах и, следовательно, могут измениться - больше для групп, но это все еще возможно)

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