0

オプションの Kerberos ネゴシエーションを実行する方法でMod_auth_kerb ( http://modauthkerb.sourceforge.net/configure.html ) を構成できますか?

  1. ブラウザがネゴシエートするように構成されている場合、Mod_auth_kerb はネゴシエーションを実行し、ユーザーを認証します (そして送信しますREMOTE_USER) 。

  2. ブラウザがネゴシエートするように構成されていない場合、Mod_auth_kerb は認証を実行せず、.xml なしでリクエストを送信しますREMOTE_USER。その後、アプリケーションはリクエストの認証を実行します。Mod_auth_kerb が 401 NEGOTIATE を返さないことが重要です。

4

1 に答える 1

2

私の推測では、あなたが解決しようとしている本当の問題は、Internet Explorer の壊れやすさです。他のすべてのブラウザーでは、次のように Apache 構成でエラーリダイレクトを設定するだけです。

<Location /login-spnego>
        AuthType Kerberos
        require valid-user
        KrbMethodNegotiate on
        KrbMethodK5Passwd off
        Krb5Keytab /etc/httpd/conf/keytab
        ErrorDocument 401 /login-simple
</Location>

ただし、問題のサイトへの kerberos 認証を許可するように構成されておらず、401 ドキュメントを表示しない場合、IE は死のスパイラルに陥ります。私が見つけたこの問題の唯一の回避策は、に基づく mod_rewrite ルールを使用することHTTP_USER_AGENTです。

# IE fails hard if the user does not have a tgt for SPNEGO
# and either attempts NTLM or fails altogether depending on
# exact version. Redirect all IE login attempts to
# form rather than attempt pass-thru SPNEGO login.

RewriteCond   %{HTTP_USER_AGENT}           ^Mozilla.*MSIE
RewriteRule   ^/login-spnego/          /login-simple/   [PT]

これは実際にはあなたの質問に対応していませんが、私が知る限り、mod_auth_kerb のコードを書き直さない限り、あなたが望むことを行う方法はありません。

于 2014-03-23T21:27:19.197 に答える