为IIS Windows authnetnecation for Generaties Spnego Kerberos代币

问题描述 投票:0回答:1

在C#我需要以Spngeo格式生成Kerberos令牌,这样我就可以将其发送到授权标题中,以协商到我的IIS服务器,在此我启用了Windows身份验证。 我正在使用此主题中的代码

如何使用sspi

从kerberos获取服务令牌 它正在生成Kerberos代币,但它不采用Spnego格式,因此在我使用时不起作用。 我想获得与使用kerberos.net库生成的相同令牌。他们的代币对我有用,但是问题是我需要使用凭据来生成,而我不想要它,所以我不能使用此库。我想使用DefaultCredentials,但要获得与Kerberos.net库的使用相同的令牌。 我还试图直接使用SSPI并将包装进行协商,这应该给我Spnego格式,但是生成的令牌与Kerberos.net库不同,因此它也无法正常工作。 我怎么能解决这个问题?或者,我的IIS上是否有任何配置,它也会接受不采用Spengo格式的令牌? 请帮助

这样的外观是您需要的:

using System.Net; using System.Net.Security; var authClientOptions = new NegotiateAuthenticationClientOptions { Package = "Negotiate", TargetName = $"HTTP/{hostFqdn}", RequiredProtectionLevel = ProtectionLevel.Sign, Credential = CredentialCache.DefaultNetworkCredentials, }; using var authContext = new NegotiateAuthentication(authClientOptions); var challengeResponse = authContext.GetOutgoingBlob("", out var statusCode); Console.WriteLine(challengeResponse);
c# kerberos windows-authentication spnego
1个回答
0
投票

curl <url> -s -v -o nul -H "Authorization: Negotiation <token>"

.NET8,Windows Server 2016和2012R2。效果很好
.NET框架中也可以使用,但更复杂。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.