私は、エンドツーエンドのセキュリティが重要であるヘルスケアセクターの統合に取り組んでいます。多数のSOAP=サービスと統合し、WS-セキュリティ機能を使用してリクエストとレスポンスを暗号化して署名します。
リクエストとレスポンスは、統合シナリオのいくつかの中間層を通過します。したがって、データ自体が暗号化されていることが重要です(メッセージセキュリティ)。 HTTPS(トランスポートセキュリティ)を使用すると、SSLが終了するまでメッセージが保護されます。
また、RESTスタイルのサービスと統合します。 AFAIK、RESTペイロードを保護するための(WS-securityのような)標準的なアプローチはありません。
RESTペイロードを署名および暗号化するための新しい標準はありますか?
[〜#〜]編集[〜#〜]
RESTfulスタックを介したIDの伝播について質問していると思います。つまり、ダウンストリームシステムがユーザーごとに承認を検証できるように、要求を元のユーザーに関連付ける必要があります。私も最近この問題を調査しています。
根本的には、いいえ、RESTサービスのID伝播には標準が定義されていません。REST自体は標準ではなく、アーキテクチャパターンです。
Kerberos( JAX-RS など)または HTTPバインディング経由のSAML などの既存の標準との統合を提供するライブラリがいくつかあります。
JSON Web Token(JWT)を使用したさまざまなアプローチが一般的になりつつありますが、これは「独自のロール」アプローチに近いものであり、柔軟性を提供しますが、実装リスクは犠牲になります。これはやや最先端のエッジです。 JWTのRFCは、2015年4月にのみ承認されました。
JWTは主に認証用ですが、トークンをカスタマイズしてロールを含め、承認に使用することもできます。
Httpメッセージの署名と暗号化については、JSON Web Signature(JWS)とJSON Web Encryption(JWE)をご覧ください。これらはどちらもJSON Object Signing and Encryption(JOSE)フレームワークの一部であるRFCです。
エンドツーエンドのセキュリティが重要な要素である場合、採用するための最良のアプローチはその間の何も信頼しないことです。その場合、セキュリティで保護されている場合とそうでない場合があるため、どのプロトコルまたはAPIがその間に使用されているかは関係ありません。 IMOこれは公正な仮定です。複数の中間層を持つ合理的に複雑なシステムでは、通信チャネルが適切に保護されている保証はありません。または、不必要にデータを必要以上に長くキャッシュしないため、機密データが開示される可能性のあるウィンドウが開きます。
提案: