Loading

SPN

一、SPN简介

服务主体名称(SPN:ServicePrincipal Names)是服务实例(可以理解为一个服务,比如 HTTP、MSSQL)的唯一标识符。Kerberos 身份验证使用 SPN 将服务实例与服务登录帐户相关联。如果在整个林或域中的计算机上安装多个服务实例,则每个实例都必须具有自己的 SPN。如果客户端可能使用多个名称进行身份验证,则给定服务实例可以具有多个 SPN。SPN 始终包含运行服务实例的主机的名称,因此服务实例可以为其主机的每个名称或别名注册SPN。
如果用一句话来说明的话就是如果想使用 Kerberos 协议来认证服务,那么必须正确配置SPN。

二、SPN格式与配置

在 SPN 的语法中存在四种元素,两个必须元素和两个额外元素,其中和为必须元素:

<serviceclass>/<host>:<port>/<service name>
<service class>:标识服务类的字符串
<host>:服务所在主机名称
<port>:服务端口
<service name>:服务名称

如果我想把域中一台主机Srv-DB-0day中的 MSSQL 服务注册到 SPN 中则可以使用命令:

setspn -A MSSQLSvc/Srv-DB-0day.Oday.org:1433 sqladmin

可以通过下面两个命令来查看已经注册的 SPN

setspn -q */*
setspn -T 0day.org -q */*
posted @ 2021-08-22 19:03  Ctrl_C+Ctrl_V  阅读(108)  评论(0)    收藏  举报