- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到“net.pipe://localhost 没有端点监听”错误,如其他地方所述,但我似乎找不到真正的答案。
这是问题的一个很好的标识: http://kennyw.com/indigo/102
When using WCF, Windows authentication is performed through SSPI-Negotiate, which in most cases will select Kerberos as the actual authentication mechanism. However, if the target SPN passed to SSPI is a well formed SPN for the local computer account (e.g. host/[dns machine name]) then Negotiate will use NTLM (loopback optimization) and the access token will not have the Network SID (and therefore will be usable with NetNamedPipes).
但它没有告诉我如何解决该问题。我正在以编程方式创建端点。
var binding = new NetNamedPipeBinding();
binding.Security.Mode = NetNamedPipeSecurityMode.Transport;
binding.Security.Transport.ProtectionLevel = ProtectionLevel.EncryptAndSign;
var id = EndpointIdentity.CreateSpnIdentity("host/" + Environment.MachineName);
var endpointAddress = new EndpointAddress(new Uri(serviceClientUrl), id);
var client = new ServiceClient(binding, endpointAddress);
我猜测我的问题出在 CreateSpnIdentity 中,但我不确定要使用什么值。
其他信息:详细说明这一点以获得更多背景。 Wcf 服务作为 Windows 服务托管在 NetworkService 帐户下运行(我尝试过本地系统)。该服务是使用默认的 NetNamedPipeBinding 构造函数创建的:
host.AddServiceEndpoint(typeof(IService), new NetNamedPipeBinding(), "ServiceName");
我创建了一个使用此服务的 SharePoint Web 部件。更重要的是,如果 SharePoint 站点设置为基于表单的身份验证,或者在 Windows 身份验证下的 URL 中仅使用计算机名称,则不会出现任何问题。 仅如果 Windows 身份验证下的 url 使用完全限定的计算机名称,我会收到上述错误。
我很确定这与文章中描述的 NTLM Kerberos 问题有关,但我不确定如何解决它。
最佳答案
在客户端设置端点标识不会对您有帮助,因为问题在于执行客户端代码的安全上下文,而不是端点的配置。如KennyW explains ,如果您使用计算机的完整域名访问 SharePoint 应用程序,则将通过 Kerberos 获取 Web 服务器进程中的模拟 token (在 Windows 身份验证下提供您的 SharePoint 用户身份),并具有 NETWORK USERS 组的成员身份。如果您仅使用计算机名称,Kenny 提到的优化会通过 NTLM 为您获取登录 token ,该 token 不在 NETWORK USERS 组中,因此不会被 WCF 放置在管道和共享内存对象上的 ACL 拒绝访问服务器在其中发布实际的管道名称。
错误There was no endpoint Listening at net.pipe://localhost...
并不一定意味着没有WCF服务在这样的命名管道端点上监听:它也可以(在这种情况下确实)意味着虽然有一个,但您没有足够的访问权限来了解它,因为您有远程登录。
关于wcf - 在 NetNamedPipe 服务端点的端点地址上设置 SPN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729346/
首先,使用 setspn 命令为用户注册服务主体名称。 setspn -a CS/dummy@abc.com dummyuser setspn -l dummyuser 给出输出为 CS/dummy@
当我使用服务主体使用 az 登录时 例如az login --service-principal -u“12121”-p“1212”--tenant“12121” 它将显示它有权访问的所有订阅列表 [
我有一个队列,我想使用 SJF 算法(也称为 SPN)插入该队列(接下来是最短流程)我使用一个函数来估计“工作”。我想要推送的元素是结构,我使用该结构的参数获得“工作”。例如: typedef str
据我了解, SPN 是 Windows 服务的身份验证工具。 Kerberos 是一个用户认证服务 SPNEGO-GSSAPI 是第三方 API能够使用这些服务。 SSPI:是发送的中立层从 SPNE
我现在正在使用 GSSAPI 对跨平台应用程序进行 Kerberized。虽然我不太清楚 UPN 和 SPN 之间的区别。 开发环境是 CentOS 6.4 上的 Samba4 AD DC 服务器,带
我收到“net.pipe://localhost 没有端点监听”错误,如其他地方所述,但我似乎找不到真正的答案。 这是问题的一个很好的标识: http://kennyw.com/indigo/102
我想了解 Azure AD 上下文中 SPN 和 UPN 之间的区别。我的理解是在Azure AD中建立身份有三种方式 用户输入用户名和密码来建立身份 使用 ClientId 和 Secret Key
我目前正在尝试使用 SPNEGO library 将 Java 客户端实现到受 SPNEGO 保护的 Web 服务来自 SourceForge(服务器使用相同的库)。我无法让它成功验证,我的请求总是以
我在运行本地 Windows 帐户的 Windows 服务中托管了一个 wcf 应用程序。我需要为此帐户设置 SPN 吗?如果是这样,SPN 需要设置的协议(protocol)是什么?我知道如何通过
我需要通过服务主体访问 Azure KeyVault 的帮助。我当前有两个订阅需要通信并访问另一个订阅的 Key Vault,但为此我需要通过 SPN 进行连接。我查看了 Get-AzureRmKey
我在 VSTS 中使用以下 Azure Powershell 命令。 (Get-AzureKeyVaultSecret -vaultName "debugkv" -name "CoreConfig-S
目前,我的 GSS 演示应用程序(在服务器端)收到 KrbException:解密字段的完整性检查失败 (31)。现在我正在寻找这个的原因。我怀疑,这是因为 客户端和服务器应用程序在同一台机器上运行(
我正在尝试在 Windows Server 2008 上配置 Tomcat 6 以使用识别多个 Kerberos 票证,但运气不佳。我有一个包含多个 SPN 的 key 表,但似乎只能在 spnego
我刚刚完成在 AD 中使用 SPN 注册 SQL Server 2008 R2。我可以使用 SQLNCLI10.1 通过 OLEDB 使用以下关键字进行连接: Server SPN=MSSQLSvc/
我的目标是使用 SASL 和来自 Ubuntu 终端的 DIGEST-MD5 机制来验证“Active Directory 的用户”。 我输入了以下命令: ldapsearch -H ldap://t
我使用 DCOM 在 Windows 网络上提供各种应用程序服务,使用 Kerberos 处理身份验证。该系统通常运行良好,但我在从单独的(受信任的)域访问服务时遇到了问题。特别是,该服务无法回调客户
在我们的一个网络中,我们正在使用 netTCPBinding。托管在作为域帐户运行的 Windows 服务中的 WCF 服务。 从事件查看器中,我可以看到我的 WCF 服务使用 Kerberos 身份
我已经设置了一个具有读取和写入服务主体名称权限的 SQL Server 服务帐户。当 SQL Server 启动时,我在日志中收到预期消息,显示服务帐户已成功注册 SPN: The SQL Serve
有没有人有幸在 Windows 域上查询/更改 SPN? Google 上的大多数点击都与 SQL 相关:我自己找不到任何关于如何执行此操作的信息。最重要的事情是查询 SPN 配置并检查重复项。 根据
您好,我正在 Linux 环境中使用 Centrify 配置 Kerberos。我对 Windows 更加熟悉。 我知道在 Linux 中使用 MIT Kerberos,我可以使用 SPN 作为 UP
我是一名优秀的程序员,十分优秀!