LinuxサーバーをActive Directoryドメインに参加させるときに自動的に生成されるkeytabエントリに問題があります。まず、私のプロセスについて話しましょう。
- 必須Linuxパッケージのインストール
yum install realmd pam sssd adcli oddjob oddjob-mkhomedir samba-common-tools krb5-workstation
- Active Directoryでコンピュータオブジェクトを作成し、関連SPNエントリ(servicePrincipalName)を追加します。
- ドメイン登録の実行
realm join -v EXAMPLE.COM -U domainUser
購読プロセス中、プロセスはコンピュータオブジェクトのSPNエントリと直接一致するエントリを含むkrb5.keytabファイルを自動的に作成します。したがって、SPNに項目がある場合[Eメール保護]、サブスクリプションプロセスはkeytabエントリを生成します。[Eメール保護]。 問題はSPNの名前に大文字のサービスタイプがある場合、キータブ生成プロセスはサービスタイプの大文字と小文字を考慮せずに、代わりにキータブエントリに小文字のサービスタイプを持つように強制します。したがって、SPNHTTPプロトコル/[Eメール保護]すると、キータブジェネレータが強制的にhttp/[Eメール保護]、ドメイン登録プロセス中。私が使用しているアプリケーションが機能するには、これらの項目が一致する必要があります(すべて大文字)。
私の目標は、大文字のサービスタイプ(SPN)と一致するキータブエントリを持つことです。私が知っている2つのオプションがあります。
realm join
サービスタイプの大文字と小文字を同じに保つようにフローを変更するか、- keytabファイルに独自のkeytabエントリを作成する
両方のオプションに問題があります。最初のオプションでは、変更できるサブスクリプションプロセスが見つかりません。 2番目のオプションでは、独自のアイテムを作成するために使用できる2つのアプリを見つけました。これらのアプリケーションはkadminとktutilです。 kadminに「必要なKADM5サブジェクトがありません...」というエラーが表示されます(修正方法がわかりません)。 ktutil オプションも使用できます。ただし、この新しい keytab エントリに他の keytab エントリで使用されるのと同じパスワードを適用する必要がありますが、このパスワードは Active Directory で管理され、取得できません。
以前にこの問題を経験した人がいて、Keytabエントリのサービスタイプを大文字にする方法の解決策はありますか?
ありがとうございます!
ベストアンサー1
私はあなたを言うでしょうしてはいけないホストのkeytab(コンピュータアカウント)にこれらのSPNを追加することから始めます。 Samba(cifs)やSSH(ホスト)などのサービスは引き続き使用できますが、他のすべて(HTTP、imapなど)には個別の独自のキーが必要です。独自のkeytabファイルにあります。(通常、サービスがADのデフォルトの「ホスト」「サービスエイリアス」リストにない場合は、コンピュータアカウントを共有しないでください。)
Active Directoryで追加のプリンシパル(コンピュータアカウントに関連付けられていない)を作成する一般的な方法は次のとおりです。ユーザーアカウントに任意のパスワードを使用し、必要なSPNを割り当てます。 Active DirectoryはMIT kadminプロトコルを使用しません。管理はLDAPを介して行われます。 Kerberosプリンシパルを作成する唯一の方法は、servicePrincipalName
すでに見つかったLDAP属性です。 (しかしmsDS-SupportedEncryptionTypes
設定することも忘れないでください!)
Sambaツールを使用samba-tool spn add
すると。samba-tool domain exportkeytab
ktutil
ktpass.exe
次のように動作する必要があります。
samba-tool user create HTTP-foo --random-password
samba-tool user setexpiry HTTP-foo --noexpiry
samba-tool spn add HTTP/foo.example.com HTTP-foo
net ads enctypes set HTTP-foo 24
samba-tool domain exportkeytab HTTP.keytab --principal=HTTP/foo.example.com