Pracuję nad wewnętrznym systemem uwierzytelniania dla użytkowników zestawu aplikacji internetowych RESTful. Naszym zamiarem jest, aby użytkownik mógł być zalogowany przez formularz internetowy i mieć odpowiedni dostęp do wszystkich aplikacji RESTful w naszej domenie, które mogą być dystrybuowane w prywatnej chmurze na wielu serwerach. (Rozumiem, że posiadanie pojedynczej sesji uwierzytelnionej nie jest zgodne z czystym podejściem REST, ale jest to wymóg użyteczności.)Jak używać OpenID lub OAuth do wewnętrznego uwierzytelniania wewnętrznego?
Same aplikacje będą napisane w różnych językach programowania, więc podejście neutralne językowo jest wymagany. Zasugerowano mi, że możemy wykorzystać OpenID lub OAuth lub podobną platformę do obsługi uwierzytelniania, ale mam świadomość, że są one przeznaczone dla usług stron trzecich, a nie z własnych usług, które udostępniają dane w naszym wewnętrznym systemie. W takim przypadku możemy mieć centralną usługę dostawcy z wszystkimi innymi aplikacjami traktowanymi jako strony trzecie (lub strony ufające).
Pytania:
- Czy OpenID/OAuth nadaje się do uwierzytelniania między usługami pierwszej partii?
- W takim razie, w jaki sposób należy ustawić uwierzytelnianie dla tego przypadku użycia?
- Czy użytkownik nie musiałby udzielać indywidualnego pozwolenia każdemu serwerowi, z którego chciał korzystać, tak samo jak musiałby udzielić indywidualnego pozwolenia dowolnemu zewnętrznemu serwerowi? Myślę, że naruszyłoby to wymóg posiadania pojedynczego logowania na dostęp do wszystkich usług własnych.
- Czy istnieją dobre przykłady witryn wspierających ten przypadek użycia?
- Jakie byłyby dobre alternatywne ramy dla tego zastosowania?
Dzięki za potwierdzenie. Dobrze jest wiedzieć, że nie brakowało czegoś oczywistego w OAuth lub innych frameworkach zewnętrznych. – Richard