0

簡単な質問があります。Windows Active Directory があります。コマンドでキータブファイルを作成しました:

ktpass /princ host/User1.contoso.com@CONTOSO.COM /mapuser User1 /pass MyPas$w0rd /out machine.keytab /crypto all /ptype KRB5_NT_PRINCIPAL /mapop set

私の理解では、このファイルは暗号化された形式のユーザー名とパスワードで構成されています。このキータブ ファイルで認証しようとすると、ファイルによって提供されるリクエストのみ、またはこれがさらに Windows AD と通信して認証を行います。

私が質問している理由は、タイムアウトが発生しているためです。AD がまったく別の VPC にあるため、AD と接続している場合はその方向に考えています。

4

1 に答える 1

2

ここでいくつかのことが起こっています。人々は通常、HOST ではなく、HTTP や SSH などの実際のサービスに対して認証を行います。HOST は単なるマシンそのものです。

そうは言っても、ここでさらにいくつかのことが起こっています。キータブ内にホスト名が定義されていません-そこにユーザー名があります。 ホスト/この場合、ユーザー名 (この場合は User1.contoso.com) ではなく、DNS ホスト名にマップする必要があります。最も単純な形式では、Kerberos は、ユーザー原則 (あなたのような人々、ユーザー) がネットワーク上のサービスに対して認証できるように設計されています (これは、KDC とキータブの両方でサービス原則として表されます)。より複雑なシナリオではサービス対サービスですが、ここではユーザー対サービスについて話していると思います。この場合、「host/User1.contoso.com」が KDC に存在しないか、DNS に User1.constoso.com という名前のマシンがないため、Kerberos が混乱してタイムアウトになっていると思います。両方。Kerberos SPN をUser1にマップすることは引き続き可能です。、ただし、HOST はネットワーク上のマシンに対応する必要があります。host/User1.contoso.com@CONTOSO.COM の代わりに、User1 を Kerberos が認証する実際のマシン名に置き換えます。たとえば、マシンの名前が Server1 の場合、以下に示すようにキータブを再作成します。また、キータブを作成するときに、サービス プリンシパルに Kerberos レルム名を追加してください。あなたが与えた例ではそれを省略しました。最後に、Kerberos サービスは大文字で記述する必要があるため、 hostの代わりにHOSTを使用します。これを修正するには:

  1. 次のように User1 から SPN を削除します。

    setspn -D host/User1.contoso.com@CONTOSO.COM User1

  2. 以下のようにキータブを再作成し (3 つの変更を加えました)、もう一度試してください。

    ktpass /princ HOST/server1.contoso.com@CONTOSO.COM /mapuser user1@CONTOSO.COM /pass MyPas$w0rd /out machine.keytab /crypto all /ptype KRB5_NT_PRINCIPAL /mapop セット

: keytabが AD と通信することはありません。受信 Kerberos サービス チケットを復号化して、ユーザーが誰であるかを識別します。このメカニズムについては、https ://social.technet.microsoft.com/wiki/contents/articles/36470.active-directory-using-kerberos-keytabs-to-integrate-non-windows に記事があります。 -systems.aspx .

于 2020-08-27T14:33:37.560 に答える