2012-03-17 21 views
1

私は、基本的なHTTP認証(つまり、ポップアップしてユーザー名とパスワードを要求する種類)を必要とする別のWebサイト(B)の「フロントエンド」として機能するWebアプリケーション(A) 。javascript、jquery、またはdjangoのHTTP基本認証?

私のWebアプリケーションでは、各ユーザはすでにAのアカウントの一部として保存されているBのユーザ名とパスワードを持っていますが、ユーザがAからBのリソースに初めてアクセスしようとすると、ユーザー名とパスワードを入力します(セッションの残りの部分はもう必要ありません)。ユーザーは決してが(自分のアカウントに既に保存されているので)自分の資格情報を明示的に入力する必要がないようにしたいと思います。

javascript/jqueryやDjangoコードを使用すると、たとえばAにログインしたときなど、舞台裏でこのユーザーを先制認証することは可能ですか?したがって、ユーザー名とパスワードを使用してB内のリソースにリクエストを送信するだけで済みます。

ありがとう、私はこの質問がはっきりしていることを願っています。

+0

AとBは全く異なるドメインにありますか? – jpic

答えて

2

私はあなたがそのURLにまっすぐにこだわることができると信じています。

http://user:[email protected]domain.tld/dir/file.ext

+0

誰でもあなたのパスワードを見るようにしますか? –

+0

@Secator ...基本的なHTTP認証です。 HTTPは平文プロトコルなので、誰でもあなたのパスワードを見ることができます。それは、実際には、あなたのブラウザがそれをやり遂げる方法です。最適には、これはSSLで行う必要がありますが、それは当面の問題ではありません。問題は認証方法でした。これが最も簡単な方法です。 – FrankieTheKneeMan

2

Bのバックエンドを含む共通の認証/セキュリティトークンの共有などのメカニズムを導入しなければ、おそらくこれを行うことはできません。

Bはおそらく異なる起源であるので、Same Origin PolicyあなたはBのバックエンドを変更することができるしている場合は、あなたが作ることができるA.

から提供していますページからBへの要求を行ってからあなたを防ぐことができますユーザーがAにログインしたときに、AのページからJSONP要求(つまり、HTTPヘッダーによる基本認証ではない)が要求されます。

また、さまざまな解決策のインスピレーションについてはhttp://en.wikipedia.org/wiki/Single_sign-onを参照してください。

3

jQueryのAJAX()メソッドは、オプションの "ユーザ名" と "パスワード" でHTTP認証をサポートしています。

jQuery.ajax() manual

サーバが応答を提供する前に、HTTP認証を実行した場合は、ユーザー名とパスワードのペアは、ユーザー名とパスワードのオプションを経由して送信することができます。

B. VB:

それはちょうど私がテストしていないユーザー名とパスワード

とBにいくつかのリソースへの要求を送信するだけの簡単な作業である必要があり、それは確かに試してみる価値があります。おそらくサーバーがクライアントを承認していれば、資格証明を求めるプロンプトを出すべきではないので、試してみる価値があります。

+0

OK、他のウェブサイトへのXHRリクエストは、別の出身である可能性がありますか? http://en.wikipedia.org/wiki/Same_origin_policy –