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

windows - SSPI Schannel API - 可以重复使用凭据句柄吗?

我目前正在向 libcurl 添加 SSPI Schannel API 支持,以便可以在 Windows 上使用启用 SSL 的协议,而无需任何外部依赖,例如 OpenSSL。

我已经有一个有效的 SSL/TLS 实现,但我有一个非常具体的问题,即重用由函数AcquireCredentialsHandle返回的凭据句柄。

通过创建新句柄、重新使用现有句柄并将其多次传递给InitializeSecurityContext来重复使用 SSL/TLS 会话是否正确且可能?

我在 libcurl 的 Schannel 模块上的工作可以在这里找到,尝试重用的实验版本可以在这里找到。

我将不胜感激有关此问题的任何提示或反馈。那么,凭证句柄可以以这种方式重复使用吗?它是正确的吗?

提前致谢!

0 投票
0 回答
581 浏览

c++ - Win SSPI(Schannel) - 谁负责分配和清理内存?

我想通过 Win SSPI(Schannel) 接口建立 TLS 连接。
我正处于加密 - 解密过程的阶段,我发现自己真的很困惑 -谁负责管理内存分配?:

  1. 当我想向rempte方发送数据包时,我必须先通过调用EncryptMessage函数来加密数据,该函数包含4个缓冲区:缓冲区到标题,缓冲区到数据应该加密,缓冲区到拖车,和类型为 SECBUFFER_EMPTY 的第四个缓冲区(我必须说我不明白它的用途,但在MSDN中被写入添加它。)。现在调用 EncryptMessage 函数时,加密数据在哪里?它会覆盖我作为输入缓冲区发送的数据吗?如果是这样,如果加密数据与我发送的原始缓冲区的大小相比太大,会发生什么?EncrypteMessage 是否分配额外的内存并将其加入原始缓冲区?
  2. 当我收到数据时,我还收到了一个加密字节流,我必须将加密数据发送到 DecryptMessage 函数。我的问题又是 - SSPI 在哪里找到解密的数据?如果解密数据比原始流短,谁负责释放分配的剩余字节?
  3. 当我解密消息时,该函数有时会返回 SECBUFFER_EXTRA 类型的缓冲区。在MSDN中写了这个额外缓冲区的含义。再一次,我不完全明白谁在分配这个内存位置,它只是指向我发送的原始流中任何位置的指针吗?

我不确定是否只有熟悉 SSPI 的人才能回答我,也许是熟悉 Microsoft 实现的人。
我将不胜感激任何答案,甚至部分答案将向我解释 SSPI 管理的内部流程是什么。
谢谢!

0 投票
1 回答
1630 浏览

git - 使用 windows auth 和登录用户在 windows 上访问 Git 服务器

我已经在 IIS (gitweb.codeplex.com) 上成功安装了 Smart-HTTP Git 服务器并使用 Windows 身份验证配置了访问权限,但是每次从客户端访问服务器存储库都需要输入用户名/密码。

是否可以使用当前登录的用户凭据配置访问权限 - 类似于 :sspi: in cvsnt?(必要时可以切换到另一台服务器)

0 投票
3 回答
1260 浏览

sql-server - I/O 错误:SSO 失败:SSPI 未初始化

我正在使用 pentaho 数据集成 4.1 (Kettle) 来构建 ETL 系统。我的客户需要使用窗口身份验证连接到数据库(MS SQL Server),我知道 Kettle 支持它。但是,当我运行我的 Kettle 工作时,它会引发异常

"I/O Error: SSO Failed: SSPI Not Initialized".

从论坛上的一篇文章中,我将库复制sqljdbc_auth.dlljre/bin文件夹中。结果还不错,可以使用window认证连接SQL server。但是这个功能并不稳定,我的意思是有时它运行良好,有时它会抛出异常

"I/O Error: SSO Failed: SSPI Not Initialized".

请告诉我如何解决此错误。

谢谢你。

0 投票
0 回答
1490 浏览

ios - 对 SSPI 的调用失败,请参阅内部异常。上下文已过期,无法再使用

对 SSPI 的调用失败,请参阅内部异常。上下文已过期,无法再使用。

