2017-01-16 56 views
0

私はこのシステムをWindows ADと統合するためにこのguideに従います。したがって、誰かがWindowsドメインユーザーをログオンすると、彼は自動的にcasにログインできます。ユーザーがドメインユーザーを使用しない場合、システムの通常のHTMLログインページを返すようにします。SPNEGO Kerberos認証が失敗した場合のChromeの表示ERR_UNEXPECTED

私はドメインユーザーを使用すると問題なく動作します。しかし、私は非ドメインユーザーを使用すると、クロムは私にERR_UNEXPECTEDエラーページを返します。あなたはtcpのダンプを見ることができます、システムはすでに401とログインページのHTMLを返しますが、クロムはエラーを表示します。

誰でも私にいくつかのsugguestionsを与えることができますか?

JVM:1.8.0_111

CASサーバーコア:3.3

CAS-サーバ支持SPNEGO:3.3

クローム:Wiresharkの55

TCPダンプストリーム(非ドメインユーザー)

GET /cas/login?service=http%3A%2F%2Fserver.ictsm.com%3A8080%2Fapp%2F&_validateRequest_=7RBrB6AIqjijhw5c4LjTBvc1vjpHJHWafif1MXGmMr8ZyI22thbzCtqTYkCUfKOn HTTP/1.1 
Host: server.ictsm.com:8080 
Connection: keep-alive 
Cache-Control: max-age=0 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
DNT: 1 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: zh-CN,zh;q=0.8 
Cookie: JSESSIONID=3A632B243F57094E9468F972D2BE2E04A48835CCEE575DC9F8B2527FA81E23AD6D48BBF69A6D35623080096949F1FB8092F4 

HTTP/1.1 401 Unauthorized 
Server: nginx 
Date: Mon, 16 Jan 2017 07:19:00 GMT 
Content-Type: text/html;charset=UTF-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Cache-Control: no-cache 
WWW-Authenticate: NTLM 
WWW-Authenticate: Negotiate 
Content-Language: zh-CN 

my login page html 

GET /cas/login?service=http%3A%2F%2Fserver.ictsm.com%3A8080%2Fapp%2F&_validateRequest_=7RBrB6AIqjijhw5c4LjTBvc1vjpHJHWafif1MXGmMr8ZyI22thbzCtqTYkCUfKOn HTTP/1.1 
Host: server.ictsm.com:8080 
Connection: keep-alive 
Cache-Control: max-age=0 
Authorization: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw== 
Upgrade-Insecure-Requests: 1 
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
DNT: 1 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: zh-CN,zh;q=0.8 
Cookie: JSESSIONID=3A632B243F57094E9468F972D2BE2E04A48835CCEE575DC9F8B2527FA81E23AD6D48BBF69A6D35623080096949F1FB8092F4 

HTTP/1.1 401 Unauthorized 
Server: nginx 
Date: Mon, 16 Jan 2017 07:19:00 GMT 
Content-Type: text/html;charset=UTF-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Cache-Control: no-cache 
WWW-Authenticate: Negotiate TlRMTVNTUAACAAAAEgASADAAAAAFAoEAAAAAAAAAAAAAAAAAAAAAADoAOgBCAAAAaQBjAHQAcwBtAC4AYwBvAG0AAgASAGkAYwB0AHMAbQAuAGMAbwBtAAEAHABKAEMASQBGAFMAMQAzAF8AMQA3ADQAXwA2AEMAAAAAAA== 
Content-Language: zh-CN 

my login page html 
+0

ここでは、クライアント・システムに関するより多くの情報が必要:あなたのADドメインのユーザーが使用して来ていますADドメインに参加しているワークステーション、およびドメインに参加していないワークステーション(ラップトップなど)を使用してドメインに参加していないユーザーVPNはここでプレーしているのですか、または同じ内部ネットワーク上の全員ですか? –

+0

はい、domain-userが正しいADドメインに参加しました。ドメイン以外のユーザーが別のADドメインに参加しました。ネットワークにVPNがありません。クロムがドメインが一致しないことが判明したとき、クロムのような問題が発生しました。エラーを返すだけです。 WWW-Authenticate:httpヘッダーにAnonymousを追加しようとしましたが、動作しません。 – zhufeizzz

答えて

0

WWW-Authenticate: NTLMを取り除くHTTPヘッダーのWWW-Authenticate: Negotiate NTLMは、何年も前にKerberosに賛成してMicrosoftによって非難されています。実際、誰もNTLMをもう使用するべきではなく、あなたのクライアントのどれかが疑わしいのです。

認証:ネットワークトレースでこの行は、クロームクライアントがNTLM使用していたことを意味交渉を TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw ==

+0

サーバーの応答ヘッダーから「WWW-Authenticate:NTLM」を削除しました。非ドメインユーザーを使用すると、Chromeは基本的な認証ダイアログボックスを表示します.Botttonのキャンセルをクリックすると、ログインページにジャンプします。なぜなのかご存知ですか? – zhufeizzz

+0

これは、Kerberos SSOネゴシエーションが失敗したときにドメイン以外のWebブラウザクライアントが行う典型的な動作です.BPAのダイアログボックスがポップアップします。あなたのオリジナルの質問は、クロムを中心にERR_UNEXPECTEDエラーページが返され、技術的に解決しました。この新しい状況に対処するために、私は新しい提案で自分の答えを編集することができますが、実際にはこれは拡張された議論になり始めており、本当に答える人にとって公正ではありません。 –

関連する問題