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 "[email protected]" -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
次の手順では、サービスプリンシパル名(SPN)をユーザーアカウントにバインドします。キータブファイルを作成するときにktpassが自動的に実行するため、この手順を個別に実行する必要はありません(プロセスをよりよく理解できるようにするために実行します)。
次のSPNレコードをwebにバインドします アカウント:
setspn -A HTTP/[email protected] web
ADユーザーに関連付けられているSPNレコードのリストを表示します:
setspn -L web
キータブファイルを作成するには、次のコマンドを使用します。
ktpass -princ HTTP/[email protected] -mapuser web -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass Sup6r!Pa$s -target mundc01.test.com -out c:\share\web.keytab
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/[email protected] ptype 1 (KRB5_NT_PRINCIPAL) vno 4 etype 0x1 (DES-CBC-CRC) keylength 8 (0x73f868856e046449)
このコマンドは、HTTP / [email protected]サービスのSPNレコード用のキータブファイル(c:\ share \ webt.keytab)を作成しました。 SPNレコードは、指定されたパスワードでWebアカウントにバインドされます。
サービスのSPNレコードが正常に作成されていることを確認します(手動で作成しなかった場合):
setspn -Q */[email protected]
SPNレコードが見つかりました(既存のSPNが見つかりました! )。 Webアカウントにバインドされています。
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.
キータブファイルの内容を見てみましょう。ここでは、SPN、キー、タイムスタンプ、暗号化アルゴリズム、およびキーバージョン(KVNO —キーバージョン番号)を指定します。
キータブファイルを作成するとき、ktpassは msDS-KeyVersionNumberをインクリメントします ユーザーアカウントの属性値(AD属性エディターで確認できます)であり、その値をキータブテーブルのKVNOとして使用します。
アカウントのパスワードを変更すると、属性値が1つ増え、以前のKVNOのすべてのキータブエントリが無効になります(新しいパスワードが古いパスワードと完全に一致している場合でも)。 ADのユーザーパスワードが変更された場合は、キータブファイルを再度生成する必要があります。
キータブファイルは、異なるSPNのキーを保持する場合があります。 ktpass を使用して、追加のSPNとキーがkeytabファイルに追加されます。 パラメータ(-in
、-setupn
、-setpass
。
取得したkeytabファイルのさらなる使用は、それが適用されるサービスによって異なります。たとえば、ここでは、Zabbixで透過的なSSOユーザー認証にキータブファイルを使用する方法を学ぶことができます。また、キータブファイルを安全に保つことを忘れないでください(キータブファイルの内容を読み取ることができる人は誰でも、そこから任意のキーを使用できます)。
-
Zabbix:Active Directoryでのシングルサインオン(SSO)認証
この記事では、Kerberosを使用したActiveDirectoryでのZabbix4.0(またはそれ以降)の透過的なSSO(シングルサインオン)認証の段階的な構成について検討します。 その結果、ユーザーはクレデンシャルを入力せずにZabbixフロントページで自動的に認証されます。これを行うには、ユーザーはZabbixで指定されたActiveDirectoryドメインアカウントでWindowsにログインする必要があります。さらに、ユーザーはブラウザーを構成する必要があります(Kerberosサポートを有効にし、信頼できるイントラネットサイトをIEで設定する必要があります)。 シ
-
修正:ドメインのActiveDirectoryドメインコントローラーに接続できませんでした
エラー「ドメインのActiveDirectoryドメインコントローラーに接続できませんでした」 ’は、DNSの設定ミスが原因で発生することがよくあります。その場合は、DNSを変更する必要があります。ユーザーから、ドメインに別のWindowsワークステーションを追加しようとすると、次のエラーメッセージが表示されることが報告されています。 [詳細]ボタンをクリックしてエラーの詳細を確認すると、DNS名とエラーコードが存在しないことが通知されます。 「ドメインのActiveDirectoryドメインコントローラーに接続できませんでした」に遭遇した場合 のWindows10でのエラー、この記事はそ