Nasza firma ma skonfigurowanych wiele domen z jedną witryną hostowaną w każdej z nich. W tej chwili każda domena ma własne uwierzytelnianie, które odbywa się za pomocą plików cookie.
Gdy ktoś zalogowany w jednej domenie potrzebuje dostępu do czegokolwiek z drugiej, użytkownik musi zalogować się ponownie przy użyciu innych poświadczeń z innej witryny, znajdującej się w drugiej domenie.
Zastanawiałem się nad przejściem do pojedynczego logowania (SSO), aby wyeliminować ten problem. Byłbym wdzięczny za wszelkie pomysły, jak można to osiągnąć, ponieważ nie mam w tym zakresie żadnego doświadczenia.
Dzięki.
Edycja: Strony internetowe są połączeniem witryn internetowych (zewnętrznych) i intranetowych (używanych wewnętrznie w firmie).
authentication
single-sign-on
Pascal
źródło
źródło
Odpowiedzi:
Rozwiązanie SSO, które tutaj zaimplementowałem, działa w następujący sposób:
Uwagi:
źródło
Nie wymyślaj ponownie koła. Dostępnych jest wiele pakietów SSO międzydomenowych typu open source, takich jak JOSSO, OpenSSO, CAS, Shibboleth i inne. Jeśli korzystasz z technologii Microsoft (IIS, AD), możesz zamiast tego użyć Microsoft Federation (ADFS).
źródło
Jak różne są nazwy hostów?
Te hosty mogą udostępniać pliki cookie:
Ale te nie mogą:
W pierwszym przypadku możesz skorzystać z rozwiązania opartego na plikach cookie. Pomyśl o GUID i tabeli sesji bazy danych.
źródło
Jeśli korzystasz z usługi Active Directory, każda aplikacja może używać usługi AD do uwierzytelniania, logowanie może przebiegać bezproblemowo.
W przeciwnym razie, jeśli aplikacje mogą rozmawiać ze sobą za kulisami, możesz użyć sessionids i mieć jedną aplikację obsługującą generowanie identyfikatorów obsługującą wszystkie inne aplikacje.
źródło