问题标签 [sspi]

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 回答
1075 浏览

c# - Windows 7 上的 SSL 客户端 SSPI 错误

我用 C#.NET Win-Forms 编写了一个 SSL 客户端。我将我的证书(公钥)添加到系统根存储(通过 .NET 代码或通过 Internet Explorer 手动,两者都有效)并且它在 Windows XP 上运行良好,但在 Windows 7 上尝试AuthenticateAsClient()时出现以下AuthenticationException: “客户端和服务器无法通信,因为它们没有共同的算法

Microsoft 支持列出一些注册表项的文档,并说明在 Windows 7 中默认启用(新的强项)或禁用(旧的过时的)的协议/密码/算法,因此我们可以通过编辑注册表来启用/禁用它们。这是这些链接:

如何限制在 Schannel.dll 中使用某些加密算法和协议 TLS/SSL 加密增强

就我不擅长密码学而言,我无法理解哪个注册表项与我的案例匹配。这是我用作客户端的 X509Certificate 对象的属性:

SignatureAlgorithm.FriendlyName:“ sha1RSA
版本:3

有人可以帮忙吗?

0 投票
1 回答
3450 浏览

postgresql - 使用集成安全连接到 PostgreSQL 或回退到公共登录

我正在使用 Npgsql,我想知道是否有一种方法可以使用自动回退到公共登录的集成安全性连接到 PostgreSQL 服务器?或者也许还有另一种方法可以做我想要实现的目标。

我有一个使用 Windows 身份验证的 ASP.NET 网站 (IIS7.5),并且我已将 PostgreSQL 配置为允许通过 SSPI 访问,只要数据库中有一个名称正确的角色,它就可以正常工作。该网站可供 Intranet 上的每个人查看,但有些用户有一些其他人不应该具备的额外能力(或可以查看额外数据)。

目前,我正在使用以下内容:

这工作正常,除了每次回退到“www-read”角色时,它都会添加一个关键日志条目,说明存在身份验证错误。我能看到的唯一方法总是通过 www-read 连接并查询是否存在合适的集成安全角色并重新连接,但这似乎比上述更麻烦。

0 投票
2 回答
32078 浏览

c# - SSLStream:“对 SSPI 的调用失败”异常


我有一个奇怪的问题:我在基于 .net2 的 c# 中编写了一个服务器和客户端,它们通过 .net 2 SslStream 聊天。Cl 和 S 之间有 1 个连接用于发送命令,cl 和 s 之间有一个用于发送文件的连接。
本地一切都在我的Windows机器上运行良好。但是,如果我在我的 Linux 服务器上运行服务器(使用单声道),则在某些情况下共享文件不起作用。我有不同的文件类别,在 3 个中的 2 个中,它的工作,在第三个中,服务器挂起SSLStream.AuthenticateAsServer(....);并且客户端抛出一个异常,并显示消息“对 SSPI 的调用失败,请参阅内部异常”。内部异常是 System.ComponentModel.Win32Exception,带有消息“收到的消息意外或格式错误。”

我认为我在 linux 上运行它的方式可能是错误的。实际上我使用 VS2012 进行本地开发,当我想把它放在服务器上时,我通过 VS 上传编译的 exe 并使用mono server.exe它来启动它。但是我也尝试在 Windows 上使用 monodevelop 来编译它(从 monodevelop 编译的东西也可以在本地工作)并在 linux 服务器上使用它,但这以相同的结果结束。

任何帮助将不胜感激。



这是我的缩短代码:

客户:

服务器:

0 投票
1 回答
348 浏览

sql-server - 无法连接到 SQL Server 2008 sspi

我在本地网络的机器上运行了一个 SQL 服务器。在过去的 3 个月里,我一直通过 Windows 身份验证连接到它。只有 1 个其他用户(Sa)并且他在过去的一两年内一直能够连接,没有问题。

现在这周我们都收到了 SSPI 错误,我们都无法连接。我们不记得sa登录了,因为我们都一直在使用 Windows 身份验证。

我可以很好地登录到 Windows 身份验证,重新启动我的机器但仍然无法访问服务器。我们得到同样的错误,sspi。

有任何想法吗?

0 投票
1 回答
780 浏览

http - AcceptSecurityContext 随机 SEC_E_LOGON_DENIED

我正在尝试在基于 http.sys 的服务器中实现单点登录(使用 IOCP),并且我遇到了 AcceptSecurityContext 的奇怪问题,它会随机失败并显示 SEC_E_LOGON_DENIED。

从同一台客户端机器连接到同一台服务器机器时(大约 50% 的时间),即使只有一个客户端只有一个 http 连接,我也会随机出现故障。两台机器都在同一个域中,它们都不是域控制器。

失败的调用是挑战-响应序列中的第二个(也是最后一个)调用,第一个总是成功的。

