私は、いくつかの要件を持つ REST サービスに取り組んでいます。
- 安全でなければなりません。
- ユーザーがリクエストを偽造できないようにする必要があります。
私が現在提案している解決策は、次のようなカスタム Authorization ヘッダーを使用することです (これは、Amazon Web サービスが機能するのと同じ方法です)。
Authorization: MYAPI username:signature
私の質問は、署名を形成する方法です。ユーザーがサービスにログインすると、リクエストに署名するために使用できる秘密鍵が与えられます。これにより、他のユーザーが代理でリクエストを送信することはできなくなりますが、リクエストを偽造することはできなくなります。
このサービスを使用するアプリケーションは iPhone アプリケーションなので、アプリケーションに公開鍵を埋め込んで追加の署名を行うことができると考えていましたが、これは 2 つの署名が必要になるということですか?ユーザーキー用とアプリキー用ですか?
どんなアドバイスでも大歓迎です。私はこれを初めて正しくしたいと思っています。