4

シナリオは次のとおりです。

  • 異なる環境 (つまり、異なるデータベース、異なる Web サーバー/ドメイン) に存在する 2 つの別個の Web サイトがあります。
  • 両方のサイトのコードを完全に制御できますが、上記の点から、お互いのデータベースと直接通信することはできません
  • ユーザーをサイト A からサイト B に安全に転送する必要があります

これを実装する最良の方法は何ですか? クエリ文字列を介してサイト間でユーザー識別子を送信するだけでは、暗号化されていても安全ではありません。他の誰かが URL を取得できるからです。標準的な解決策は、Web サイト A が作成し、Web サイト B が知っている別の一時キーと共にユーザー ID を渡すことのようです。この場合、一時キーを使用してシステムを安全にセットアップする適切な方法は何ですか?

ありがとう!

4

4 に答える 4

2

私はこのようなことをしています。今考えられる最善の方法は、ユーザー ID の HASH を渡すことです。それが心配な場合は、他のユーザー データのハッシュを渡すことです。

一時キーが必要な場合 (私もこのようなことをするかもしれません)、一時キーに基づいてユーザー ID を取得するために B が呼び出すことができる Web サービスを A にセットアップするのはどうでしょうか。このように、完全に別の呼び出しであり、保護することができます。

于 2009-12-08T17:12:39.390 に答える
2

「パススルー認証」を見てみましょう。これは、ユーザーの ID をあるシステムから別のシステムに渡すことを可能にする概念です。

さらに、試してみたい別のアイデアは、ユーザーの情報を公開せずに渡す安全なトークンを作成することです。ただし、これには、トークンを検証するために、両方のシステムが同様のデータを持っている必要があります。他の回答が示唆しているように、ハッシュは、機密情報に関する説明のないビットを作成するための非常に優れた用途です。

于 2009-12-08T17:13:10.357 に答える
1

ユーザーの詳細を取得するために、両端で HTTPS を介した Web サービス呼び出しを作成します。これは、特定のログイン ペアに対してのみ機能します。問題が解決しました。両端のログイン ID を統一する、シングル サインオン Cookie を使用する必要があります。詳細については、Vipin Samar による論文「Single Sign on Cookies for Web Applications」を参照してください。

いずれかのサーバーでアプリケーション コードにアクセスしない限り、URL/パスワードを取得できません。

于 2009-12-08T17:50:36.410 に答える
0

サイト A とサイト B の間で情報を渡す必要がありますが、ユーザーをその情報のパイプにする必要はありません。

サイト B は、サイト A がユーザーのセッションを作成できるようにする Web サービスを持つことができます。この設計では、相互作用は次のようになります。

  • ユーザーがサイト A のボタンをクリックする
  • サイト A がサイト B の Web サービスを呼び出し、一時的なログイン URL がサイト A に返されます
  • サイト A がユーザーをサイト B の一時 URL にリダイレクトする
于 2009-12-08T17:36:14.353 に答える