Tag: kerberos

从.Net应用程序(控制台)访问kerberos保护的webhdfs

由于Kerberos安全性,我无法从浏览器访问WebHDFS。 谁能帮我这个? 以下是浏览器中“http://****.****/webhdfs/v1/prod/snapshot_rpx/archive?op = LISTSTATUS&user.name = us”的错误 HTTP错误401 访问/ webhdfs / v1 / prod / snapshot_rpx / archive时出现问题。 原因:需要validation 用于向此URL发出请求的.Net代码 HttpWebRequest http = (HttpWebRequest)WebRequest.Create(requestUri); http.Timeout = timeout; http.ContentType = contentType; string responseData = string.Empty; using (WebResponse response = http.GetResponse()) { Stream stream = response.GetResponseStream(); StreamReader sr = new StreamReader(stream); responseData = sr.ReadToEnd(); } return responseData;

我如何在.NET中处理Negotiate?

我正在尝试在小型Web服务器中实现Negotiate(至少是Kerberos部分)。 我已经想出如何让客户端向我发送Kerberos Negotiate Authorization标头。 我已经弄清楚如何解码这些数据(ASN.1)。 我无法弄清楚如何将其变成WindowsIdentity 。 我可以从KerberosReceiverSecurityToken中了解我的情况,但是找不到像NegotiateReceiverSecurityToken这样的东西。 我一直在挖掘大量的DLL,我不能为我的生活找出IIS / .NET处理Negotiate标头的地方。 我假设(如果我有自己的SspiWrapper )我会用SspiWrapper.AcquireDefaultCredential(“Negotiate”, CredentialUse.Inbound)做一些事情来获取一个SSPI上下文,我可以用它来调用AcceptSecurityContext/Negotiate ,然后使用QuerySecurityContextToken来获取令牌我可以创建一个WindowsIdentity 。 但是KerberosReceiverSecurityToken使得它看起来像一个非常复杂的过程。 并且不知道如何做到这一点或授权头部有效负载的哪一部分放入其中,我可能会在没有任何地方的情况下击败它一个月。 (在你提出或回答之前,我完全没有兴趣使用内置的谈判逻辑。如果我能找到它,我会从中学习,但我一直在努力让它为FAR工作很久。而我完成了。)

在没有SetSPN的Windows域上查询/更改SPN

有人在Windows域上查询/更改SPN有什么好运吗? Google上的大多数热门歌曲都与SQL相关:我自己找不到任何有关如何执行此操作的信息。 最重要的事情是查询SPN配置并检查重复项。 根据Arnout,我做了以下代码: static void Main(string[] args) { ValidateSPN(“K2Server/jonathand-vpc:5252”); } static void ValidateSPN(string spn) { const string queryFormat = “(ServicePrincipalName={0})”; using (Domain localDomain = Domain.GetCurrentDomain()) { using (DirectorySearcher search = new DirectorySearcher(localDomain.GetDirectoryEntry())) { search.Filter = string.Format(queryFormat, spn); search.SearchScope = SearchScope.Subtree; SearchResultCollection collection = search.FindAll(); if (collection.Count > 1) throw new Exception(“Duplicate SPNs found.”); else […]

如何使用SSPI从Kerberos获取服务令牌

目标:我正在尝试使用SSPI构建Proof Of Concept客户端应用程序以实现单点登录。 我是C#的新手,我很困惑。 到目前为止我所知道和完成的事情:所有用户都是Active Directory域的一部分,因此我知道Kerberos在登录期间用于身份validation。 此时我需要做的就是从Kerberos获取服务令牌,这样我就可以将它传递给服务资源而不是用户名和密码(如果我错了,请纠正我)。 我已经获得了服务原则名称(SPN)和已在Kerberos中注册的服务密码。 我希望不要使用平台调用服务来调用SSPI函数,但如果必须的话,我会这样做。 我通读了“.NET Remoting身份validation和授权示例 – 第一部分”,并使用Microsoft.Samples.Security.SSPI进行测试。 我还尝试使用C#/ .Net接口到Win32 SSPI身份validationAPI 。 到目前为止,我可以获得用户/客户端凭据,构建客户端安全上下文。 但是,如何为给定的SPN请求服务票证? 非常感谢您的帮助和指导。 如果可以,请具体说明,如果您有任何疑问,请告诉我。