2

Kerberos 認証を実行する単純なアプリケーションを作成しようとしています (現時点では相互認証はありません)。

オペレーティング システムは Windows Server 2003、標準版です。Active Directory をセットアップし、setspn ツールを使用して SPN を作成しました。

AcquireCredentialsHandle は、クライアントとサーバーの両方で SEC_E_OK を返します。

クライアント側の InitializeSecurityContext は SEC_E_OK を返します。

サーバー側の AcceptSecurityContext は SEC_E_LOGON_DENIED を返します。

次のMSDN記事のサンプル アプリケーションを使用した場合と同じ動作が見られるため、コードに問題はないと確信しています。

したがって、私の設定に何か問題があると思います。しかし、私は何を見つけることができません。SPN セットアップで何かを見逃したのでしょうか。どんな助けでも大歓迎です。

よろしく、デビッド。

4

1 に答える 1

4

はい、問題は次のとおりでした。

たとえば、コンピュータ名が COMP、ドメイン NetBios 名が DOMAIN、登録する SPN が MyService/COMP であるとします。

「setspn -A MyService/COMP COMP」コマンドでSYSTEMアカウントのSPNを登録!また、別のアカウント (管理者など) に属するプロセスがその SPN のサーバーとして機能したい場合、当然のことながら失敗します。

サーバーを SYSTEM として実行するか (方法については Google を参照)、次のコマンドを使用して管理者 (またはその他の) アカウントの SPN を登録することもできます: setspn -A MyService/COMP DOMAIN\Administrator

于 2010-06-20T13:40:40.147 に答える