web-dev-qa-db-ja.com

Apache2、Kerberos:gss_accept_sec_context()が失敗しました:サポートされていないメカニズムが要求されました

Linuxでmod_auth_kerbを使用してKerberosとApache2を使用したいと思います。

次のようにして、プロジェクトに.htaccessを追加しました。

#SSLRequireSSL
AuthType Kerberos
AuthName "Kerberos Login"
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbAuthRealms DOMAIN.COM
Krb5KeyTab /etc/httpd/httpd.keytab
KrbLocalUserMapping On
require valid-user

IEまたはFirefoxでシングルサインオンをテストしようとすると、Apacheログに次のエラーが表示されます。

[Thu Jan 19 21:03:27 2012] [error] [client 10.65.0.1] gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error)

私はそれが何であるか、そしてそれを機能させるために何をすべきかわかりません。

私の目的は、REMOTE_USERにADユーザー名を入力させることです。しかし、今はこのエラーのために何もできません...

1
petRUShka

校長に問題がありました。 /etc/httpd/httpd.keytabを再作成し、HTTPプリンシパルを正しく追加しましたが、すべて正常に機能します。

1
petRUShka

このエラーの別の理由を発見しました:
WindowsはNTLMで認証を試みます。実際、それが問題の根本です。

キータブの再作成がどのように役立ったかわかりません。エラーは「キーテーブルエントリが見つかりません」の行に沿ったものになります。
Windowsは、KDCからチケットを取得できない場合、NTLMを介して認証を試みます。
私にとって、その理由は、私のサーバーが同じレルム内に配置されていなかったためです。ドメインはad.domain.comでしたが、私のサーバーはsomething.domain.comにありました。どういうわけかこれも許可できると確信していますが、簡単な修正は、サーバーを指すホスト名を変更することです(そして、そのドメインの新しいキータブを作成します)。

1
andsens

Mod_auth_gssapiとFreeIPAをkrb5サーバーとして使用し、キータブを生成する簡単なセットアップで、AuthTypeコマンドの横に次を追加すると問題が解決することがわかりました。

BrowserMatch Windows gssapi-no-negotiate

Andsensからの回答に基づくと、これはNTLMを使用しようとするWindowsクライアントで実際に発生しているようです。 GssapiAllowedMech krb5およびGssapiBasicAuthMech krb5ネゴシエーションに成功した結果を与えないので、唯一の解決策はネゴシエーションを無効にすることであるように思われます。これが正確であることを保証することはできませんが、私にとってはうまくいきました。

対応するドキュメントは ここ

0
user457106