当我在 AcceptSecurityContext 调用之前在 IDE 中有一个断点时(没有其他任何更改),身份验证总是成功(据我测试)。

怀疑时间问题,我在通话前放置了一个 Sleep() ,但这并没有提高成功率。

此外,当从运行 http 服务器的同一台计算机连接时,身份验证始终成功。

无论客户端浏览器(IE 和 Chrome)如何,行为都是相同的。

有任何想法吗?

0 投票
1 回答
1342 浏览

c# - 使用 C# API 通过 SSPI 向 vSphere 进行身份验证

我正在使用 C# 库连接到 vSphere (VimClient)。我使用这种方法登录:

我登录的用户是进程使用的当前用户。有没有办法可以使用当前登录的用户进行身份验证?

该线程似乎提供了建议,但我在那里尝试的没有任何效果:http: //communities.vmware.com/message/1125103

这可能是因为我不熟悉 .NET 中的 SSPI 实现。

0 投票
4 回答
17615 浏览

wcf-client - SSPI:用户主体名称 WCF 客户端

我正在尝试访问 wcf 客户端。我知道人们现在正在从中获取信息,所以我知道它有效。我的问题是我似乎无法克服它。该服务是相互认证的服务。我在本地计算机上的个人商店中有适当的证书。即使这样,我也会遇到以下异常:

深入研究异常,我看到了这一点:

我该如何解决这个问题?我是否需要模拟运行应用程序池的用户?我是否需要添加 Identity\ServicePrincipleName 或 Identity\UserPrincipleName?有没有人遇到过类似的问题?

0 投票
1 回答
1294 浏览

ruby - 将 SSPI 与 Ruby TinyTDS 一起使用 - 可能吗?

在尝试使用 Ruby 连接到 SQLServer 数据库后,我终于发现了TinyTDS,它太棒了。

但是,它需要用户名和密码才能与数据库通信。在过去的 C# 测试中,我们使用 SSPI 来提供此功能,以便任何测试人员都可以获取脚本并运行它,并且它将使用他们的 Windows 身份验证详细信息。

我找不到使用 TDS 的方法(开始怀疑当前版本不可能)并希望有人可能证明我错了,或者有其他建议?

干杯。

0 投票
4 回答
8277 浏览

java - 人们如何让 Java SPNEGO 客户端在 Windows 中工作?

为了在 Windows 上使用 Java 进行客户端 HTTP SPNEGO 身份验证,您需要设置 Windows 注册表项allowtgtsessionkey。这是有据可查的。我不明白的是人们如何解决这个问题?大多数公司网站永远不会接受为了单个软件而在 Windows 中更改此注册表项。如果需要在组织中的每个工作站上进行更改,还要考虑一下麻烦。但这只是理论,因为到目前为止我无法说服我们的任何客户更改此注册表项。

我不怪他们。大多数公司管理员会认为这是一种放松安全措施,因此会反对。

我读过这篇文章: Java 或命令行实用程序中是否有办法使用本机 SSPI API 获取服务的 Kerberos 票证?

但它现在已经很旧了。

所以我真的,真的不明白人们如何让 Windows + Java 客户端 + Kerberos 在大学环境、家庭用户等之外的任何地方工作。

我从企业管理员那里得到的问题是“当 IE 和 Firefox 等应用程序在不设置此键的情况下执行 SPNEGO没有问题时,为什么我们需要设置此注册表键?”。嗯,我知道答案是什么。这是因为(很可能)IE 和 Firefox 等应用程序基于 Windows 原生 GSS API (SSPI),而 Sun 的 Java 使用自己的实现。

我假设使用类似WAFFLE的东西可以解决问题,但我更喜欢纯 Java 解决方案。我还假设使用基于 Java 的解决方案(例如 Spring security 或 Apache HttpClient)将无济于事,因为它们都会遇到这个问题。

任何帮助或指示将不胜感激。

更新1

我发现在 Oracle 的错误数据库中有一个RFE。Oracle 员工也提交了一个补丁,并在 JDK 邮件列表中讨论了这个特性。除了据我所知,这在当前的 Java 7 中是不可用的,甚至不是实验性的,这并没有让我变得更聪明。正确的?

更新2

这个问题现在在 OpenJDK 安全开发邮件列表中再次出现。

0 投票
1 回答
1108 浏览

c# - 推送通知未出现

我似乎无法让 MoonAPNS 工作。我知道在同一个问题上有几个问题,例如这个。我已按照有关创建 p12 证书的教程进行操作,并成功地将其与 php 脚本一起使用以向设备发送通知,但我不知道如何将其与 MoonAPNS 一起使用。我还在 Windows 中安装了证书。调试似乎表明正在发送通知,但 iPad 上没有显示任何内容。

这是我的代码: