问题标签 [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.

0 投票
1 回答
1442 浏览

kerberos - 为什么可以使用 setspn 创建无效的服务主体名称 (SPN)

今天,我能够使用 setspn 命令创建完全随机且无效的 SPN,但我不明白为什么允许使用无效的 SPN。例如:

setspn -s RandomSvc/randomname.random.random valid_user在我的域中为 valid_user 成功运行(我在此处替换实际用户名,但该用户是域中的有效用户)。

然后,如果我这样做setspn -l valid_user,它将列出此无效条目。

我想没有人能真正连接到这个服务,因为它不存在。但是,如果我尝试添加一个有效的 SPN,但输入错误,我不会注意到它,直到我的应用程序给我一个错误。那么为什么setspn不做任何验证(除了用-s检查重复)?

0 投票
1 回答
173 浏览

websphere - 是否可以配置 SPENGO 而与完全限定的主机名无关

我已经为 WebSphere 配置了 SPENGO,并且当前的 SPENGO 对于完全限定的主机名 appserver.robo.com 运行良好,我想要一个 SPENGO 配置,它可以同时适用于 appserver.robo.com/productName 和 appserver/productName。

有没有这样的配置是可能的?

0 投票
2 回答
3955 浏览

kerberos - Kerberos 和多个 SPN

我设法为 1 台服务器设置了 Kerberos 身份验证,并且运行正常。现在我有一个项目,我必须将另一台服务器添加到 Kerberos 配置中,如下所示:

1) 广告服务器

2) 运行服务的 server1

3) server2 将运行相同的服务

所以我执行了 setspn 命令以将两者都分配给单个“spn”用户:

setspn -s serviceX/server1.domain.com@DOMAIN.COM spn

setspn -s serviceX/server2.domain.com@DOMAIN.COM spn

然后我执行了命令 ktpass:

ktpass -princ serviceX/server1.domain.com@DOMAIN.COM -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 -mapuser serviceX\spn -out C:\keytab +rndPass

接下来我应该怎么做才能让它发挥作用?如何为 server2 执行 ktpass?当我为 server2 尝试相同的命令时,我收到警告:

警告:无法将 UPN serviceX/server2.domain.com ptype 1 vno 10 etype 0x12 kinit 设置为“serviceX/server2.domain.com”将失败。

你们如何为相同的服务但​​在不同的服务器上设置 kerberos 身份验证?您是否创建 2 个 spn 用户和 2 个 keytab?我认为我需要将所有内容都放在 1 个 keytab 中,因为服务需要它。有什么帮助吗?

0 投票
1 回答
2488 浏览

sql-server - 为什么我的 Windows 服务只有在 SQL Server 服务在本地系统帐户下运行时才与数据库建立连接?

我的 Windows 服务使用集成身份验证并在本地系统帐户下运行,并得到以下异常。

目标主体名称不正确。无法生成 SSPI 上下文。

SQL Server 服务在域管理员用户下运行,例如“域\管理员”。如果我将 SQL Server 服务更改为在本地系统帐户下运行,则它可以修复上述错误。

谁能解释为什么会这样?我们有一个 InstallShield 向导,它在客户端安装我们的应用程序,我不知道我们如何通过向导处理这种行为。此外,更改 SQL Server 服务的用户也不现实,因为客户端可能不允许这样做。

注意:一旦我的 Windows 服务正常运行并且我恢复在管理员帐户下运行的 SQL Server,我的服务运行正常。我猜有一些权限设置为本地系统帐户。

在此之前,我运行了 Kerberos,它生成了以下脚本来运行并修复了该问题。在此之后,不需要更改 SQL Server 服务的用户。

SetSPN -d "MSSQLSvc/FQDN" "域\机器$"

SetSPN -s "MSSQLSvc/FQDN" "域\管理员"

请解释为什么会发生这种情况以及处理这种情况的最佳方法是什么?

0 投票
2 回答
6253 浏览

sql-server - 部署 SSIS -- 无法生成 SSPI 上下文

