问题标签 [spn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
encryption - Kerberos 密钥表文件包含多个条目
我正在尝试使用 kerberos 对我的服务的用户进行身份验证。我将 SPN 附加到使用setspn -s HTTP/<hostname> <Username>
.
然后我对上面的 SPN 附加用户使用了 ktpass 命令。但是生成的密钥表文件有多个条目,似乎正在创建多个密钥。
这里可能有什么问题?
这是 ktpass 命令的输出:
已创建密钥。
已创建密钥。
已创建密钥。
已创建密钥。
已创建密钥。
将 keytab 输出到 c:\tomcat.keytab:
密钥表版本:0x502
sql-server - ASP.NET 模拟场景。IIS 8.5 到 SQL 2012,需要设置什么 SPN?
我已经阅读了许多博客,以及许多关于如何让我的 IIS 服务器将经过身份验证的用户传递给 SQL 的文章。然而,我被困在我究竟需要什么来设置我的 SPN 上。这是我的设置...
IIS:
应用程序池 .Net v4.0
集成管道
标识 = NetworkService
身份验证:
ASP.NET Impersonation = True(已启用)
Windows 身份验证已启用
Provider = Negotiate:Kerberos
Disabled 内核模式身份验证
IIS SERVER:
信任任何服务的委派(仅限 kerberos)
SQL SERVER:
信任任何服务的委派(仅限 kerberos)
根据我对这些设置的理解,我应该将我当前登录的 Windows 帐户传递到 IIS 服务器,它应该将该令牌传递给 SQL 以进行身份验证我。但是,它只是不断地提示我输入站点的用户/通行证。
我发现这篇文章http://blog.reveille.org.uk/2010/01/asp-net-impersonation-delegation-2/告诉我我需要在“机器”上使用类似这样的设置 SPN:
我不确定我需要什么 SPN。谁能帮帮我?我在想它就像
或者在我的应用程序池中使用域帐户并设置 SPN 会更好吗?
windows - New-ADUser,设置服务主体名称时出错
我正在尝试在 Windows 服务器上编写新用户创建过程的脚本,该脚本的一部分是为该特定用户设置 SPN 记录。但是当我尝试将 SPN 参数与值一起放入时,我不断收到错误“New-ADUser:名称引用无效” 。我正在尝试遵循 Microsoft 网站(链接)的示例,我们将不胜感激。
如果我删除 ServicePrincipalNames 参数本身,它工作正常。
谢谢,
拉胡尔
kerberos - 指定 SPN 的正确格式是什么?
首先,使用 setspn 命令为用户注册服务主体名称。
setspn -a CS/dummy@abc.com dummyuser
setspn -l 虚拟用户
给出输出为
CS/dummy@abc.com
接下来,当使用 /mapUser 选项执行 ktpass 命令时,会修改用户帐户的服务主体名称,以便删除域组件。
ktpass /pass Password@123 -out dummy.1.keytab -princ CS/dummy@abc.com -crypto DES-CBC-MD5 +DumpSalt -ptype KRB5_NT_PRINCIPAL +desOnly /mapOp set /mapUser dummyuser
setspn -l 虚拟用户
给出输出为
CS/假人
以下两个命令是否正确并以相同的方式工作?
setspn -a CS/dummy dummyuser
setspn -a CS/dummy@abc.com dummyuser
在 SPN 中指定服务名称时,是否也必须包含域组件?你能澄清一下吗?
powershell - SetSPN使用powershell运行CMD命令
我正在尝试制作一个脚本来运行一些 cmd 命令来设置 SPN:对于我的列表中的每个项目运行 setspn -s(spn 的名称)域\服务帐户,但我很难运行命令行为以及我需要能够更改(我通过列表时的 SPN 名称)
-S 假设在 AD 中查找,如果名称不存在,则添加或以其他方式移动到下一项,依此类推。但它给了我一个错误:+ CategoryInfo : NotSpecified: (Unknown paramet...eck your usage.:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError
所以它希望列表中的每个名称都是这样的:(检查是否不在广告中添加这个)(这个 SPN)setspn -s serverSQL1/pop1.company.com:2500
(在此服务帐户下) Domain\Service100
并继续进行直到完成。
authentication - 了解 Kerberos 主体
我正在尝试理解 Kerberos 的基本概念。我在这里读到了关于校长的信息,通常看起来像:
我想问到底什么是主、实例和领域。当然,上面的页面和互联网上的其他几个地方都有定义,但是有人可以举个例子吗?
我的理解是:主要是消费者(用户或服务)。实例是用于访问控制的东西。主实例可以是多个实例的一部分。Realm 是实例的集合?如果我错了,请纠正我。
如果我有一个服务器:foo.bar.com
,我可以有 2 个领域:REALM1, REALM2。这些可以这样命名吗?或者我可以在这里只有 1 个领域作为FOO.BAR.COM吗?
现在我说 3 个服务:s1、s2、s3相互交谈。由于启用了 kerberos,他们每个人都必须有一个带有自己的 keytab 文件的主体?或者由于每个服务都在与其他服务通信,每个 keytab 文件是否需要为其他服务提供主体?
sql-server - 安装 - SharePoint 服务器 - SQL 和 SPN
我有一个关于安装 SQL Server 和 SP2016 开发场的问题。我可以安装两者,但我的老板问我有关在 AD 中安装 SPN(服务主体名称)的问题。但我不知道为什么以及如何将 SPN 与 SQL 和 SharePoint 链接。
我在网上做了一些研究,得到了一些术语“Kerberos”,但我用 NTLM 安装了 SharePoint。帮助我理解为什么 SPN 在这种情况下会很有用。
authentication - kerberos:客户端如何知道请求票证的服务名称?
假设客户端想要向 HTTP 代理验证自己的身份。代理使用 kerberos 进行配置,并且在其配置中明确设置了服务名称HTTP/proxy.foo.bar。客户端如何知道向哪个服务名称请求票证?它是向他请求的域名请求票证(在这种情况下确实是proxy.foo.bar),还是在身份验证序列中接收到名称,在这种情况下是 407 回复(其中不包含谈判挑战,但我只是不知道是否有办法调查它)?
我正在尝试调试突然停止对某些客户端进行身份验证的代理上的 kerberos 错误。问题是,在 Wireshark 中查看时,我看到客户端请求的票证不是在代理上配置的服务名称(与他指示使用的名称相同)HTTP/proxy.foo.bar,而是请求的名称代理 IP 解析为HTTP/host.foo.bar(好吧,至少它是代理解析的名称,可能是客户端以其他方式获取的名称),而 TGS 就是找不到一个,因此会发生错误.
sql-server - Kerberos 身份验证问题:网站在一段时间后自动停止工作
有一个网站设置为在 Windows 身份验证上运行。该站点下有 3 个 Web 应用程序,每个应用程序都在自己的应用程序池中,但具有相同的域帐户。ASP.NET 模拟、使用应用程序池凭据、使用内核模式身份验证设置为 true。
- 应用程序池帐户的网站 DNS url 的 SPN 已到位。
- SQL 服务的 SPN 已就位。
- 应用程序池帐户设置为委托给 SQL 服务帐户。
有了上述设置,这三个应用程序可以正常工作一段时间。然后他们自动停止连接到数据库,并出现错误“用户 NT Authority\Anonymous Logon 登录失败”。
重置IIS后,这3个应用程序停留了一段时间,然后他们又一次停止连接到数据库,一个应用程序一个接一个。诡异的?
可能是什么问题?任何指针?
active-directory - How and when does ktpass set the salt?
A user's password and salt determine the Kerberos keys generated by ktpass
. I have noticed that ktpass
sometimes changes the user's salt, but other times it does not. I was able to discover the salt by capturing a packet trace of a kinit
. The salt appears to be generated based on the Kerberos realm and the userPrincipalName. However, it's not this simple. If the UPN is later updated manually, the salt is not updated. (I suspect that whether the /mapop
option is specified may play a role.)
- In what circumstances does
ktpass
set the user's salt? - How is the salt determined?
- Is the salt stored in AD, or just in the KDCs?
- Is there a straightforward way to read the current value of the salt?
- Is there a way to manually change the salt?