Comment un service compose ses SPN

Un service peut utiliser deux fonctions pour composer ses SPN : DsGetSpn est une fonction à usage général pour composer des SPN et DsServerRegisterSpn est une fonction spécialisée pour composer et inscrire des SPN simples pour un service basé sur l’hôte.

Un programme d’installation de service utilise généralement la fonction DsGetSpn pour composer des SPN, qu’il enregistre ensuite sur le compte d’ouverture de session du service à l’aide de la fonction DsWriteAccountSpn . Le DsGetSpn peut exécuter les fonctions suivantes.

  • Créez un SPN simple avec le / < format « hôte > » pour un service basé sur l’hôte.
  • Créez un nom de principal du service (SPN) complexe qui comprend le < composant « nom du service > » utilisé par les services réplicables ou le < composant « port > » qui distingue plusieurs instances d’un service sur un seul hôte.
  • Créez un SPN unique avec le < composant « hôte > » défini sur le nom d’un ordinateur hôte spécifié ou sur le nom de l’ordinateur local par défaut.
  • Créez un tableau de noms de principal du service pour plusieurs instances de service qui s’exécuteront sur plusieurs hôtes dans l’ensemble de la forêt. Chaque SPN spécifie le nom de l’hôte pour une instance de service.
  • Créez un tableau de noms de principal du service pour plusieurs instances de service qui s’exécuteront sur le même hôte. Chaque SPN spécifie le nom de l’hôte et un numéro de port pour une instance de service.

Le tableau des noms retournés par DsGetSpn doit être libéré en appelant la fonction DsFreeSpnArray .

N’oubliez pas que les fonctions DsGetSpn, DsWriteAccountSpnet DsServerRegisterSpn ne vérifient pas que les noms principaux de service sont uniques. Étant donné que l’authentification mutuelle échoue si un client présente un nom de principal du service qui n’est pas unique, vérifiez l’unicité avant d’inscrire un SPN. Pour ce faire, recherchez dans le catalogue global (GC) les attributs servicePrincipalName qui correspondent à votre SPN. Pour plus d’informations sur la recherche dans le GC, consultez recherche dans le catalogue global.