Serviço da Web REST e chaves de API

Eu tenho um serviço da web que estou oferecendo aos usuários para acessar meu banco de dados de aplicativos e obter algumas informações. Os usuários precisam se registrar para uma chave de API e fornecer isso ao fazer solicitações. Tudo funciona bem, mas como eu verifico se os usuários que se registraram para uma chave estão realmente fazendo a solicitação e não alguém a quem ele pode ter dado a chave?

Eu estive pensando nos últimos dois dias para chegar a uma solução, mas nada até agora.

questionAnswers(2)

yourAnswerToTheQuestion