Główną różnicą między nimi jest scenariusz rozmieszczania:
- Shibboleth SP wtyczki są stosowane bezpośrednio do/IIS serwer WWW Apache.
- Wiosna SAML jest osadzona w aplikacji.
Oba mają zalety i wady.
- Czy to dobry pomysł, aby użyć bezpośrednio Wiosna SAML jako SP w zakresie skalowalności i konserwacji?
Wiosna SAML
- Propozycje wielką kontrolę nad sposobem uwierzytelniania jest wykonywane i jak proces uwierzytelniania współdziała z aplikacją. Możesz np. tworzyć własne interfejsy konfiguracyjne i dynamicznie dodawać IDP, tworzyć niestandardowe ekrany logowania jako część aplikacji, mieć pełną i łatwą kontrolę nad obsługą błędów, z łatwością obsługiwać wiele IDP, dynamicznie konfigurowane szczegóły SSO (wymagane AuthnContexts, NameID, powiązania, wymuszanie uwierzytelniania).
- Łatwe analizowanie odebranych atrybutów SAML w różnych formatach, obsługa wielu metod uwierzytelniania w tej samej aplikacji.
- Dynamicznie generuj metadane SP, zapewnia ograniczoną dostępność dla wielu podmiotów i obsługuje profile niedostępne we wszystkich innych opcjach (np. Pojedyncze wylogowanie, właściciel klucza, odnajdywanie IDP).
- Płynnie wchodzi w interakcje z programem Spring Security, który zapewnia zestaw korzyści. W Spring SAML możesz również skonfigurować kompletne zasady uwierzytelniania i autoryzacji bezpośrednio w aplikacji (np. Które strony wymagają uwierzytelnienia lub nie, i kiedy, kontrola dostępu do zasobów oparta na rolach, wzmocnienie uwierzytelniania w warunkach dynamicznych, ...).
- Umożliwia wdrożenie aplikacji na dowolnym serwerze aplikacji lub kontenerze i za odwrotnym proxy lub serwerem WWW bez wpływu na funkcjonalność.
Shibboleth wtyczek
- Są one skonfigurowane statycznie i zazwyczaj interakcję z aplikacją poprzez nagłówków HTTP. Oddzielają one logikę uwierzytelniania od samej aplikacji, więc jedyną rzeczą, którą należy się zająć, jest akceptacja nagłówków i inicjalizacja sesji aplikacji z właściwym kontekstem zabezpieczeń. Definicja, które strony są zabezpieczone, jest obecna na serwerze IIS/serwera Apache i na podstawie wzorców adresów URL, co oznacza, że zasady uwierzytelniania i autoryzacji są częściowo zdefiniowane poza aplikacją.
- Musisz upewnić się, że dostęp do aplikacji jest możliwy tylko za pośrednictwem serwera WWW (= zabronienie dostępu bezpośredniego), ponieważ pozwoliłoby to na fałszowanie nagłówków.
- Nie wymaga wielu zmian w samej aplikacji i dlatego zazwyczaj można z łatwością korzystać z dotychczasowych systemów.
- Możliwe jest użycie zewnętrznego SP wraz z wiosennym Security? Jak mam skonfigurować swoją aplikację i/lub mój serwer aplikacji (JBoss 8.0 - WildFly)?
Tak, jest to możliwe, ale będzie wymagało wysiłku. Możesz np. skonfiguruj WildFly, aby ustawić plik cookie z dzieloną domeną w zaszyfrowanym formacie i zweryfikuj plik cookie w konfiguracji Spring Security.
- Gdzie zdefiniować rolę (dla każdego scenariusza)?
Ze Spring SAML definiujesz role podczas przetwarzania odpowiedzi SAML przez np. parsowanie atrybutów SAML. Odbywa się to poprzez implementację interfejsu SAMLUserDetailsService
i podłączenie do samlAuthenticationProvider
.
Za pomocą Shibboleth można przekazywać atrybuty otrzymane z IDP do aplikacji za pomocą nagłówków i analizować je w aplikacji.
WildFly (prawdopodobnie) pozwala na zdefiniowanie kontekstu zabezpieczeń i ról bezpośrednio w SP bez potrzeby konfigurowania tego w aplikacji. Taka konfiguracja może nie być przenośna na różnych serwerach aplikacji.
- Który jest opłacalne wybór?
Wszystkie opcje umożliwią wykonanie WebSSO z SAML 2.0. Ludzie zazwyczaj wybierają w oparciu o swoje wymagania (np. Potrzeby dostosowywania), środowisko (używany serwer WWW, serwer aplikacji), preferowaną metodologię programowania (Java, .NET, inne), używane struktury, starszy kod. Zarówno Spring SAML, jak i wtyczki Shibboleth są używane przez wielu klientów.
Doskonała, zrównoważona odpowiedź. –