2014-04-06 16 views
7

Obecnie badam ruchy systemu śledzenia aktywów z LDAP do SAML. Istnieją dwa główne obszary, w których nasze oprogramowanie wykorzystuje obecnie protokół LDAP. Pierwszym z nich jest uwierzytelnianie. Aby uzyskać dostęp do systemu, musisz pomyślnie uwierzytelnić się przy użyciu LDAP i być członkiem określonej grupy LDAP. Ta część jest dość prosta do przejścia na SAML. Wykorzystaliśmy bibliotekę do obsługi większości brudnych prac. I na IDP możemy dodać roszczenie do autoryzacji użytkownika. Ale nasze drugie użycie LDAP rzuca mnie na pętlę.Autoryzacja LDAP a SAML

Dziś każdy z naszych zasobów ma możliwość połączenia z nazwą użytkownika. Na przykład określona drukarka może należeć do "kogoś innego". Jedną z opcji, którą nasze oprogramowanie daje administratorowi, jest przeglądanie/interakcja z zasobami w oparciu o grupy użytkowników LDAP. Jako administrator mogę chcieć zaktualizować wszystkie drukarki, które są własnością osób z danego działu. Aby to osiągnąć, administrator utworzyłby regułę o zasięgu "wydzierżawienie" grupy LDAP. Nasze oprogramowanie używałoby konta usługi do łączenia się z LDAP, tworzenia zapytania, aby zobaczyć, którzy użytkownicy z naszego systemu są w "departmentInQuestion", wykonać to i wykorzystać wyniki, aby określić, które zasoby powinny uzyskać aktualizację.

Tak daleki od moich poszukiwań nie byłem w stanie znaleźć przepływu pracy SAML analogicznego do tego. Wydaje się, że jedyną okazją do oceny "kogoś innego" jest uwierzytelnianie, a my uzyskujemy dostęp do ich roszczeń. Ale w naszym obiegu pracy "ktoś inny" może nigdy nie uwierzytelniać się z nami. To prawie tak, jakbyśmy używali autoryzacji użytkownika w imieniu konta usługi. Czy istnieje istniejący przepływ pracy, który przeoczyłem podczas mojej eksploracji? Czy istnieją inne technologie, które wspierają autoryzację w ten sposób?

Dzięki za wszelkie dane wejściowe!

Odpowiedz

10

SAML jest jak paszport lub wiza. Ma (zaufane) informacje o Tobie, które mogą być używane, aby wiedzieć o Tobie (np. Twoje imię, DOB) i określać, do czego masz dostęp (np. Wejście do danego kraju). Możesz użyć właściwości w tokenie, aby zapytać inne systemy o dodatkowe informacje, z którymi możesz być powiązany (np. Wyciąg z rachunku bankowego).

Analogicznie, SAML jest zwykle używany do uwierzytelniania użytkowników w systemie (gdy ufasz jego pochodzeniu), ale nie ma przepisów dotyczących zarządzania profilami użytkowników lub "zasobami".

Decyzje o autoryzacji, jeśli istnieją, są często podejmowane na podstawie atrybutów powiązanych z użytkownikiem (na przykład do grupy, do której należy) i przesyłanych w oświadczeniach w tokenie zabezpieczającym.

Być może pierwsze pytania, na które należy odpowiedzieć, to dlaczego chcesz odejść od LDAP i myśleć o SAML. Czy to dlatego, że chcesz akceptować użytkowników logujących się przy użyciu własnych poświadczeń? Czy to dlatego, że chcesz całkowicie pozbyć się serwera LDAP?

Możesz doskonale zachować serwer LDAP do zarządzania resources associated with users i uwierzytelniać użytkowników w innym miejscu. Oto, co masz teraz. Użytkownik może skorelować użytkowników "na zewnątrz" i "wewnątrz" za pomocą wspólnego atrybutu (np. Nazwy użytkownika lub identyfikatora).

Jeśli chcesz pozbyć się LDAP razem, potrzebujesz innego miejsca do przechowywania tych informacji (np. Bazy danych aplikacji).

4

Opierając się na odpowiedzi Eugenio Pace „s, aw szczególności następujących ten ustęp:

więc analogicznie, SAML jest zazwyczaj używany do uwierzytelniania użytkowników do systemu (raz ufasz jego pochodzenie), ale nie jesteśmy brak przepisów dotyczących zarządzania profilami użytkowników lub "zasobami".

Decyzje o autoryzacji, jeśli istnieją, są często podejmowane na podstawie atrybutów powiązanych z użytkownikiem (na przykład do grupy, do której należy) i przesyłanych w oświadczeniach w tokenie zabezpieczającym.

Co Eugenio odnosi się tutaj jest ABAC - kontrola dostępu oparta na atrybutach. SAML tego nie robi. Aby osiągnąć ABAC, potrzebujesz XACML. Zarówno SAML, jak i XACML to standardy zdefiniowane przez OASIS i współpracujące ze sobą. Dzięki XACML możesz definiować reguły oparte na atrybutach. Na przykład moglibyśmy ponownie swój przykład i napisać regułę następująco:

  • Użytkownik z roli == administrator może zrobić działania == aktualizacji na zasobu typu == drukarka tylko wtedy, gdy dział użytkownika == dział drukarki.

można przeczytać więcej na XACML na ABAC w tych miejscach referencyjnych:

+1

SAML pozwala także warstwę abstrakcji tak, że tylna magazyn danych koniec mógłby być zmieniane bez przeprowadzania procesu autoryzacji. (zmiana z jednego źródła LDAP na inny lub z użyciem bazy danych) -jim – jwilleke