В настоящее время я занимаюсь разработкой распределенного приложения с использованием веб-сервисов Ruby, Ruby on Rails, Sinatra и pure Rack.
У меня будет мало служб (RESTful, не основанных на SOAP), которые будут взаимодействовать с использованием JSON, и мне понадобится способ защитить и проверить подлинность каждой из этих служб во время связи между ними, поэтому никто не мог притворяться службы и делать запросы к другим службам.
Основная идея заключается в том, чтобы относиться к другим службам как к «пользователям» и иметь возможность проверять их личность и, при необходимости, ограничивать их доступ к данным.
Таким образом, вопрос заключается в том, как сделать это, используя только Ruby, и как эффективно управлять идентификаторами служб и их правами доступа.
Должен ли я создать какую-либо дополнительную службу аутентификации, используемую этими службами?
Должен ли я создавать внутренние гемы для обеспечения некоторого промежуточного ПО соединения ключами / общими секретами?
Может быть, есть другой способ сделать это?