这个错误是什么意思?

我的 MDM 服务器上有一个证书,该设备从 SCEP 获取其身份证书。我正在尝试使用 MDM 和 SCEP 安装配置文件,但无济于事。控制台告诉我 MDM 服务器的证书无效。

我觉得奇怪的是设备登录到 MDM URL 并且我执行了“authenticateasserver”并且它工作正常,流已经过身份验证。一旦我单击安装 MDM 的配置文件,我就会收到上述错误。

0 投票
0 回答
483 浏览

winapi - 如何解释 AcquireCredentialsHandle (Kerberos) 返回的过期时间?

Windows SSPI 调用AcquireCredentialsHandle返回一个时间戳,指示凭据句柄何时到期。文档似乎在说TimeStamp结构应该与结构具有相同的格式FILETIME。但是,当我将此函数与“Kerberos”包一起使用时,将结果视为FILETIME

在我的系统上,打印:

如果不是FILETIME,那是什么?

0 投票
0 回答
638 浏览

c++ - SSPI - 禁用 AES256 算法

我想使用 SSPI(Schannel) 建立安全连接。
我不能用作 AES256 来加密套件。正如我在这里看到的,我必须定义自己的算法列表来禁用 AES256 密码套件,我将 ALG_ID 参数设置为 CALG_RSA_KEYX 芯片,但我在 Wireshark 捕获中看到我的应用程序仍然选择“TLS_RSA_WITH_AES_256_CBC_SHA”。

下面的代码片段显示了如何创建安全上下文。此代码取自此处,我将其更改为采用算法列表,而不是使用默认的操作系统算法:

有人可以解释一下为什么吗?为了禁用 AES_256,我该怎么做?

提前致谢。

0 投票
1 回答
1899 浏览

c++ - 寻找 Platform SDK SSPI(Schannel) 示例 c++

我想看一个演示如何将 SSPI 与 Schannel 一起使用的 Microsoft 示例。
正如我在这里看到的那样,有一个这样的样本,但我找不到它:(
有人可以帮我找到它吗?

提前致谢!

0 投票
1 回答
701 浏览

c# - C# 针对远程 kerberos kdc 进行身份验证

背景:假设您正在编写一个为大学生提供服务的程序,并且您需要确保只有特定大学的学生可以访问它。与大多数大学一样,该大学为其学生提供 kerberos 登录。

如上文 c# 中所述,如何针对预先存在的远程 kerberos v5 kdc 对用户进行身份验证?目标是简单地进行身份验证(通过/失败),我不希望存储任何票证/令牌。

我使用JAAS(Java 身份验证和授权服务)在 Java 中做了同样的事情,而且非常简单。

SSPI 是 .NET 中的等价物吗?我如何使用它来完成我所需要的?我似乎找不到执行此操作的代码示例。

注意:我已经查看了@chimanrao 的问题,并且链接没有对我进行足够详细的讨论。此外,关于这个主题的mdsn 文章非常不完整,它所说的一些类不存在。

0 投票
3 回答
1567 浏览

svn - jenkins用户中域和用户名之间的分隔符有时是\,有时是_为什么?

我在詹金斯和发送邮件时看到了一些奇怪的事情。对于某些用户,邮件被发送到 DOMAIN_username@company.com - 有些很好。

Jenkins 使用 AD 进行身份验证 - 大多数用户实际上还没有登录到 jenkins,用户名来自 svn。我的 svn 服务器是使用 sspi 进行身份验证的 windows2008 服务器:

最好的看它的地方是http://jenkins/job/job-name/1234/api/json看看罪魁祸首

对 bobama 来说一切正常,但请注意 asmith - 电子邮件将发送至 DOMAIN_asmith@company.com(不会发送)

如果我查看用户配置页面http://jenkins/user/DOMAIN_asmith/configure

我看到他的电子邮件实际上列为 DOMAIN_asmith@company.com,bobama 看起来不错。

这些值不是来自用户(都没有登录到詹金斯)——它们是通过 SVN 来自 AD。我被困住了——有人给我指出一个更好的方向吗?