Login Restful - implementação apropriada

Novo para serviços RESTful, mas leia muito sobre o assunto. Implementando no VS2010 C #

Perguntas semelhantes (quase idênticas) foram feitas e respondidas aqui no stackoverflow, mas sinceramente não aprendi nada com as respostas.

Eu quero implementar uma chamada AuthenticatUser onde um nome de usuário e senha é enviado e uma chave de autenticação é retornada.

Dado que isso precisa ser feito com um GET, POST, PUT ou DELETE, parece que o GET seria o mais adequado.

Então, talvez GET mydomain / myservice / authenticate / {username} / {password}

Não gosto disso porque o nome de usuário e a senha são passados ​​no URI, mas, pelo que entendi, não é uma boa ideia enviar um corpo em um GET. Portanto, um POST ou PUT funcionaria, mas isso parece divergir da filosofia RESTFul.

Pergunta 1: está certo enviar dados confidenciais, como senha, no URL? O site usará SSL.

Pergunta 2: Nos GETs quando há vários parâmetros sendo passados, parece que o conceito de URI ficaria um pouco louco, como as consultas complexas devem ser tratadas com RESTfully?

Pergunta 3: Qual é o método de autenticação preferido (normal, mais comum) em uma API RESTful?

questionAnswers(1)

yourAnswerToTheQuestion