将新 SPN 添加到 Kerberos 域时,您可以选择将 SPN 映射到用户。通常,我通过集成 Windows 身份验证加入域,这会为该服务创建一个新的计算机帐户,但是现在,我想尝试使用没有 IWA 的 Kerberos。
我相信我对 Kerberos 如何对计算机主机的客户端进行身份验证有一个透彻的了解(对于我正在尝试做的事情来说已经足够了) - 但是将 SPN 映射到域用户究竟做了什么?
编辑:我不是在问 SPN 通常是如何工作的。我特别询问将 SPN 映射到域用户的详细信息。
回答:
任何进一步的信息将不胜感激。
active-directory kerberos service spn integrated-authentication
我有一个全新的服务器映像,一旦加入域,它就会失去信任。我怀疑这是因为我使用此 Powershell 脚本的 LDAP 版本发现了重复的 SPN
Powershell 脚本
#Set Search
cls
$search = New-Object DirectoryServices.DirectorySearcher([ADSI]“”)
$search.filter = “(servicePrincipalName=*)”
$results = $search.Findall()
#list results
foreach($result in $results)
{
$userEntry = $result.GetDirectoryEntry()
Write-host "Object Name = " $userEntry.name -backgroundcolor "yellow" -foregroundcolor "black"
Write-host "DN = " $userEntry.distinguishedName
Write-host "Object Cat. = " $userEntry.objectCategory
Write-host "servicePrincipalNames"
$i=1
foreach($SPN in $userEntry.servicePrincipalName)
{
Write-host "SPN(" $i ") = " $SPN $i+=1
}
Write-host ""
}
Run Code Online (Sandbox Code Playgroud)
具有重复 SPN 的主机
dn: CN=NYC01IMFE02,CN=Computers,DC=hp,DC=com
changetype: add
servicePrincipalName: MSSQLSvc/NYC01IMFE02.hp.com:52407
servicePrincipalName: …Run Code Online (Sandbox Code Playgroud) 我正在尝试加入一个 Windows Server 2016 VM BORON,该VM 被调用到具有 Windows 2012 R2 域控制器的域。DC 名称是SNOWDROP.DUCK.LOC当我尝试加入时出现此错误:
The operation failed because SPN value provided for addition/modification is not unique forest-wide.
Run Code Online (Sandbox Code Playgroud)
!?
我试图找出在域控制器上使用此命令的原因:
Get-ADComputer -Filter {serviceprincipalname -like "*boron*"} | select *
DistinguishedName : CN=SNOWDROP,OU=Domain Controllers,DC=duck,DC=loc
DNSHostName : snowdrop.duck.loc
Enabled : True
Name : SNOWDROP
ObjectClass : computer
ObjectGUID : 2b5d6206-707a-4f09-835b-2d8222474e4d
SamAccountName : SNOWDROP$
SID : S-1-5-21-1075642099-280362434-2919291742-1001
UserPrincipalName :
PropertyNames : {DistinguishedName, DNSHostName, Enabled, Name...}
AddedProperties : {}
RemovedProperties : {}
ModifiedProperties : {} …Run Code Online (Sandbox Code Playgroud) 服务主体名称是否特定于 Windows 上的 Active Directory?或者它们是否也存在于 Linux OpenLDAP / Kerberos KDC 服务器中?
我们有一些人(他们自己)手动使用 SP 来运行命令并从 CLI 部署资源。我们需要阻止这种情况,只允许服务使用 SP,而不是人类。有什么办法吗?