Serviço de autenticação de usuário RESTful

Ei pessoal, isso parece ter sido discutido com bastante frequência, mas eu quero fazer uma pergunta simples e enxuta em torno de fazer autenticação com serviços RESTful. O cenário é o seguinte:

Existe um sistema que hospeda usuários registrados para um aplicativo. O sistema expõe uma API RESTful para acessar esses usuários.Existe um aplicativo front-end que possui um formulário de login. O aplicativo pode ser interno ou externo.O aplicativo front-end precisa usar os dados no sistema do usuário para autenticar um usuário.

A questão agora é como autenticar um usuário cujas credenciais (nome de usuário / senha) são inseridas no aplicativo cliente em relação aos dados no sistema do usuário, de modo que ele seja seguro e de alto desempenho? Para fins dessa pergunta, suponha que o aplicativo cliente seja interno a algum tipo de intranet, mas os aplicativos não residirão na mesma máquina e só poderão se comunicar por meio do serviço.

Eu entendo a idéia de ter o aplicativo sendo "dirigido por hipermídia", mas devemos ser capazes de fornecer serviços de filtragem / pesquisa. Por exemplo, considere os recursos e a API conforme abaixo:

http://example.com/usersGET - recupera todos os usuários (paginados, dirigidos por hipermídia)POST - cria novo usuárioPUT / DELETE não suportadohttp://example.com/users/[id]GET - retorna uma representação completa de um usuário com id = {id}PUT - atualiza o usuário, aceita qualquer tipo de mídia predefinidoDELETE - exclui o usuário (com autorização apropriada)POST não suportado

Com base no acima, minha ideia seria ter o aplicativo cliente GET na listagem do usuário, filtrando por nome de usuário. O serviço retornará a senha com hash e sal para o cliente, o cliente executará a autenticação.

Pensamentos?

questionAnswers(5)

yourAnswerToTheQuestion