2011-12-10 11 views
1

私たちは、JAVA WebアプリケーションにCASサーバーを使用しています。次のように 認証システムは、次のとおりです。シングルサインオンパラダイムはHTTPプロトコルルールを遵守していますか?

  • ユーザーがリソースにアクセスしようとする(1)
  • システム上で、ユーザがユーザ名・パスワード
  • を入力リダイレクト(見つかり 302)
  • を取得します
  • サーバはクッキーで応答し、元のページにリダイレクトします(

私は、この相互作用がHを尊重しているという事実について議論していますTTPプロトコル。

私はリソース にアクセスする権限を持っていない場合はすべきではない401権限またはより良い407プロキシ認証が必要とシステムの答え?

許可リソースは、Cookie文字列ではなく、完全なSSLレベルの認証キーですか?

を追加しました:カール-Lを使用して ヘッダーダンプ-D

HTTP/1.1 301 Moved Permanently 
Server: nginx/0.8.54 
Date: Sat, 10 Dec 2011 02:07:55 GMT 
Content-Type: text/html 
Content-Length: 185 
Connection: keep-alive 
Location: https://server.com/service/ 

HTTP/1.1 302 Found 
Server: nginx/0.8.54 
Date: Sat, 10 Dec 2011 02:07:55 GMT 
Transfer-Encoding: chunked 
Connection: keep-alive 
Cache-Control: no-store, max-age=0, must-revalidate 
Expires: Thu, 01-Jan-1970 00:00:00 GMT 
Set-Cookie: JSESSIONID=q7rjikj4spvd1fxaowjl9XXX 
Location: https://server.com/login/ 

HTTP/1.1 200 OK 
Server: nginx/0.8.54 
Date: Sat, 10 Dec 2011 02:07:55 GMT 
Content-Type: text/html; charset=UTF-8 
Connection: keep-alive 
X-Powered-By: PHP/5.3.2 
Content-Length: 6650 
+0

302 Found(ユーザー名パスワードの入力を求めるプロンプト)の後に送信されるページによって、どのHTTPステータスが返されるのか不思議です。 401 Unauthorizedステータスがありますか? (実際にプロキシではないので、407は適切なものではないと思う。)HTTPヘッダー(FirefoxのライブHTTPヘッダーを使用するなど)をキャプチャすることは、 – ziesemer

+0

プロキシ私は、典型的なhttpプロキシサービスの代わりに「別のサービス」として意図されていると思います。私はHTTPヘッダーを追加しました。そして、さらに悪いことに、私は思っていました。 – fabrizioM

答えて

0

あなたは正しいです - あなたの例では、SSOシステムは、HTTPプロトコル自体とは異なるレベルで本当にです。アプリケーションが401を返した場合、ブラウザ自体が認証を処理する可能性が高くなります(たとえば、ユーザーにユーザー名とパスワードの入力を求め、HTTP認証ヘッダーにエンコードされたこのBase-64で次の要求を送信します)。 HTTP基本認証の場合は、ユーザ名が&のパスワードがシステムに送信されます。 KerberosまたはNTLMを使用して認証を行うことができます。その場合、ユーザーが既にネットワークにログインしている場合は、認証が透過的になる可能性があります。つまり、多くのSSOシステムは、ユーザーをログインHTMLフォームにリダイレクトしてから、Cookieを使用してセッション状態を維持するアプローチを採用しています。主な利点の1つは、あなたがより多くの制御を持っていることです&ログインインターフェイスの感じ。セッションクッキーを持つSSOシステムでは、独自の(おそらく独自仕様の)方法で状態を維持する所有権を得ることができます。

関連する問題