2

私は動作中の Kerberos SSO セットアップを持っています。mod_jk で apache と jboss を使用しています。Apache は、次の構成で auto-login.htm ページを (kerberos によって) 保護しています。

<Location /auto-login.htm>  
AuthType           Kerberos  
AuthName           "Kerberos Active Directory Login"  
KrbMethodNegotiate on  
KrbMethodK5Passwd  on  
KrbAuthRealms      KRB.SOMEDOMAIN.COM  
KrbServiceName     HTTP/server.somedomain.com@KRB.SOMEDOMAIN.COM  
Krb5Keytab         /etc/krb/krb5.keytab  
KrbVerifyKDC       on  
KrbAuthoritative   on  
require            valid-user  
#ErrorDocument 401  /login.htm  
</Location>

これは 100% 機能し、Kerberos/SSO でログインして、Java アプリケーションで remote_user 変数を読み取ることができます。

問題は、ユーザーが Kerberos/SSO 経由でログインできなかった場合に、保護されていない login.htm にリダイレクトすることです。私が念頭に置いていた解決策は、401 ErrorDocument を設定することでしたが、上記のコードで #ErrorDocument 401 のコメントを外してこれを設定すると、ユーザー資格情報を要求するために 401 を返すことは本質的に Kerberos の一部であるため、常に login.htm にリダイレクトされます。 /SSO 認証プロセス。したがって、結果として、ユーザーは常に login.htm に行き着き、Kerberos/SSO ログイン プロセスを完了することはありません。

任意のヘルプまたは代替ソリューションをいただければ幸いです。

よろしくお願いします
ピエール

4

2 に答える 2

5

Kerberos/SSO 認証プロセスを中断しないようにするには、次を使用します。

ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=/login.htm\"></html>"

これにより、ユーザーがブラウザーのダイアログ ボックスで [キャンセル] をクリックした場合にのみ、リダイレクトが発生します。

于 2010-01-11T12:20:13.097 に答える
0

中間ステップの場合は、認証が成功した場合を除いて、上記のコンテンツをサーブレットなどのHTTPストリームにペグします。

于 2010-02-03T04:11:34.723 に答える