【发布时间】:2016-06-14 17:15:23
【问题描述】:
目标: 我正在尝试构建概念验证客户端应用程序以使用 SSPI 实现单点登录。我是 C# 新手,我很困惑。
到目前为止我所知道和所做的: 所有用户都是 Active Directory 域的一部分,所以我知道 Kerberos 在登录期间用于身份验证。此时我需要做的就是从 Kerberos 获取服务令牌,这样我就可以将其传递给服务资源,而不是用户名和密码(如果我错了,请纠正我)。我已获得服务主体名称 (SPN) 和已在 Kerberos 中注册该服务的密码。
我希望不使用平台调用服务来调用 SSPI 函数,但如果必须的话我会这样做。我通读了“.NET Remoting Authentication and Authorization Sample - Part I”并使用Microsoft.Samples.Security.SSPI 进行测试。我也尝试过使用C#/.Net Interface To The Win32 SSPI Authentication API。
到目前为止,我可以获取用户/客户端凭据,构建客户端安全上下文。但是如何为给定的 SPN 请求服务票证?
感谢您的帮助和指导。如果可以,请具体说明,如果您有任何问题,请告诉我。
【问题讨论】:
-
链接到“.NET 远程身份验证和授权示例 - 第一部分”是“msdn.microsoft.com/en-us/library/ms973911.aspx”我现在不能在问题主体中添加两个以上的链接
-
你要说的有线协议是什么?定制还是标准?
-
标准。我们没有使用任何自定义协议。
-
哪种有线协议?请提供更多详细信息。
-
我想我不确定您的意思或它的重要性。我将使用 TCP/UDP 作为传输层。用户已使用 Windows 进行身份验证,因此他们应该已经有可用的 TGT。如何获取当前活动的 TGT 并请求特定服务的票证。我不确定有线协议的重要性。你能解释一下吗?
标签: c# .net single-sign-on kerberos sspi