代码之家  ›  专栏  ›  技术社区  ›  Kaito Kid

使用带有Kerberos令牌的SAML 2.0 SSO的.NET桌面(非web)应用程序

  •  0
  • Kaito Kid  · 技术社区  · 7 年前

    我读了很多关于这方面的文章,以便为客户实现这一点。我百分之百肯定我误会了一些事情,因为现在的事情在我脑海里是没有意义的。

    我们的客户希望在我们正在制作的应用程序中添加SSO功能。其想法是,在启动时,当程序安装在客户的某个客户上时,应用程序将使用SSO验证用户的身份,以确定是否允许他们运行该程序。

    obtain 然后将其添加到SAML POST请求中的某个地方。

    然后,当谷歌搜索如何获得代币时,我得到 more more 结果表明我不需要,它是自动完成的,并且端点知道“谁”在呼叫。

    此外, most websites assuming

    我的申请是 基于网络,我知道 创建或查看响应我请求的端点。

    该应用程序在Citrix环境中运行,并且必须与Intranet上的端点通信。我本人并不在这个内联网上,我们从远程登录到Citrix进行测试。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Steve    7 年前

    这个问题是无法回答的。我们无法查看您的应用程序、其内部网或任何通过网络发送的流量。

    许多应用程序依赖Windows进行Kerberos身份验证(更具体地说是协商),而Windows通常是透明地进行这项工作的。在被动的、基于浏览器的场景中,web服务器将提示401错误代码和“WWW Authenticate:Negotiate”头(浏览器可以理解),并自动用令牌响应。

    在基于应用程序的活动场景中,web服务可能会用相同的错误代码响应,但这通常是提前协商的,并且应用程序知道要从Windows手动请求一个票证。一些开发框架,如.NET,在许多情况下也可以自动为您完成这项工作。

    所有这些都与SAML无关,但是令牌的流基本上是相同的,但是有一个额外的跃点,Kerberos票证与SAML令牌交换。这个额外的跃点是未定义的,由开发人员来确定,但在执行SAMLRequest时,它肯定只是一个请求头。