当前位置: 首页 > 知识库问答 >
问题:

桌面SSO客户端(C/C)的参考实现,基于Kerberos的身份验证(服务器端为Java和MS AD)

叶俊郎
2023-03-14

我们需要在托管Windows环境中为富客户端实现桌面SSO(一些Vista机器,一些带有Win 2008 Citrix后端的Citrix客户端)。

富客户机(用C/C编写)使用SOAP web服务连接到服务器。服务器是运行在JBoss EAP上的Java应用程序。用户数据存储在Microsoft ActiveDirectory中。ADFS 2.0不适用于我们。富客户端不使用Internet Explorer组件。

我们计划在服务器端使用PicketLink。然而,中心问题是:我们如何将SSO注入到C/C客户机中?我们使用哪些API?我的理解是,我们需要读取客户端中的Kerberos令牌,但我希望避免手动实现所有Kerberos交互。Windows API中是否有abtraction层?有第三方库吗?

也许有一个开源参考实现或产品展示了如何在托管Windows环境中实现基于Kerberos的富客户端SSO?

任何建议都将不胜感激!

非常感谢!

共有1个答案

梁建德
2023-03-14

如果您使用HTTP作为SOAP传输,那么只需使用Microsoft的WinHTTP即可。它具有现成的SPNEGO支持。JGSS很乐意接受这些门票。如果您确实需要了解如何在客户端使用SSPI,请查看libneon或libserf的C源代码。但这三个lib都将使用SPNEGO提供HTTP服务。

注意:neon需要一个小补丁,但这个补丁在邮件列表中可用。注意2:我假设其他一切都有效:域、dns、帐户、spns等。

 类似资料:
  • 任务:将Kerberos active directory身份验证添加到不安全的报告和数据操作桌面应用程序。此应用程序是。。。 用Stackless Python 2.7编写 使用Twisted进行客户端-服务器交互 客户端编译为exe并在Windows上运行 服务器在Linux(红帽)上运行 目前,我们从用户帐户中提取Windows网络ID(登录名)并传递到服务器,服务器会查找用户配置为具有的权

  • 我正在尝试使用ServerEvents设置servicestack。我已经为ServerEventsFeature添加了插件。我正在使用Javascript服务器事件客户端,我尝试了一个简单的示例,在用户经过身份验证后在客户端上执行此操作。 在apphost文件上: 要向我正在呼叫的客户端发送事件,请执行以下操作: 我成功地在客户端上的show通知功能上接收到它。 然而,订阅服务仍然存在。disp

  • 问题内容: 我在Glassfish之上创建了一个JAX-WS Web服务,它需要基本的HTTP身份验证。 现在,我想为该Web服务创建一个独立的Java应用程序客户端,但是我不知道如何传递用户名和密码。 它可以与Eclipse的Web Service资源管理器一起使用,并检查连接线,我发现了这一点: 如何使用Java代码在此“授权”标头中传递用户名和密码?是散列还是类似的东西?什么是算法? 没有涉

  • 应如何管理它们? 一些更具体的问题: 根据定义,本机应用程序(实际上是公共客户端)不能安全地存储其凭据(client_id+secret)。是未注册的客户吗?如果我不能使用秘密来验证/验证它,我还应该做什么? 客户端注册≠endpoint注册:第一个是关于注册客户端凭据();第二个关于注册客户端重定向endpoint。重定向endpoint注册是否足以授予客户端的真实性? 客户端凭据授予是否使用相

  • 授权服务器为进行客户端身份验证的目的,为Web应用客户端创建客户端凭据。授权服务器被鼓励考虑比客户端密码更强的客户端身份验证手段。Web应用程序客户端必须确保客户端密码和其他客户端凭据的机密性。 授权不得向本地应用程序或基于用户代理的应用客户端颁发客户端密码或其他客户端凭据用于客户端验证目的。授权服务器可以颁发客户端密码或其他凭据给专门的设备上特定安装的本地应用程序客户端。 当客户端身份验证不可用