一意のSPNの名前形式

SPNは、登録されているフォレスト内で一意である必要があります。 一意でない場合、認証は失敗します。 SPN構文には4つの要素があります。2つの必須要素と、必要に応じて、次の表に示す一意の名前を生成するために使用できる2つの追加要素です。

<service class>/<host>:<port>/<service name>
要素 説明
"サービスクラス" 一般的なサービスクラスを識別する文字列;たとえば、"SqlServer"です。 Webサービスの"www"やディレクトリサービスの"ldap"など、よく知られているサービスクラス名があります。 一般に、これはサービスクラスに固有の任意の文字列にすることができます。 SPNの構文ではスラッシュ(/)を使用して要素を区切るため、この文字はサービスクラス名には使用できません。"。
ホスト" サービスが実行されているコンピューターの名前。 完全修飾DNS名またはNetBIOS名を指定できます。 NetBIOS名はフォレスト内で一意であるとは限らないため、NetBIOS名を含むSPNは一意ではない可能性があることに注意してください。"。
port" 1台のホストコンピューター上の同じサービスクラスの複数のインスタンスを区別するためのオプションのポート番号。 サービスがサービスクラスに既定のポートを使用する場合は、このコンポーネントを省略します。"。
サービス名" サービスによって提供されるデータまたはサービス、またはサービスによって提供されるドメインを識別するために、レプリケート可能なサービスのSPNで使用されるオプションの名前。 このコンポーネントには、次のいずれかの形式を使用できます。
  • サービス接続ポイント (SCP) など、Active Directoryドメインサービス内のオブジェクトの識別名またはobjectGUID。
  • ドメイン全体に対して指定されたサービスを提供するサービスのドメインのDNS名。
  • SRVレコードまたはMXレコードのDNS名。

 

サービスのSPNに存在するコンポーネントは、サービスが識別およびレプリケートされる方法によって異なります。 2つの基本的なシナリオがあります。ホストベースのサービスとレプリケート可能なサービスです。

ホストベースのサービス

ホストベースのサービスの場合、サービスはサービスクラスとサービスがインストールされているホストコンピューターの名前によって一意に識別されるため、"サービス名"コンポーネントは省略されます。

<service class>/<host>

サービスが提供する機能をクライアントに識別するには、サービスクラスだけで十分です。 サービスクラスのインスタンスは複数のコンピューターにインストールでき、各インスタンスはホストコンピューターで識別されるサービスを提供します。 FTPとTelnetは、ホストベースのサービスの例です。 サービスが既定以外のポートを使用する場合、またはホスト上にサービスの複数のインスタンスがある場合、ホストベースのサービスインスタンスのSPNにはポート番号を含めることができます。

<service class>/<host>:<port>

レプリケート可能なサービス

レプリケート可能なサービスには、サービスのインスタンス (レプリカ) が1つまたは複数存在する可能性があります。クライアントは、それぞれが同じサービスを提供するため、接続先のレプリカを区別しません。 各レプリカのSPNには、同じ"サービスクラス"コンポーネントと"サービス名"コンポーネントがあります。"サービス名"は、サービスによって提供される機能をより具体的に識別します。 SPNによって異なるのは、"ホスト"コンポーネントと省略可能な"ポート"コンポーネントだけです。

<service class>/<host>:<port>/<service name>

レプリケート可能なサービスの例としては、指定されたデータベースへのアクセスを提供するデータベースサービスのインスタンスがあります。 この場合、"サービスクラス"はデータベースアプリケーションを識別し、"サービス名"は特定のデータベースを識別します。"。 サービス名"は、データベースの接続データを含むサービス接続ポイント (SCP) の識別名にすることができます。

MyDBService/host1.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3.example.com/CN=hrdb,OU=mktg,DC=example,DC=com

クライアントがNetBIOS名を使用してサービスのSPNを構成する場合は、各レプリカもNetBIOS名を含むSPNを登録する必要があります。

MyDBService/host1/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3/CN=hrdb,OU=mktg,DC=example,DC=com

レプリケート可能なサービスのもう1つの例は、ドメイン全体にサービスを提供するサービスです。 この場合、"サービス名"コンポーネントは、サービスを提供するドメインのDNS名です。 Kerberos KDCは、この種類のレプリケート可能なサービスの例です。

コンピューターのDNS名が変更されると、フォレスト内のそのホストに対して登録されているすべてのSpnの"host"要素が更新されることに注意してください。