REST APIにメッセージレベルのセキュリティを実装する必要があり、いくつかの懸念事項と質問があります。私はここで答えを見つけました: RESTWebサービスのメッセージレベルのセキュリティ
部分的にしか役に立ちません。
現在、標準のSSLトランスポートセキュリティと、次のようないくつかの認証方法をサポートしています。
- 基本http認証(APIと通信する一部のネットワーク機器サービスで必要)
- SHA1フレーバーとSHA256フレーバーの両方で事前共有秘密鍵を使用するHMAC。
- TLSレベルで送信されるクライアントID証明書。
- SAML 2.0
メッセージレベルのセキュリティが必要な理由:
- 顧客業界には、とりわけヘルスケア、金融、政府が含まれ、SSLのみに眉をひそめることがよくあります。
- エンドツーエンドのセキュリティを保証する必要があります。リバースプロキシ、SSLアクセラレータなどを介して...
- サービスを介して渡される一部のデータには、非常に機密性の高いデータが含まれます。
- SOAPのWS-*セキュリティ標準は「エンタープライズストレングス」のWebサービスであり、REST APIはそうではないと主張する顧客に対して、適切な回答を得る必要があります。
私の最初の考えは、クライアントアプリケーションがエンベロープ応答の処理方法を理解している場合、オプションとしてPKCS#7エンベロープを使用することです。
クライアントアプリケーションに、セキュリティで保護された応答が必要であることをAPIに通知するか、POSTまたはPUTingしているメッセージがセキュリティで保護されていることをAPIに通知してもらいたいです。
私の本当の質問は、これはメディアタイプを介して伝達されるべきかということです。例えば:
- コンテンツタイプ:application / vnd.resourcetype1 + json + pkcs7
- コンテンツタイプ:txt / csv + pkcs7
エンベロープされているメディアタイプに関する情報を失いたくありません。
場合によっては署名で十分なので、複雑になります。その他にも暗号化が必要です。「pkcs7」という用語は、エンベロープの作成方法に関してあいまいです。
クライアントとサーバーが、送信しているコンテンツの種類と、標準のHTTPヘッダーを介して理解しているコンテンツの種類を相互に伝えてほしい。