12

クライアントをある Web サイトから別の Web サイトに転送する必要があります。これはクライアント側で発生します。この 2 番目の Web サイトでは、Windows の基本認証システムを使用しています。したがって、ログインウィンドウがポップアップします。このポップアップ ウィンドウを省略し、javascript を使用して 2 番目の Web サイトでクライアントを認証してから、2 番目の Web サイトにリダイレクトする必要があります。このシステム全体がイントラネットで実行されているため、javascript ファイルに認証情報を入力してもセキュリティ上の問題はありません。では、2番目のWebサイトでクライアントを認証する方法は?

このスレッドを見つけました How can I pass windows authentication to webservice using jQuery?

しかし、うまくいきません。2番目のURLのリクエストヘッダーを見ると、Authorizationタグが含まれていません。

4

3 に答える 3

16

基本認証であり、資格情報を公開しても構わないのであれば、単にユーザー名とパスワードを URL に挿入してみませんか? 例えば:

http://username:password@www.domain.com

しかし、Web サーバーを制御できる場合は、イントラネット接続の認証を無効にする必要があります。

于 2011-08-21T12:00:23.620 に答える
4

Windows ベースのイントラネットの場合は、Javascript に煩わされることはありませんが、このスレッドで説明されているように、デフォルトの NTLM 認証を使用します。そうすれば、ネットワークのユーザーの通常のユーザー名とパスワードを使用して、任意の数のサイトにシングル サインオンを提供できます。他のスレッドからの私の答えを引用するには:

実際にはNTLM認証で可能です。Internet Explorer を使用してユーザーを認証するAuthenNTLM プラグインが必要です。構文の例は次のとおりです。

<Location />
    PerlAuthenHandler Apache::AuthenNTLM 
    AuthType ntlm,basic
    AuthName test
    require valid-user

    #                    domain             pdc                bdc
    PerlAddVar ntdomain "name_domain1   name_of_pdc1"
    PerlAddVar ntdomain "other_domain   pdc_for_domain    bdc_for_domain"

    PerlSetVar defaultdomain wingr1
    PerlSetVar ntlmdebug 1
</Location>
## taken from the documentation

セットアップに関するその他のオプションと具体的な手順については、モジュールのドキュメントを参照してください。上記は正しい方向で開始できるはずです。

クライアント側では、Internet Explorer と Firefox は、いくつかの構成後に自動的にログインできるはずです (Firefox には少し特別な注意が必要です。これは、展開時に構成変数を設定することで実現できます)。

于 2011-08-27T16:43:11.743 に答える
2

これが Windows 認証の場合、応答はクライアントに資格情報を要求しません。ブラウザーは既に資格情報自体を渡そうとしています。HTTP のようには機能しません。実際には、Windows 資格情報に基づいて承認を送信するようにブラウザー自体を構成する必要があります。

これに対する単純な JS ソリューションはまったくないようです。

于 2011-08-27T04:46:24.167 に答える