Существует ли библиотека C #, которая ведет себя как разрешения и группы Active Directory? - PullRequest
6 голосов
/ 16 мая 2011

Мне нравится, как разрешения и группы работают в Active Directory, но я не хочу связывать свое приложение с AD.

Существует ли существующая библиотека с такой же функциональностью, как у AD? В частности, возможность создавать группы, назначать пользователей в группы, добавлять разрешения для групп и просматривать примененные права пользователя или группы?

Ответы [ 7 ]

1 голос
/ 15 июня 2012

Класс ActiveDirectoryMembershipProvider наследует MembershipProvider.

Это означает, что вам не нужно привязывать ваше приложение к AD само по себе, а к модели MembershipProvider.Эта модель используется во всех .net и хорошо работает со встроенными элементами управления и классами.

Вот пример

//Any of these will work
ActiveDirectoryMembershipProvider provider = new ActiveDirectoryMembershipProvider();
//SqlMembershipProvider provider = new SqlMembershipProvider();
//MyCustomMemebershipProvider provider = new MyCustomMemebershipProvider();

MembershipProvider membershipProvider = provider;

if (membershipProvider.ValidateUser("username", "password"))
{
    MembershipUser user = membershipProvider.GetUser("username", true);
}
else
{
    //Do something
}

Я не эксперт по этой модели, но у меня был некоторый опытклассификация MembershipProvider и реализация IPrincipal, IIdentity и т. д. Делать это действительно гибко и поддерживать согласованную архитектуру

0 голосов
/ 15 мая 2012

Вы можете использовать диспетчер авторизации (AzMan) для этого, его часть Windows Server.Чтобы интегрировать его с .NET, в Enterprize Library 5 есть типы библиотек классов, которые вы можете использовать.

0 голосов
/ 17 мая 2011

Одна библиотека, о которой я читал, это Rhino Security .Кажется, что он обрабатывает аутентификацию, а также авторизацию для бизнес-операций, и, вероятно, стоит посмотреть.Хотя я на самом деле не реализовал его, поэтому не знаю, насколько хорошо он работает.

0 голосов
/ 17 мая 2011

Две вещи.

Первое:

Если вы хотите взаимодействовать с Справочником, вам нужно программировать поверх API-интерфейсов LDAP.Насколько я понимаю, ADSI работает поверх LDAP, но, похоже, он не настолько независим от Active Directory.Я знаю, что Novell, которая инициирует монопроект , редактирует более независимую библиотеку C # в верхней части LDAP .

Секунда:

Разрешения, я имею в виду список контроля доступа (ACL) - это нестандартная функция.Способ, которым разрешения реализованы в Active Directory, отличается от способа, которым они реализованы в Sun e-Directory (специальные атрибуты).Например, в OpenLDAP разрешения включаются в своего рода фильтр доступа.

Я могу (надеюсь) ошибаться, но я никогда не слышал о библиотеке, которая объединяет разрешения в каталогах.

0 голосов
/ 16 мая 2011

Возможно, вы можете использовать Microsoft-s AzMan-Authorization Manager в качестве оболочки для Active Directory.

Он содержит API для программирования, чтобы запрашивать разрешения

и графический интерфейс (azman.msc), где вы можете определять роли и права на карту и сохранять их в xml-файле.

Может быть настроен для Active Directory.

0 голосов
/ 16 мая 2011

Если AD слишком тяжел для вас, вы можете использовать ADAM, который является легким AD, который вы можете настроить с помощью ADSI Edit, предоставляемого с последним. Вот хороший документ и c вопрос конфигурации на SO.

Более того, вы можете просматривать ADAM с такими же API-интерфейсами .NET ( System.DirectoryServices.AccountManagement ).

0 голосов
/ 16 мая 2011

Вы можете настроить бесплатный сервер LDAP, например, OpenLDAP и используйте DirectoryServices для доступа к нему и любое количество инструментов для администрирования каталога LDAP. Требуется некоторая конфигурация!

Преимущество использования стандартной службы каталогов заключается в большом количестве инструментов администрирования и возможности поддержки любого количества приложений. Недостатки в том, чтобы научиться администрировать и запрашивать каталог. Есть ли какая-то особая причина, по которой вы не хотите использовать AD? Если вы работаете в Windows, я настоятельно рекомендую это сделать по большинству возражений.

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