/ / Czy istnieje biblioteka C #, która zachowuje się jak uprawnienia i grupy usługi Active Directory? - c #, uprawnienia, active-directory, autoryzacja, grupy użytkowników

Czy istnieje biblioteka C #, która zachowuje się jak uprawnienia i grupy usługi Active Directory? - c #, uprawnienia, aktywny katalog, autoryzacja, grupy użytkowników

Podoba mi się sposób, w jaki działają uprawnienia i grupy w usłudze Active Directory, ale nie chcę w rzeczywistości wiązać mojej aplikacji z usługą AD.

Czy istnieje tam biblioteka?zawiera ten sam rodzaj funkcjonalności, co AD? W szczególności możliwość tworzenia grup, przypisywania użytkowników do grup, dodawania uprawnień do grup i przeglądania uprawnień zastosowanych przez użytkownika lub grupę?

Odpowiedzi:

1 dla odpowiedzi № 1

Klasa ActiveDirectoryMembershipProvider dziedziczy MembershipProvider.

Oznacza to, że nie musisz wiązać swojej aplikacji z AD per se, ale z modelem MembershipProvider. Model ten jest używany w całej sieci .NET i działa dobrze z wbudowanymi kontrolkami i klasami.

Oto próbka

//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
}

Nie jestem ekspertem od tego modelu, ale miałemDoświadczenie w podklasyfikowaniu MembershipProvider i implementacji IPrincipal, IIdentity itp. Jest to naprawdę elastyczne i zapewnia spójną architekturę


0 dla odpowiedzi nr 2

Możesz skonfigurować darmowy serwer LDAP, np. OpenLDAP, I użyć DirectoryServices aby uzyskać do niego dostęp i dowolną liczbę przybory do administrowania katalogiem LDAP. Wymagana konfiguracja!

Zaleta korzystania ze standardowego kataloguusługa to bogactwo narzędzi administracyjnych oraz możliwość obsługi dowolnej liczby aplikacji. Wadą jest nauka administrowania katalogiem i wysyłania zapytań do niego. Czy jest jakiś szczególny powód, dla którego nie chcesz używać usługi AD? Jeśli pracujesz w systemie Windows, zdecydowanie zalecam to w przypadku większości zastrzeżeń.


0 dla odpowiedzi № 3

Jeśli AD jest dla ciebie za ciężkie, możesz użyć ADAM, który jest lekkim AD, który możesz skonfigurować za pomocą ADSI Edit dostarczonego z tym drugim. Tutaj jest dobry doktorze pod warunkiem, oraz cpytanie konfiguracyjne Na tak.

Ponadto możesz przeglądać ADAM za pomocą tego samego rodzaju interfejsów API .NET (System.DirectoryServices.AccountManagement na przykład).


0 dla odpowiedzi nr 4

Możesz być w stanie użyć Menedżer autoryzacji AzMan firmy Microsoft jako opakowanie dla Active Directory.

Zawiera interfejs API do programowania, aby poprosić o uprawnienia

oraz GUI (azman.msc), w którym można definiować role i mapować prawa oraz przechowywać je w pliku xml.

Można go skonfigurować względem usługi Active Directory.


0 dla odpowiedzi № 5

Dwie rzeczy.

Pierwszy :

Jeśli chcesz wejść w interakcję z posiadanym katalogiemprogramować w górnej części interfejsów API LDAP. O ile rozumiem, ADSI działa na szczycie LDAP, ale nie wydaje się, aby był tak niezależny od Active Directory. Znam tego Novella, który zainicjował projekt mono edytuj więcej niezależna biblioteka C # na szczycie LDAP.

Druga :

Uprawnienia, mam na myśli listę kontroli dostępu (ACL)to funkcja niestandardowa. Sposób, w jaki uprawnienia są wdrażane w usłudze Active Directory, różni się od sposobu są zaimplementowane w Sun e-Directory (atrybuty specjalne). Na przykład w OpenLDAP uprawnienia są wbudowane w pewnego rodzaju filtr dostępu.

Mogę (mam nadzieję) się mylić, ale nigdy nie słyszałem o bibliotece, która łączy uprawnienia w katalogach.


0 dla odpowiedzi № 6

Jedna biblioteka, o której czytałem, to Rhino Security. Wydaje się, że obsługuje zarówno uwierzytelnianie, jak i autoryzację operacji biznesowych i prawdopodobnie warto się temu przyjrzeć. Nie zaimplementowałem go jednak, więc nie wiem, jak dobrze to działa.


0 dla odpowiedzi № 7

Możesz użyć do tego Menedżera autoryzacji (AzMan), jego części systemu Windows Server. Aby zintegrować się z nim z .NET, Enterprize Library 5 ma typy bibliotek klas, z których możesz korzystać.