私は、「顧客」が登録し、実行する特定の検索に対して使用ごとの料金を支払うことを可能にする新しいサービスを設計しています。このサービスは、RESTFul および SOAP インターフェースを使用して公開されます。通常、Web サービスは顧客の Web サイトと統合されてから「パブリック」に公開され、誰でも顧客の Web サイトを使用して、私の Web サービス機能 (顧客は料金を支払いますが、モデレートを完全に制御できます) を利用できます。要求が多すぎないようにします)。
統合を最適化してできるだけシンプルにするサービスを設計したいと考えています。Web サービス API は変更されるため、内部プロキシを作成して Web サービスを一般に公開することは、場合によっては顧客にとって非常に批判的なものになります。したがって、私が見ている問題は、認証、セキュリティ、および統合のバランスをとる Web サービスを作成することです。
理想
- OAuth を使用しない
- 私が既に持っているのと同じ Web サービス API を再公開する内部プロキシの作成を顧客に強制することは避けてください。
- 安全であること (トークンのユーザー名/何でも渡し、ssl)
- お客様の Web サイトに JavaScript ライブラリを埋め込む - これは、統合手順をさらに簡単にするクライアント Javascript ライブラリになります。
- Javascript ライブラリは、一般ユーザーが資格情報を簡単に取得して自分で再利用できないように、十分に安全である必要があります。
- 可能であれば、ハックしすぎないようにしてください。そうすれば、Firefox 87 が出てきて (できるだけ多くの分でリリースされる予定です)、それを混乱させることにした場合でも、Web サービスを再構築する必要はありません。
これを機能させるには、ある種の 3 方向認証プロセスが必要なようです。つまり、特定のクライアント (パブリック)、Web サービス (顧客)、および Web サービスを認証します。
似たようなものを実装した人はいますか?このような状況にどのように取り組みましたか?
また、実行できることとクロスドメイン セキュリティに違反することの間にはバランスがあることも理解しています。そのため、JSONP データを返す別の GET 専用インターフェイスによって Web サービス全体が公開される可能性があります。
/**追記**/
それ以来、私が探していることを実行する Web サービスを発見しました。ただし、実装の詳細を完全に理解しているとは言えません。ですから、誰かが私の考えを詳しく説明してくれるかもしれません。
私が発見した Web サービスは、サービス側で Javascript をホストしているようです。次に、顧客は JavaScript タグに Javascript を含めることで Web サイトをサービス側に統合しますが、そのためのキーを提供します。
どういうわけか、スクリプトを自分の Web サイトに追加しても機能しません。したがって、どこかでトークンを特定の顧客ドメインに登録する必要があり、「client-lib.js」は実際にはサーブレットまたは同様のものであり、入ってくる「パブリック」からのユーザーが実際に発信されたことを何らかの方法で検出できます「顧客」ドメイン。
私の考えは正しいですか?この方法で使用できる http ヘッダーはありますか? それは安全ですか?
乾杯