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 № 1Klasa 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ć.