作者小头像 Lv.1
0 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

大数据、数据库、微服务架构、编程语言
个人勋章
TA还没获得勋章~
成长雷达
0
0
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

大数据、数据库、微服务架构、编程语言

达成规则

发布时间 2023/04/21 10:43:16 最后回复 s0611163 2023/04/24 11:41:35 版块 混合云FusionInsight
149 9 0
他的回复:
我正在尝试自己写,我找了一个开源的库Kerberos.NET,然后使用该库,代码如下: try {     var keytab = new KeyTable(File.ReadAllBytes("files/user.keytab"));     var kerbCred = new KeytabCredential("washout@HADOOP.COM", keytab);     var krb5 = Encoding.ASCII.GetString(File.ReadAllBytes("files/krb5.conf"));     var list = Krb5ConfigurationSerializer.Deserialize(krb5);     var client = new KerberosClient(list.ToConfigObject(), _loggerFactory);     _logger.LogInformation("开始");     await client.Authenticate(kerbCred);     _logger.LogInformation("成功");     var ticket = await client.GetServiceTicket("HOST/34.8.8.215");     string header = Convert.ToBase64String(ticket.EncodeGssApi().ToArray());     _logger.LogInformation($"header=" + header);     var httpClient = new HttpClient();     httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Negotiate", header);     //todo:HTTP请求 } catch (Exception ex) {     _logger.LogError($"{ex}"); } 然后报错:failed connection to HADOOP.COM,以及错误:Cannot locate SRV record for HADOOP.COM,它似乎并不认识HADOOP.COM。krb5.conf和user.keytab是从平台上下载的认证文件。这对认证问题比较晕,似乎我需要根据krb5.conf文件自己构造Kerberos.NET这个类库的Krb5Config对象。 虽然编程语言不同,但道理应该是相通的,所以请教一下,到底问题出差哪里呢?