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ługiwany

Na 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?

questionAnswers(5)

yourAnswerToTheQuestion