Kerberos クライアントは、サービス プリンシパル名 (SPN) で IPv4 および IPv6 アドレスのホスト名を許可します。
Windows 10 バージョン 1507 および Windows Server 2016 以降、Kerberos クライアントは SPN で IPv4 および IPv6 のホスト名をサポートするように構成できます。
既定でホスト名が IP アドレスの場合、Windows はホストの Kerberos 認証は試行しません。 NTLM などの他の有効な認証プロトコルにフォールバックします。 ただし、アプリケーションが IP アドレスを使用するようにハードコーディングされている場合があります。これは、アプリケーションが Kerberos を使用せずに NTLM にフォールバックすることを意味します。 これにより、環境が NTLM を無効にするように移行するため、互換性の問題が発生する可能性があります。
NTLM を無効にした場合の影響を軽減するために、管理者がサービス プリンシパル名のホスト名として IP アドレスを使用できるようにする新しい機能が導入されました。 この機能は、レジストリ キー値を介してクライアントで有効になります。
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters" /v TryIPSPN /t REG_DWORD /d 1 /f
SPN で IP アドレス ホスト名のサポートを構成するには、TryIPSPN エントリを作成します。 既定では、このエントリはレジストリに存在しません。 エントリを作成したら、DWORD 値を 1 に変更します。 このレジストリ値は、Kerberos で保護されたリソースに IP アドレスでアクセスする必要がある各クライアント マシンで設定する必要があります。
サービス プリンシパル名を IP アドレスとして構成する
サービスプリンシパル名は、Kerberos 認証中にネットワーク上のサービスを識別するために使用される一意の識別子です。 SPN は、サービス、ホスト名、および必要に応じて、host/fs.contoso.com
などの service/hostname[:port]
形式のポートで構成されます。 マシンが Active Directory に参加すると、Windows は複数の SPN をコンピューター オブジェクトに登録します。
IP アドレスは一時的なものになることが多いため、通常はホスト名の代わりに IP アドレスは使用されません。 これにより、アドレス のリース有効期限が切れて更新されるため、競合や認証エラーが発生する可能性があります。 そのため、IP アドレスベースの SPN の登録は手動のプロセスであり、DNS ベースのホスト名に切り替えできない場合にのみ使用する必要があります。
推奨される方法は、Setspn.exe ツールを使用する方法です。 SPN は一度に Active Directory の 1 つのアカウントにのみ登録できるため、DHCP を使用する場合は IP アドレスに静的リースを設定することをお勧めします。
Setspn -s <service>/ip.address> <domain-user-account>
例:
Setspn -s host/192.168.1.1 server01