私は同僚と API の開発について話し合っていましたが、次の提案を見て、API の安全性について疑問に思いました。
シナリオ:
サーバー A で実行されている Web アプリケーションがあり、(他の機能に加えて) 管理者ユーザーが任意の URL を指定できるようにし、各 URL に関連するアカウント内のユーザーのセキュリティを許可します。だから基本的に:
URL:"/foo/bar", UserID:1234, AllowedToView:true
管理者ユーザーは、独自の別のサーバー B で独自の Web アプリケーションを実行しています。また、そのサーバー B アプリケーションにログインしているエンド ユーザーが、そのサーバー B アプリケーションの特定の URL にアクセスできるかどうかをチェックする必要があります。サーバー A の API。
このチェックには、次の 2 つの形式があります。
サーバー B から URL を要求するユーザーのコンテキスト内で発生するサーバー側の HTTP 呼び出し (サーバー B からサーバー A へ) は、次のようになります。
User requests "/foo/bar" with their client from server B During the processing of that request on server B, it makes an HTTP call to server A to check if that user has access to the requested URL With the response from server A, server B can then either allow the user to access or redirect, send 403 access denied, etc.
エンド ユーザーのクライアントからサーバー A に直接送信され、JavaScript で応答を利用する AJAX 要求。ここでは、クロスドメイン スクリプティングの問題が問題になる可能性があります。
すぐに頭に浮かぶ課題の 1 つは、管理者ユーザーが、サーバー B 上の Web アプリにアクセスしているエンド ユーザーを、サーバー上の Web アプリでそのユーザーに関連付けられている UserID に直接関連付ける方法が必要だということです。 A. しかし、それがどういうわけかエレガントに解決されたと仮定しましょう :-D.
私の質問は、このようなシナリオに関連する固有の (内の) セキュリティに関連しています。サーバー A に対して行われている要求 (上記の 1 と 2 の両方) が https で行われている場合、応答の整合性を期待できますか?