web-dev-qa-db-ja.com

Samba 4 DCに対するkeytab auth:最初の認証情報を取得中にクライアントがKerberosデータベースに見つかりません

Samba AD DC HOWTO に従って、ubuntu 14.04にsamba 4 Active Directoryをセットアップしました。原則としてすべてが正常に機能しますが、SPNを使用してkerberos認証を実行できません。 Webアプリケーション用です。実行しようとすると

kinit -k -t keytabfile http/myserver.mycompany.com 

私はいつも得る

kinit: Client not found in Kerberos database while getting initial credentials

私がこれまでに確認したこと:

  • DNSはFQNを返す前方と後方の両方で機能しています
  • kinitはユーザー名を使用して動作します
  • myserver.mycompany.comは、DCおよびWebサーバー上のnslookupによって返されます
  • myserverはすでにドメインに参加しており、
    CN =コンピュータ、DC = mycompany、DC = com
  • 重複したSPNはありません

サービスアカウント/ SPN /キータブを次のように作成しました。

samba-tool user create $ADS_USER $ADS_PW --userou=$USER_OU
samba-tool user setexpiry --noexpiry $ADS_USER

samba-tool spn add ${SERVICE_TYPE}/${SERVICE_Host}.${MY_DOMAIN} $ADS_USER
samba-tool spn add ${SERVICE_TYPE}/${SERVICE_Host} $ADS_USER

samba-tool spn list $ADS_USER
rm -f $MY_KEYTAB
samba-tool domain exportkeytab $MY_KEYTAB --principal=${SERVICE_TYPE}/${SERVICE_Host}.${MY_DOMAIN}
samba-tool domain exportkeytab $MY_KEYTAB --principal=${SERVICE_TYPE}/${SERVICE_Host}

klist -k -e $ MY_KEYTABを実行すると、すべてが適切に見えます。

root@myhost:~# klist -ke ./test.keytab
Keytab name: FILE:./test.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 http/[email protected] (des-cbc-crc)
   1 http/[email protected] (des-cbc-md5)
   1 http/[email protected] (arcfour-hmac)
   1 http/[email protected] (des-cbc-crc)
   1 http/[email protected] (des-cbc-md5)
   1 http/[email protected] (arcfour-hmac)

私は道に迷い、グーグルで数時間調査し、「Kerberosデータベースにクライアントが見つかりません」というエラーを回避または修正する方法がわかりません。ヒントは大歓迎です!

ありがとう

クライアント上の「/etc/krb5.conf」

[libdefaults]
    debug = true
        default_realm = MYCOMPANY.COM
        dns_lookup_realm = false
        dns_lookup_kdc = false
        default_tkt_enctypes = rc4-hmac
        default_tgs_enctypes = rc4-hmac
[realms]
        MYCOMPANY.COM = {
                kdc = dc01.mycompany.com
                admin_server = dc01.mycompany.com
                kpasswd_server = dc01.mycompany.com

                #ktpasswd_server = dc01.mycompany.com
                #admin_server = dc01.mycompany.com
        }
[domain_realm]
        .mycompany.com = MYCOMPANY.COM
        mycompany.com = MYCOMPANY.COM

dCサーバー上/etc/samba/smb.conf

[global]
        debug level = 1
        syslog = 1
        max log size = 0

        workgroup = MYCOMPANY
        realm = MYCOMPANY.COM
        netbios name = DC01
        server role = Active Directory domain controller
        server string = MYCOMPANY domain controller
        server role check:inhibit = yes
        dns forwarder = 192.168.22.1
        idmap_ldb:use rfc2307 = yes
6
Heiko Robert

ついにできた!

samba-tool spn add ...

ディレクトリで期待どおりにUPNの名前を変更しません。 MS ADSエントリと比較して見つけました。したがって、回避策は、exportkeytabコマンドを発行する前に手動で値を変更することです。

  • Ldap-tool(私はApache Directory Studioを使用しました)でサービスユーザーエントリを開き、
  • 作成したばかりのユーザーを見つけます "userPrincipalName"を編集してservicePrincipleName + REALMを反映します(私の場合はhttp/[email protected]
  • キータブをエクスポートすると、すべてが期待どおりに機能する

ターゲットマシン上

kinit -k -t http/myserver.mycompany.com

文句なしで動作します!うまくいけば、これはSamba4でSSOを設定しようとしている他の人を助ける...

4
Heiko Robert

Redhat Linux環境で最初にエラーが発生しました。

kinit:初期認証情報の取得中にKerberosデータベースでクライアントが見つかりません

以下のサービスアカウントをF_KEYに登録してみましたが

$ kinit  Host/[email protected]

そして、それは私にパスワードを提供するように促し、それはうまくいきました!

サーバーの/ tmpフォルダーの下に「krb5cc_0」資格情報キャッシュファイルを生成できます。

一時TGTに関するコマンド「klist」を使用して、すべての詳細を一覧表示できます。

  1. 有効な開始
  2. 期限切れ
  3. サービス主体
0
user1263984