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

c# - 如何在 .NET SslStream 中为客户端身份验证指定接受的证书

我正在尝试使用 .Net System.Security.SslStream 类来处理带有客户端身份验证的 SSL/TLS 流的服务器端。

要执行握手,我使用以下代码:

不幸的是,这会导致 SslStream 传输一个 CertificateRequest,其中包含我的 CryptoAPI Trusted Root Store 中所有证书的主题名。

我希望能够覆盖它。我不能要求用户从受信任的根存储中安装或删除证书。

看起来 SslStream 在下面使用 SSPI/SecureChannel,所以如果有人知道如何使用该 API 进行等效操作,那也会很有帮助。

有任何想法吗?

0 投票
1 回答
416 浏览

windows - Novell client and windows SSO

Does the novell gina install a specific security provider that can be used via SSPI? Does it have to called out specifically or is SPNEGO good enough? Will that support single sign on if the novell gina is installed on the remote server?

0 投票
1 回答
1615 浏览

windows-vista - 在带有 UAC 的 Vista 上使用带有 Windows AccessCheck() 的 SSPI (NTLM) Api

摘要 客户端 (Windows XP SP3) 服务器 (Windows Vista Business SP1) / 作为 LocalSystem 服务运行

Api 序列客户端 - AcquireCredentialsHandle 客户端 - Initializesecuritycontext 服务器 - Acquirecredentialhandle 服务器 - AcceptSecurityContext 客户端/服务器 - CompleteAuthnToken 服务器 - ImpersonateSecurityContext 服务器 - AccessCheckAndAuditAlarm (MAXIMUM_allowed) 服务器 - 然后我将请求的访问与允许的访问进行比较。

我对使用 createprivateobjectsecurityex 创建的私有安全对象调用访问检查。打开 Uac 后,我从 accesscheck 中获得了成功,但没有任何特权被保留。关闭 uac 后,我可以通过 GantedAccess 参数中的所有权限获得成功

详细信息 该应用程序有两个组件,一个客户端和一个服务器。它使用 tcp 通过不安全的网络进行通信。为了验证传入连接,我使用上面列出的 sspi api,并模拟调用用户。一旦调用用户被模拟,我使用 Accesscheckandauditalarm,如果失败,我将恢复为仅 accesscheck。打开 UAC 后,我从 accesscheckandauditalarm 获得了成功,但所有访问权限都不在 grandedaccess 参数中,但如果 uac 关闭,它会按预期工作。我检查了服务器进程的完整性级别并将其设置为高,我查看了用于模拟调用用户的模拟令牌的完整性级别并将其设置为中。我尝试将调用用户的完整性级别设置为高,成功,但访问检查仍然返回不正确的结果。想我可能有一个链接令牌,我尝试调用 GetTOkenInformation(TokenLInkedToken) 链接令牌,结果为 0x520。任何关于我下一步可能尝试的想法将不胜感激。

验证后的代码。

0 投票
1 回答
817 浏览

python - 使用 SSPI 通过 Apache 服务访问 CVS

我正在使用 mod_python、Python 2.5 和 Django 运行 Apache 服务器 (v2.2.10)。我有一个小型 Web 应用程序,它将显示我们在 CVS 中拥有的当前项目,并允许用户构建不同项目(构建检查项目,并复制某些文件并去除源代码)。

在 Django 开发服务器上,一切正常。我可以看到 cvs 中的项目列表、签出等。在生产服务器(Apache 的服务器)上,我收到以下错误:

[8009030d] 无法识别提供给包的凭据

我正在尝试使用 SSPI 登录到 CVS 服务器。在 shell 中输入相同的命令将正确执行。

这是我正在使用的代码:

我已经尝试了许多不同的变化,但我似乎无法让它发挥作用。现在我相信 Apache 是罪魁祸首。

任何帮助,将不胜感激

0 投票
2 回答
564 浏览

c++ - 引用了未解析的外部符号 CompleteAuthToken

在将桌面应用程序移植到 windows mobile 时,我遇到了以下错误:

错误 LNK2019:函数中引用了无法解析的外部符号 CompleteAuthToken

阅读 MSDN 它告诉我,Windows CE 2.10 及更高版本支持 CompleteAuthToken,我应该链接到 Secur32.lib,但添加该库并不能修复未解决的符号错误。有任何想法吗?

注意:我使用的是 Visual Studio 2008 + Windows Mobile 6.0 SDK。

0 投票
2 回答
2221 浏览

sql-server - SQL Server 身份验证的 SSPI 错误?

我们有几个使用 SQL Server 身份验证的旧 ASP 和 PHP Web 应用程序。周期性地,所有应用程序都无法连接到我们的 SQL Server 2000 数据库服务器,从而导致访问被拒绝。

对应于大致相同的时间,我们得到

SQLServer 2000 服务器上的错误。

这是奇怪的部分 - 重新启动Web服务器可以解决问题。重新启动数据库服务器没有任何效果。

