クライアントがサービスのSPNを作成する方法

クライアントアプリケーションは、サービスを認証するために、接続先のサービスインスタンスのSPNを作成します。 クライアントアプリケーションでは、DsMakeSpn関数を使用してSPNを作成できます。 クライアントは、既知のデータまたはサービス自体以外のソースから取得したデータを使用して、SPNのコンポーネントを指定します。

SPNの形式を次に示します。

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

この形式では、"サービスクラス"と"ホスト"が必要です。 "ポート"と"サービス名"は省略可能です。

通常、クライアントは名前の"サービスクラス"の部分を認識し、SPNに含めるオプションのコンポーネントを認識します。 クライアントは、サービス接続ポイント (SCP) やユーザー入力などのソースからSPNのコンポーネントを取得できます。 たとえば、クライアントはサービスのSCPのserviceDNSName属性を読み取って"ホスト"コンポーネントを取得できます。 serviceDNSName属性には、サービスインスタンスが実行されているサーバーのDNS名、またはサービスレプリカのホストデータを含むSRVレコードのDNS名が含まれます。 "サービス名"コンポーネントは、レプリケート可能なサービスにのみ使用され、サービスのSCPの識別名、サービスによって提供されるドメインのDNS名、またはSRVまたはMXレコードのDNS名にすることができます。

サービスのSPNの作成に使用されるコード例と詳細については、 「クライアントがSCPベースのWindowsソケットサービスを認証する方法」 を参照してください。

SPNコンポーネントの詳細と説明については、 「一意のSpnの名前形式」 を参照してください。