Usługa uwierzytelniania użytkownika RESTful
Hej, ludzie, to wydaje się być dość często dyskutowane, ale chcę zrobić proste, rozwodnione pytanie dotyczące uwierzytelniania za pomocą usług RESTful. Scenariusz jest następujący:
Istnieje system, w którym znajdują się zarejestrowani użytkownicy aplikacji. System udostępnia RESTful API do uzyskiwania dostępu do tych użytkowników.Istnieje aplikacja typu front-end, która ma formularz logowania. Aplikacja może być wewnętrzna lub zewnętrzna.Aplikacja frontonu musi użyć danych w systemie użytkownika do uwierzytelnienia użytkownika.Pytanie brzmi teraz, jak uwierzytelnić użytkownika, którego dane uwierzytelniające (nazwa użytkownika / hasło) są wprowadzane w aplikacji klienckiej w stosunku do danych w systemie użytkownika, tak aby były bezpieczne i wydajne? Ze względu na to pytanie załóżmy, że aplikacja kliencka jest wewnętrzna dla jakiegoś rodzaju intranetu, ale aplikacje nie będą znajdować się na tym samym komputerze i mogą komunikować się tylko za pośrednictwem usługi.
Rozumiem pomysł, aby aplikacja była „napędzana hipermedia”, ale powinniśmy być w stanie zapewnić usługi filtrowania / wyszukiwania. Na przykład rozważ zasoby i interfejs API, jak poniżej:
http://example.com/usersGET - pobiera wszystkich użytkowników (stronicowanych, napędzanych hipermedia)POST - tworzy nowego użytkownikaPUT / DELETE nie jest obsługiwanehttp://example.com/users/[id]GET - zwraca pełną reprezentację użytkownika o id = {id}PUT - aktualizuje użytkownika, pobiera dowolny predefiniowany typ nośnikaDELETE - usuwa użytkownika (z odpowiednią autoryzacją)POST nie jest obsługiwanyNa podstawie powyższego moim pomysłem byłoby, aby aplikacja kliencka GET znalazła się na liście użytkowników, filtrując według nazwy użytkownika. Usługa zwróci hashed hasło i sól klientowi, klient dokona uwierzytelnienia.
Myśli?