Сначала решите, от чего вы защищаетесь:
- Аутентификация? (Зная, кто запрашивает вашу услугу?)
- Авторизация? (Может ли данное лицо правильно запросить данную услугу или нет?)
Я рекомендую вам предоставить хешированные ключи для вашего сервиса. Таким образом, вы можете управлять ключевым вопросом отдельно от сервисов. Или клиентский ключ и секрет, Amazon делает это.
Клиенту всегда легче, если у вас есть протокол без сохранения состояния. И отправляйте все через параметры, куки тоже мешают клиенту.
Помните, что в ваших интересах сделать так, чтобы потенциальные разработчики могли как можно проще использовать ваш сервис. Супер-безопасный сервис, которым никто не пользуется, скучен.
Вы можете разрешить клиентам выбирать уровень безопасности, предоставляя им выбор конечных точек HTTP или SSL / HTTP для подключения. Выбор клиента - это хорошо.