Mam następujący problem:
Dwa oddzielne teamy pracowały nad dwoma aplikacjami(RoR), które mają działać pod tą samą domeną. Aplikacje zostały “sklejone” przy pomocy trzeciej aplikacji, która jest deployowana na produkcję. Jednak to rozwiązanie okazało się chybionym pomysłem do dalszego rozwoju aplikacji. Zastanawiałem się nad rozłączeniem aplikacji i użyciem Apache ProxyPass do przekierowywania rządań do odpowiedniej aplikacji. Mam problem z rozwiązaniem single sign on. Czy może ktoś polecić, jak zaimplementować pojedyncze logowanie?
Myślałem nad RubyCas lub dzieleniem tego samego tokena autentykacji i współdzieleniu cookies oraz nad implementacją drugiej aplikacji jako Engine. Czy macie jakieś doświadczenie w tej kwesti i możecie polecić któreś z rozwiązań?
Maciek Pasternacki elegancko rozwiązał ten problem (i jeszcze kilka innych), klient dla którego to zrobił – GinzaMetrics – zgodził się na opensourcowanie rozwiązania. Nie grzebałem w kodzie ale Maciek zawsze dostarczał, podobno działa jak złoto.
Niezbyt wiem, co mogę powiedzieć, poza tym, że korzystam z tego na co dzień i nie mam zastrzeżeń. Nigdy tego nie implementowałam, korzystam z tego wyłącznie po stronie użytkownika. Tym niemniej z chęcią pomogę na ile mogę i na ile pozwala mi moja skromna wiedza.
Wszystko pięknie dopóki mamy swobodę w wyborze domen.
Co jednak przy różnych domenach?
CAS w takim przypadku brzmi kusząco. Zwłaszcza ze względu na SingleSignOut
Stawiał ktoś kiedyś serwer CASa na Ruby?
RubyCAS zdaje się nie żyć od maja i szukając alternatywy trafiłem na CASino.
Póki co bawiłem się nim lokalnie i robi dobre wrażenie.
SingleSignOut i 2-krokowa autentykacja działają bez problemu. Przynajmniej z rack-cas po stronie aplikacji klienckiej.
W dodatku projekt wydaje się relatywnie świeży i jest szansa że będzie dalej się rozwijał.
Miał ktoś z was może styczność z CASino i użył go publicznie na produkcyjnym serwerze?
Ja kiedyś wykorzystywałem RubyCAS i jakoś to działało, potem dokonali zmian w kliencie tak, że klient przestał działać z niektórymi serwerami CAS (zmienili nazwe zmiennej używanej jako parametry w URLu) i trzeba było korzystać z forka, ale ogólnie to nawet działało. Co do innych gemów to w momencie jak uruchamiałem aplikacja z CASem był jedynie RubyCAS.