開発中のイントラネット アプリケーションに SSO を実装しようとしています。これにはSPNEGOを使用しています。現在、SSO の構成で問題が発生しています。誰かが助けてくれることを願っています。
セットアップは次のようになります。
- イントラネット アプリケーションを提供する tomcat を備えた Linux サーバー
- ドメイン コントローラとしての Windows Server 2008 (Active Directory)
- IE9 および Firefox を使用する Windows 7 クライアント
イントラネット アプリケーションを開くと、クライアントから tomcat サーバーへの GET 要求が表示されます。Tomcat サーバーと SpnegoFilter の最初の応答は 401 無許可です。これは正しく、クライアントを認証する必要があるためです。
806 6.117724 192.168.65.50 192.168.65.50 HTTP 284 HTTP/1.1 401 Unauthorized
WWW-Authenticate: Negotiate\r\n
クライアントの応答は、フラグ NTLMSSP_NEGOTIATE を含む GET 要求です。ここで壊れます。NTLM 応答は期待していませんが、kerberos/spnego 応答を期待しています。どういうわけか、Tomcat サーバーに正しい応答を送信する方法がわかりません。
808 6.123277 192.168.65.50 192.168.65.50 HTTP 637 GET / HTTP/1.1 , NTLMSSP_NEGOTIATE
デフォルトでは NTLM は SPNEGO でサポートされていないため、ログに次のエントリが記録されます。
java.lang.UnsupportedOperationException: NTLM が指定されました。Basic 認証 (および/または SSL) にダウングレードされましたが、ダウングレードはサポートされていません。
だから私は何か間違ったことをしていますが、構成とポリシーをいじって一日を過ごした後、それが何であるかを理解できません。
何らかの反応を期待します。