问题标签 [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 投票
2 回答
5919 浏览

wcf - 我需要为 net.tcp 服务设置什么 SPN?

我在运行本地 Windows 帐户的 Windows 服务中托管了一个 wcf 应用程序。我需要为此帐户设置 SPN 吗?如果是这样,SPN 需要设置的协议是什么?我知道如何通过 HTTP 为服务执行此操作,但从未为 net.tcp 执行此操作。

0 投票
3 回答
32017 浏览

sharepoint - 安装 SharePoint 时应如何使用此 SetSPN 命令

在 SharePoint 安装文档中,我说,

如果您将域用户帐户用于 SQL Server 服务帐户,则必须确保该帐户的有效服务主体名称 (SPN) 以及其数据库服务器上的 SQL Server 实例存在于其环境中。无论您对 Office SharePoint Server 2007 使用 NTLM 还是 Kerberos 身份验证,情况都是如此。

您必须使用 Setspn.exe 命令行工具为域中的该帐户配置 SPN。Setspn.exe 默认安装在运行 Windows Server 2008 的计算机上。在与用户/服务帐户加入同一域的计算机上运行以下命令。

在这种情况下,参数应该是什么?

我猜 serviceaccountname 将是 'domain\username' 不确定第一个参数应该是什么。

这是SetSPN 的 technet 链接

0 投票
2 回答
763 浏览

asp.net - 使用 AzMan 作为服务帐户运行的 IIS

出于 IP 原因,我需要将网站作为服务帐户运行,我还希望能够使用 AzMan 对用户进行身份验证/身份验证。出于某种原因,我似乎无法让这些一起工作。我已经设置了一个示例应用程序来测试基本上会吐出一些用户凭据的水域。除了 Azman 和 Web 配置设置之外,该应用程序没有集成代码(没有日志记录/DB/Webserice 交互),它是一个寻呼机。

在拒绝匿名访问的网络服务帐户下运行应用程序池,我得到:

..这一切都很好,一切正常,但是服务帐户是网络服务而不是我应该使用的服务帐户。如果我将帐户切换到服务帐户,我会弹出窗口询问用户凭据(我不想要,它应该是单点登录);但是我在之前的设置中获得了这些凭据(ct/rhyc)

网站上有一个 setspn 命令运行(显然),但我真的不知道 spn 做了什么,更不用说知道如何检查它了。此外,如果我允许匿名访问运行服务帐户的应用程序池,我会得到:

对不起,伙计们,我和 IIS n00b,这通常不是我会做的事情,但是我们的管理员似乎对 IIS 不太了解,所以留给我.. :(

0 投票
1 回答
1982 浏览

wcf - WCF - 为什么 netTCPBinding 可以在没有任何 SPN 设置的情况下与 Kerberos 身份验证一起正常工作?

在我们的一个网络中,我们正在使用 netTCPBinding。托管在作为域帐户运行的 Windows 服务中的 WCF 服务。

从事件查看器中,我可以看到我的 WCF 服务使用 Kerberos 身份验证。一切都可以“开箱即用”无缝运行,具有简单的默认配置<identity>,配置文件中没有元素,也没有任何机器的 SPN 设置,例如:

但是从多个在线参考资料中我得出的结论是 SPN 设置是必要的。不清楚,为什么在我的情况下它可以在没有这些设置的情况下工作?

期待 WCF-Security 专家的解释。

0 投票
1 回答
1220 浏览

wcf - 连接到 WCF 服务时客户端无法进行身份验证

我有一个托管在 Windows 服务中的 WCF 服务。该应用程序是一个 Intranet 应用程序,我以编程方式将服务和客户端上的绑定设置为:

服务和客户端都有配置了 SPN 的端点:

据我所知,我已经正确设置了绑定——而且我通常能够很好地连接到服务。然而,我确实遇到了这样一种情况,在运行 Windows Server 2003 R2、x64、SP2 的服务器上,当客户端尝试连接时,我立即收到以下异常:

INNEREXCEPTION——异常信息:

InvalidCredentialException:目标名称不正确或服务器已拒绝客户端凭据。

堆栈跟踪:


当我尝试从域中的另一台机器连接到服务时出现异常,但如果我连接到运行该服务的同一台机器上的服务,它工作正常。

托管服务本身作为域用户帐户运行——但我尝试将该服务作为本地系统和网络服务运行,但无济于事。我检查了服务器的本地安全策略,没有发现任何问题(即“从网络访问这台计算机”包括“所有人”)。

任何人都知道什么可以解决这个问题?

我想知道我是否需要在 Active Directory 中针对服务的 SPN 做一些事情?我已经阅读了一些关于使用 setspn.exe 注册或刷新 SPN 的内容,但我以前不需要这样做。为什么这将与其他配置一起使用,而不是上面的配置?

0 投票
1 回答
1971 浏览

kerberos - 对 Kerberos、委派和 SPN 的困惑

我正在尝试编写一个执行 Kerberos 委托的概念验证应用程序。我已经编写了所有代码,并且它似乎可以正常工作(我的身份验证很好),但是生成的安全上下文没有设置 ISC_REQ_DELEGATE 标志。

所以我在想也许端点之一(客户端或服务器)被禁止委托。但是,我没有针对 SPN 进行身份验证。只有一个域用户对抗另一个域用户。作为 SPN,InitializeSecurityContext()我将传递“someuser@mydomain.lan”(这是运行服务器应用程序的用户帐户)。据我了解,域用户默认启用委派。无论如何,我要求管理员检查,并且“帐户敏感且不能委派”复选框已关闭。

我知道如果我的服务器作为网络服务运行并且我使用 SPN 连接到它,那么我需要 AD 中的计算机帐户选中“信任计算机以进行委派”复选框(默认情况下关闭),但是……事实并非如此,对吧?或者是吗?

另外 - 当计算机帐户中的复选框被设置时,更改会立即发生,还是我必须重新启动服务器 PC 或等待一段时间?

0 投票
1 回答
2307 浏览

wcf - 预期身份 upn 作为网络服务连接到服务,

我们有一个 Web 应用程序,作为“网络服务”在应用程序池中运行。Web 应用程序连接到另一个 Web 服务器上的服务 (.svc)。另一个 Web 服务器也将服务托管为“网络服务”。我相信这是默认设置。

以下端点在其他任何地方运行时都可以完美运行。

不幸的是,当从网站执行时,我们收到以下错误。

有任何想法吗?我已经尝试在具有完全相同配置的 Web 服务器机器上将其作为本地系统运行,并且它运行良好。

它与IIS有关吗?

问候克雷格。

0 投票
1 回答
355 浏览

sharepoint - 我是否需要为在同一测试 SharePoint 服务器上运行的所有服务配置 SPN?

如果我有一个没有标头的 SharePoint 服务器(用于测试)并且我的客户端应用程序只需要访问配置了 Kerberos 的 Web 应用程序,我已经为该 Web 应用程序配置了域用户 (SPN) 的应用程序池,我真的需要吗?为所有服务(例如 SQL 服务器、MOSS 管理员、农场等)配置域用户 (SPN),即使它们都运行在配置有网络服务帐户的同一个机器上?

我之所以问是因为如果我使用 fiddler 来监视 HTTP 流量,我会看到它协商以获取 Kerberos 票证,即我假设一切正常?身份验证格式:不存在代理授权标头。 授权标头(协商)似乎包含 Kerberos 票证: 原始格式:授权:协商 YIIFoAYGKwYBBQUCoIIFlDCCB...</p>

提前致谢, 弗兰克

0 投票
2 回答
1811 浏览

wcf - 在 NetNamedPipe 服务端点的端点地址上设置 SPN

如其他地方所述,我收到“net.pipe://localhost 没有端点监听”错误,但我似乎找不到真正的答案。

这是问题的一个很好的标识符:http: //kennyw.com/indigo/102

使用 WCF 时,Windows 身份验证是通过 SSPI-Negotiate 执行的,在大多数情况下会选择 Kerberos 作为实际的身份验证机制。但是,如果传递给 SSPI 的目标 SPN 是本地计算机帐户的格式正确的 SPN(例如主机/[dns 机器名称]),则协商将使用 NTLM(环回优化)并且访问令牌将没有网络 SID(并且因此将可与 NetNamedPipes 一起使用)。

但它并没有告诉我如何解决这个问题。我正在以编程方式创建我的端点。

我猜我的问题出在 CreateSpnIdentity 但我不确定要使用什么值。

附加信息: 详细说明这一点以获得更多背景信息。Wcf 服务托管为在 NetworkService 帐户下运行的 Windows 服务(我尝试过本地系统)。该服务是使用默认的 NetNamedPipeBinding 构造函数创建的:

我创建了一个使用此服务的 SharePoint Webpart。更重要的是,如果 SharePoint 网站设置为基于表单的身份验证,或者在 Windows 身份验证下的 url 中仅使用机器名称,则没有问题。只有当 Windows 身份验证下的 url 使用完全限定的机器名称时,我才会收到上述错误。

我很确定这与文章中描述的 NTLM Kerberos 问题有关,但我不确定如何解决它。

0 投票
1 回答
5002 浏览

iis - 如何将网络服务注册为 SPN?

我今天早些时候将域帐户注册为 HTTP SPN,然后才意识到它会破坏我的网络服务应用程序池,因此我随后删除了域帐户的这些注册。

我想我现在需要将网络服务重新添加为 SPN,以使这些应用程序池再次用于 Windows 身份验证。这样做的语法是什么?我无法弄清楚在 setspn 语法中实际调用的网络服务帐户是什么。

谢谢!