我正在尝试将 SSIS 包部署到服务器。我可以为目标服务器和该服务器上的数据库构建连接管理器。但是,尝试部署时出现错误:

在此处输入图像描述

0 投票
1 回答
1834 浏览

kerberos - Windows 身份验证 401 错误,SPN 到服务帐户

我正在苦苦挣扎,希望你能帮助我。

场景:我在测试服务器上编写了一个 Web 应用程序,一切正常。我将完成的应用程序移动到实时系统,如果在 IIS 上启用了 Windows 身份验证,我会收到 HTTP 401 错误。我通过在服务器名称上设置 SPN 解决了​​这个问题,例如

setspn -a http/contoso contoso

但它需要与我的服务帐户一起使用。我为服务帐户设置了 spn,例如:

setspn -a http/contoso.com mydomain\serviceaccount setspn -a http/contoso mydomain\serviceaccount

应用程序池作为 mydomain\serviceaccount 运行。在 Active Directory 中为此帐户设置了 Kerberos 委派。但仍然得到 401 错误。出于测试目的,服务帐户在此服务器上具有管理员角色。

0 投票
1 回答
305 浏览

authentication - Kerberos 与 DNS 的关系

Kerberos 主体通常定义为role/host@REALM. 这里的主机字段是如何使用的?

它是否强制只有特定主机才能在kinit运行时获得 Kerberos 票证?

  • 如果是,那么设置正确的 DNS 是有意义的。
  • 如果没有,主机名有什么用?

xyz/garbage@REALMkadmin.local面板中创建了一个具有名称的主体,下载了 keytab 并将其分发到不同的主机。我尝试kinit使用这个 keytab 并且它有效。

这是正确的行为吗?如何检查我的 Kerberos 是否使用 DNS?

0 投票
1 回答
254 浏览

active-directory - 具有多个服务 SPN 的客户端,是否可以故意将客户端限制为某些服务?kerberos 和/或 spnego

我已经正确配置了 Active Directory kerberos 和 SPNEGO,但始终让我感到困惑的是,如何将服务 SPN 设置为仅允许某些域用户访问某些服务。例如,

上面的 SPN 就像客户端(浏览器、Java 等)如何与它想要访问的服务通信的最常用的基本示例。

用户 A 可以使用该 SPN 访问与该 SPN 绑定的服务。这也意味着用户 B 也可以使用该 SPN 访问该服务。如果我想确保用户 B 即使知道 SPN 也无法访问该服务怎么办?到目前为止,我还没有找到限制某些域用户服务的方法

第二种情况更糟,我有两个不同的服务正在运行,并且都有自己的 SPN,如下所示

我有两个用户,user1 和 user2。我只希望 user1 访问服务 1,只希望 user2 访问服务 2。但这似乎几乎不可能这样做,因为两个客户端在同一个活动目录中都是合法的,并且可以向上述任何 SPN 请求服务票证。我真的很困惑。

我很感激任何指示或指导。

感谢您。

0 投票
0 回答
913 浏览

azure - 如何在 Azure Active Directory 中设置 SPN

我们正在尝试在只有 Azure AD 的环境中为 SQL SSRS 设置 SPN。如果我运行 SETSPN -S

MSCRMSandboxService/TESTCRM 域\crmtestserv

SETSPN -S MSCRMSandboxService/TESTCRM.symposium.org domain\crmtestserv 我总是收到我的帐户权限不足的消息,即使该帐户在 AAD DC 管理员组中也是如此。

那么在使用 Azure AD 时设置 SPN 的过程是什么?

0 投票
1 回答
1447 浏览

sql-server - 无法生成 SSPI 上下文错误,但如果指定了 SPN 服务器名称则不会

通过 VPN 连接到远程 SQL Server 时,我遇到了这个错误。

这里的问题是,只有在字符串连接上指定了 SPN 名称时,我才能进行连接,即:“Server SPN = MSSQLSvc\MyServer.foo.bar”

指定 SPN 名称有什么区别?