Я работаю над сервисом REST, который имеет несколько требований:
- Он должен быть безопасным.
- Пользователи не должны создавать запросы.
Мое текущее предлагаемое решение состоит в том, чтобы создать собственный заголовок авторизации, который выглядит так (это так же, как работают веб-службы amazon):
Authorization: MYAPI username:signature
Мой вопрос заключается в том, как сформировать подпись. Когда пользователь регистрируется в службе, им предоставляется секретный ключ, который они могут использовать для подписи запросов. Это остановит других пользователей, отправляющих запросы от их имени, но не остановит их подделывание запросов.
Приложение, которое будет использовать эту услугу, - это приложение для iPhone, поэтому я думал, что мы можем использовать открытый ключ в приложении, с которым мы можем сделать дополнительную подпись, но означает ли это, что нам нужно будет иметь два подписи, один для ключа пользователя и один для ключа приложения?
Любые советы будут очень признательны, я бы очень хотел, чтобы это было в первый раз.