这对我来说毫无意义——我不认为 SSPI 以任何方式涉及 SQL Server 身份验证。

有任何想法吗?

编辑:

一些额外的细节:

Web 服务器位于 DMZ 中。Web 服务器上的 hosts 文件有一个数据库服务器条目(并且 IP 地址是正确的),因此 Web 服务器(至少理论上)甚至不应该通过 DNS 连接到数据库服务器。

这似乎不是防火墙问题。

0 投票
2 回答
3025 浏览

.net - .Net 2.0 Web 服务中的 SSPI 连接

我正在尝试测试我在 C# 中创建的 .Net 2.0 Web 服务。我们的其中一台服务器在 windows 2000 上,目前只能支持 .Net 2.0 。我可以在我的机器上本地测试它,它工作正常,但是当我将它移动到目标服务器进行生产时,它会产生错误。

我希望它使用 Windows 身份验证,并在 web.config 中对其进行定义

我收到的错误如下:

System.Data.SqlClient.SqlException:用户“”登录失败。用户未与受信任的 SQL Server 连接关联。

当我尝试在目标服务器上测试此 Web 服务(在该服务器上本地运行)时,会发生这种情况。

如何将活动目录用户名与 Web 服务正在运行的服务器/位置相关联(我认为这是我需要做的?)

该服务器目前可以通过经典的 ASP 和 ColdFusion 连接到 MSSQL 2005。

0 投票
2 回答
2245 浏览

sql-server - 来自不受信任域的集成 SQL 服务器身份验证

我真的想从 C#/.NET 应用程序中使用 SQL-server,而不使用 SQL-Server 帐户或将受影响的计算机添加到同一个域或任何域,或者使用与域相同的登录名。

没有办法吗?有人尝试使用 SSPI 的 MONO 实现来做到这一点吗?

0 投票
2 回答
4715 浏览

apache - 如何为 1 个 Subversion 存储库设置多种身份验证类型?

我们有一个使用 Apache 2.0 进行身份验证的 SVN 1.4 存储库;具体来说,用于mod-auth-sspi向我们的 Windows 域进行身份验证的模块。的相关部分httpd.conf如下所示:

我们还有一个自动构建服务器,它需要从 SVN 获取源代码并构建它。自然,这需要构建服务器将有效的域凭据传递给 SVN/Apache。

今天,我们通过使用我自己的域凭据来做到这一点。这不是一个好主意,因为当我的域密码过期时,我可能会发生一些不好的事情或者我可能正在度假——整个自动构建过程将冻结。在域上为自动构建服务器创建一个特殊帐户目前不是一个选项,因为我在一家大公司工作,而且做这样的事情的繁文缛节是禁止的。

我想做的是将现有的 SSPI 身份验证方案保持不变,但在托管 SVN 的机器上创建一个本地帐户,并让自动构建服务器使用该本地帐户进行身份验证。换句话说,一个 SVN 存储库有两种不同的身份验证路径(SSPI + 本地帐户)。

那可能吗?我该怎么做?

0 投票
4 回答
6421 浏览

c++ - 用于网络模拟的 LogonUser 的替代方案 (C++)

是否有任何替代 LogonUser 和模拟给定帐户以访问网络资源的方法?我正在寻找一种模拟方法,它可以让我连接到外国域中的机器(或同样的工作组机器)。

对于初始数据,我有:机器名、用户名(或域\用户名)、明文密码。

我知道有一种方法可以使用 WNetAddConnection 与 \\machinename\ipc$ 建立连接,然后大多数网络功能将在该帐户的上下文中运行,但是 win2008 添加了另一个转折点,并且某些功能仍然使用该帐户,该线程正在运行.

我也知道,有一些方法可以使用 SSPI 获取模拟令牌。有没有人尝试过这些令牌,它们是否适合访问共享、SCM、远程注册表和其他东西?是什么 WNetAddConnection 正在使用?

编辑:澄清一下,我不能使用 LogonUser 的原因是因为我需要在不受信任的域或工作组中模拟用户

EDIT2:另一个澄清:我试图实现的项目类似于 psexec,例如:

  • 程序不应修改主机或活动目录配置(例如:创建临时本地用户等)。此外,不能假设它是否在 DC 上运行
  • 不能假设远程主机上预装了哪些软件,唯一的条件是目标上启用了 Windows 文件共享
  • 已知帐户/密码在目标上工作,但目标机器可能在本地域、外部域中,根本不在域中。

EDIT3:我真的很想听到更多关于 SSPI InitializeSecurityContext / AcquireCredentialsHandle 选项的信息。有没有人一直在广泛使用这个 API?是否可以使用模拟返回的令牌,以便线程可以访问网络共享和复制文件等?有人可以发布一个工作代码片段吗?

EDIT4:感谢 Marsh Ray,问题得到了解决。如果有人想查看概念验证代码,就在这里