Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

多くのLinuxサービス(apache、nginxなど)はキータブを使用できます パスワードを入力せずにActiveDirectoryでKerberos認証用のファイル。 keytabファイルは、Kerberosプリンシパルの名前と対応する暗号化されたキー(Kerberosパスワードから取得)を保持します。この記事では、 ktpass を使用して、リンクされたActiveDirectoryアカウントのSPNのキータブファイルを作成する方法を示します。 道具。

ほとんどの場合、キータブファイルを使用する必要があるサービス用に個別のActiveDirectoryユーザーアカウントが作成されます。ただし、コンピュータオブジェクトを使用してそれを行うこともできます。次に、サービス名がアカウントにバインドされます( ServicePrincipalName SPN )。 SPNはKerberos認証によって使用され、サービスインスタンスをADアカウントにマップします(これが、アプリがユーザー名を知らなくてもサービスとして認証される理由です)。

まず、ADでサービスアカウントを作成し、既知のパスワードを設定します。アカウントは、グラフィックADUCコンソール(dsa.msc)から作成するか、PowerShellのNew-ADUserコマンドレット(PowerShell Active Directoryモジュールから)を使用して作成できます。

New-ADUser -Name "web" -GivenName "nginx web app" -SamAccountName "web" -UserPrincipalName "web@test.com" -Path "OU=Services,OU=Munich,OU=DE,DC=test,DC=com" –AccountPassword (ConvertTo-SecureString “Sup6r!Pa$s” -AsPlainText -force) -Enabled $true

グラフィックコンソールまたはPowerShellで、サービスアカウントの[ユーザーはパスワードを変更できません]および[パスワードは期限切れになりません]オプションを有効にします。

Get-ADUser web|Set-ADUser -PasswordNeverExpires:$True -CannotChangePassword:$true

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

次の手順では、サービスプリンシパル名(SPN)をユーザーアカウントにバインドします。キータブファイルを作成するときにktpassが自動的に実行するため、この手順を個別に実行する必要はありません(プロセスをよりよく理解できるようにするために実行します)。

次のSPNレコードをwebにバインドします アカウント:

setspn -A HTTP/www.test.com@test.com web

ADユーザーに関連付けられているSPNレコードのリストを表示します:

setspn -L web

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

キータブファイルを作成するには、次のコマンドを使用します。

ktpass -princ HTTP/www.test.com@TEST.COM -mapuser web -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass Sup6r!Pa$s -target mundc01.test.com -out c:\share\web.keytab

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

Successfully mapped HTTP/www.test.com to web.
Password successfully set!
Key created.
Output keytab to c:\share\webt.keytab:
Keytab version: 0x502
keysize 53 HTTP/www.test.com@test.com ptype 1 (KRB5_NT_PRINCIPAL) vno 4 etype 0x1 (DES-CBC-CRC) keylength 8 (0x73f868856e046449)

このコマンドは、HTTP / www@test.comサービスのSPNレコード用のキータブファイル(c:\ share \ webt.keytab)を作成しました。 SPNレコードは、指定されたパスワードでWebアカウントにバインドされます。

サービスのSPNレコードが正常に作成されていることを確認します(手動で作成しなかった場合):

setspn -Q */www.test.com@test.com
SPNレコードが見つかりました(既存のSPNが見つかりました! )。 Webアカウントにバインドされています。

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

Windowsには、キータブファイルの内容を表示するための組み込みツールがありません。ただし、Java JREがコンピュータにインストールされている場合は、 klist.exeを使用できます。 Java配布パッケージに含まれています。

cd "c:\Program Files\Java\jre1.8.0_181\bin"
klist.exe -K -e -t -k c:\PS\web_host.keytab

Key tab: c:\PS\web_host.keytab, 5 entries found.

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

キータブファイルの内容を見てみましょう。ここでは、SPN、キー、タイムスタンプ、暗号化アルゴリズム、およびキーバージョン(KVNO —キーバージョン番号)を指定します。

キータブファイルを作成するとき、ktpassは msDS-KeyVersionNumberをインクリメントします ユーザーアカウントの属性値(AD属性エディターで確認できます)であり、その値をキータブテーブルのKVNOとして使用します。

ActiveDirectoryでのKerberos認証用のキータブファイルの作成

アカウントのパスワードを変更すると、属性値が1つ増え、以前のKVNOのすべてのキータブエントリが無効になります(新しいパスワードが古いパスワードと完全に一致している場合でも)。 ADのユーザーパスワードが変更された場合は、キータブファイルを再度生成する必要があります。

キータブファイルは、異なるSPNのキーを保持する場合があります。 ktpass を使用して、追加のSPNとキーがkeytabファイルに追加されます。 パラメータ(-in 、-setupn-setpass

取得したkeytabファイルのさらなる使用は、それが適用されるサービスによって異なります。たとえば、ここでは、Zabbixで透過的なSSOユーザー認証にキータブファイルを使用する方法を学ぶことができます。また、キータブファイルを安全に保つことを忘れないでください(キータブファイルの内容を読み取ることができる人は誰でも、そこから任意のキーを使用できます)。


  1. Zabbix:Active Directoryでのシングルサインオン(SSO)認証

    この記事では、Kerberosを使用したActiveDirectoryでのZabbix4.0(またはそれ以降)の透過的なSSO(シングルサインオン)認証の段階的な構成について検討します。 その結果、ユーザーはクレデンシャルを入力せずにZabbixフロントページで自動的に認証されます。これを行うには、ユーザーはZabbixで指定されたActiveDirectoryドメインアカウントでWindowsにログインする必要があります。さらに、ユーザーはブラウザーを構成する必要があります(Kerberosサポートを有効にし、信頼できるイントラネットサイトをIEで設定する必要があります)。 シ

  2. 修正:ドメインのActiveDirectoryドメインコントローラーに接続できませんでした

    エラー「ドメインのActiveDirectoryドメインコントローラーに接続できませんでした」 ’は、DNSの設定ミスが原因で発生することがよくあります。その場合は、DNSを変更する必要があります。ユーザーから、ドメインに別のWindowsワークステーションを追加しようとすると、次のエラーメッセージが表示されることが報告されています。 [詳細]ボタンをクリックしてエラーの詳細を確認すると、DNS名とエラーコードが存在しないことが通知されます。 「ドメインのActiveDirectoryドメインコントローラーに接続できませんでした」に遭遇した場合 のWindows10でのエラー、この記事はそ