2011-06-20 22 views
3

NTLM v1/v2認証にGSSAPIを使用することはできますか。私はWebサーバーを構築しようとしています.Squid/Apacheとよく似ていますが、NTLM/Negotiateプロトコルを使ってIE/FireFoxを使用しているクライアントを認証したいと考えています。私はheimdalライブラリを使ってみましたが、単にgss_accept_sec_contextを動作させることはできません。 「サポートされていないメカニズムが要求されました」と単に失敗します。 gss_accept_sec_contextが試行される前にgss_acquire_credが呼び出されたときに、サービスプリンシパル名、spnegoなどのOIDが正しく発生したことを確認できます。もちろん、認証ヘッダーをデコードしてbase64でクライアントから受け取ったトークンを抽出しました。私はC++を使い、debianでこれを試しています。 私は確かにここの周りの素晴らしいハックの一つは、より多くを知って、希望はいくつかの重要な手がかりを共有します。GSSAPI for NTLM認証

ありがとうございました。

+0

'WWW-Authenticate:Negotiate'ヘッダを送信していますか?クライアントはNTLMではなくKerberos認証を試みます。 –

+0

私は答えがノーだと思います - GSSAPIはケルベロスしかできません。なぜKerberosの代わりにNTLMを使用したいのですか? –

+0

@Edward Thomson GSSAPI *はNTLMを行うことができます。 GSSAPIのGは* generic *の略です。 KerberosとNTLMは、いくつかの*メカニズムのうちの2つです* GSSAPIは連携できます。 –

答えて

1

HeimdalのNTLMライブラリは、クライアント側もサポートしています。ライブラリプリミティブを使用して、タイプ1、タイプ2、タイプ3のメッセージを生成することができます。 しかし、Heimdalの上にGSS-APIを使用することはできますか?私はそのテストを仮定します、あなたもこれを行うことができます。

1

Heimdalライブラリと、GSSで動作するかどうかはわかりませんが、gss ntlm sspは特にgssライブラリであると主張しています。 私はあなたがそれをダウンロードしてビルドする必要があると思いますが、ライブラリを指すように/ etc/gss/mech(DebianとUbuntuでは/ usr/etc/gss/mech)を設定する必要があります。 Therビルドシステムは、サンプルディレクトリのmechファイルに必要なものの例を作成します。

spnegoでこれを実行すると問題が発生することがあります。 Windowsがネゴシエートパッケージで最も優先するメカニズムとしてNTLMを使用する場合、RFC 4178で定義されているSPNEGOトークンではなく、生のNTLMトークンが送信されます。サポートされていないメカニズムを示すgss_accept_sec_contextを過去に取得します。