2

spring-security 3.0.2.RELEASE と spring-security-kerberos-core 1.0.0.M2 を使用して、SPNEGO ベースの認証を実装しています。

サーバーに複数の有効な DNS 名があります。1 つはマシン自体 (machine.domain) を参照し、もう 1 つはアプリケーション (app.domain) を参照します。現在、リバース プロキシは設定されていません。

SPNEGO が両方の有効な DNS 名で機能することを確認する必要があります。そのままマシン名をSPNとして設定しています。IE7 を使用してアプリケーションに接続すると、マシン名には接続できますが、アプリケーション名には接続できません (HTTP 401)。

SunJaasKerberosTicketValidator を使用してチケットを検証していますが、一度に構成できる SPN は 1 つだけです。

複数の SPN で動作するようにアプリケーションを構成するにはどうすればよいですか? SPN は、setspn を使用してリストに追加するだけでよいですか? または、複数のチケットバリデーターを設定する必要がありますか?

私の質問は、これと非常によく似ています (未回答): http://forum.spring.io/forum/spring-projects/security/122250-spring-security-3-kerberos-spn

本当にありがとう、

ジェームズ

4

2 に答える 2

1

ちょっとした考え:

SunJaasKerberosTicketValidatorドメインごとに2 つのインスタンスを定義してから、独自のインスタンスを実装KerberosTicketValidatorして、HTTP 要求に基づいて基礎となる JAAS バリデーターに委譲することができます。

以下を使用すると、バリデーターからのリクエストを取得できますRequestContextListener

HttpServletRequest request = (HttpServletRequest) ((ServletWebRequest) 
        RequestContextHolder.currentRequestAttributes()).getNativeRequest();
于 2013-10-29T20:07:32.470 に答える