2

現在、IIS/6.0 データ サーバーで認証しようとしています。以下のコードで、サーバーからチャレンジを取得するにはどうすればよいですか。現在私がやっていることは、最初のGETリクエストをサーバーに送信することです

//Part 1: The Request
    pw.println("GET /dashboard/ HTTP/1.1");
    pw.println("Host: MyServer.net");
    pw.println("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");
    pw.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    pw.println("Accept-Language: en-US,en;q=0.5");
    pw.println("Accept-Encoding: gzip, deflate");
    pw.println("Connection: keep-alive");
    pw.println("WWW-Authenticate: Negotiate");
    pw.println();
    pw.flush();

//Part 1: The Response
    HTTP/1.1 401 Unauthorized
    Content-Length: 1656
    Content-Type: text/html
    Server: Microsoft-IIS/6.0
    WWW-Authenticate: Negotiate
    WWW-Authenticate: NTLM
    X-Powered-By: ASP.NET
    Date: Mon, 14 Sep 2015 19:28:16 GMT

次に、次のリクエストを送信します

//Part 2: The Request
    pw.println("GET /dashboard/ HTTP/1.1");
    pw.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    pw.println("Referer: http://MyServer.net/dashboard/");
    pw.println("Accept-Language: en-US,en;q=0.5");
    pw.println("User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");
    pw.println("Accept-Encoding: gzip, deflate");
    pw.println("Host: MyServer.net");
    pw.println("Connection: keep-alive");
    pw.println("Authorization: Negotiate");
    pw.println();
    pw.flush();

//Part 2: The Response
    HTTP/1.1 401 Unauthorized
    Content-Length: 1539
    Content-Type: text/html
    Server: Microsoft-IIS/6.0
    WWW-Authenticate: Negotiate YF0GBisGAQUFAqBTMFGgMDAuBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKoZIhvcSAQICAwYKKwYBBAGCNwICCqMdMBugGRsXcGFlbXMxOTYkQFNUQVJCVUNLUy5ORVQ=
    X-Powered-By: ASP.NET
    Date: Mon, 14 Sep 2015 19:28:16 GMT

私がここで行ったと思う間違ったことが 2 つあります。

  1. 「パート 2: 応答」のWWW-Authenticateヘッダー フィールドが間違っているようです。NTLM を使用していないためだと思います (これを使用したいのです)。
  2. My Active Directory 資格情報をまだ送信していません。次に何をする必要があるのか​​わからない。

現在、Active Directory 資格情報をエンコードする方法を説明する、非常に役立つドキュメントResponding to the Challengeを見つけました。

サーバーからデータをポーリングできるようにサーバーで完全に認証するには、どのような手順を実行する必要がありますか?

4

0 に答える 0