问题标签 [mit-kerberos]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
104 浏览

kerberos - Kerberos 双跳问题

所以,在过去的一周里,我试图解决这个 kerberos 问题。

长话短说,我们有一个服务器,它可以识别传入用户的某些工作。最近,我们需要上传一些结果,所以现在委派了用户,以便它可以在另一台服务器上进行授权。问题是,第二天,登录后,服务器不能委托同一个用户。它在形成消息时失败并krb5_cc_notfound出现错误。AP_REQ

如果我尝试遍历缓存,它会失败并krb5_cc_start_seq_get出现同样的错误。

如果我尝试获取其他票证(在成功登录后的第二天),它将失败krb5_get_credentials,并且在进一步尝试时(我猜缓存变得无效?如果此时它甚至是有效的)它无法解析默认主体。

缓存类型为 MSLSA。

每次都失败后,在事件日志中我可以看到一个 kerberos 警告,然后是一个错误。首先说“TGT 已过期,尝试更新但失败”,另一个是 KRB_AP_ERR_TKT_EXPIRED。

我们在房间里使用 kerberos 的经验很少,所以如果你能分享一些 - 那就太酷了。

0 投票
0 回答
120 浏览

docker - 使用 kerberose(GSSAPI)SASL 设置设置 kafka 代理的最佳方法是什么?

我需要为我的一个集成测试设置一个带有 kerberos sasl 的 kafka 代理。

我尝试使用 docker 方式,尝试在下面运行准备使用设置: https ://github.com/vdesabou/kafka-docker-playground/tree/master/environment/kerberos

能够设置,但我只能在 docker 网络内访问代理(即我可以从 docker 网络内的客户端容器生成和使用消息)。

但在我的情况下,我需要从外部(非主机,不同的机器)访问 kafka 代理,我无法通过这个 docker 设置来实现这一点。

无论如何,是否可以使用 docker 进行设置,如果有任何准备好使用 git 中可用的示例设置?

任何帮助,将不胜感激

谢谢马亨德拉

0 投票
0 回答
414 浏览

apache-kafka - java.net.PortUnreachableException:ICMP 端口无法访问 - Kerberos 错误

我正在尝试运行启用了 Kerberos 身份验证的 kafka 集群。kafka 代理、zookeeper 和 kdc (kerberos) 服务器作为 docker 网络中的容器启动。

Kafka 代理端口 9092 已映射到主机,因此能够从主机网络调用代理。

由于客户端必须首先与 Kdc 交互以进行 kerberos 身份验证,因此 KDC 容器的端口 88 也已从主机暴露并打开。

docker ps (for kdc container): a856bfe3f330 plaintext_kdc "/bin/sh -c '/usr/sb..." 11 hours ago Up 11 hours 0.0.0.0:88->88/tcp, :::88->88/ tcp kdc

/etc/krb5.conf :

能够从主机远程登录 localhost 88。但是当我尝试从主机运行生产者时出现以下错误:(注意:能够在 docker 网络中生成和使用消息,从同一 docker 网络中的客户端 docker 容器生成)

/home/ubuntu/kafka-docker-for-nifi-integration/kafka_install/kafka_2.11-2.4.0/bin/kafka-console-producer.sh --broker-list localhost:29092 --topic kafka-nifi-sasl_gssapi_plaintext --producer.config producer_kt.properties org.apache.kafka.common.KafkaException: 无法在 org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:432) 在 org.apache.kafka 构造 kafka 生产者。 clients.producer.KafkaProducer.(KafkaProducer.java:298) at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:45) at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala) 原因:org.apache.kafka .common.KafkaException:javax.security.auth.login.LoginException:org.apache.kafka.common.network 的 org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:158) 上的 ICMP 端口无法访问。 ChannelBuilders.create(ChannelBuilders.java:146) 在 org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:99) 在 org.apache.kafka.clients 在 org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:67) .producer.KafkaProducer.newSender(KafkaProducer.java:450) at org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:421) ... 3 更多原因:javax.security.auth.login.LoginException :在 jdk.security.auth/com.sun.security.auth.module.Krb5LoginModule 的 jdk.security.auth/com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:786) 处的 ICMP 端口无法访问。 login(Krb5LoginModule.java:592) 在 java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:726) 在 java.base/javax.security.auth.login.LoginContext$4.run(LoginContext .java:665) 在 java.base/javax.security.auth.login.LoginContext$4。在 java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:663) 在 java.base/java.security.AccessController.doPrivileged(Native Method) 在 java.run(LoginContext.java:663)。 base/javax.security.auth.login.LoginContext.login(LoginContext.java:574) 在 org.apache.kafka.common.security.authenticator.AbstractLogin.login(AbstractLogin.java:60) 在 org.apache.kafka。 common.security.kerberos.KerberosLogin.login(KerberosLogin.java:103) 在 org.apache.kafka.common.security.authenticator.LoginManager.(LoginManager.java:62) 在 org.apache.kafka.common.security.authenticator .LoginManager.acquireLoginManager(LoginManager.java:112) at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:147) ... 8 更多原因:java.net.PortUnreachableException: ICMP Port Unreachable at java.base/java.net.PlainDatagramSocketImpl。在 java.base/java.net.DatagramSocket.receive(DatagramSocket.java:814) 在 java.security.jgss/ 的 java.base/java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:181) 的 receive0(Native Method) sun.security.krb5.internal.UDPClient.receive(NetClient.java:205) at java.security.jgss/sun.security.krb5.KdcComm$KdcCommunication.run(KdcComm.java:404) at java.security.jgss/ sun.security.krb5.KdcComm$KdcCommunication.run(KdcComm.java:364) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.security.jgss/sun.security.krb5.KdcComm.send (KdcComm.java:348) 在 java.security.jgss/sun.security.krb5.KdcComm.sendIfPossible(KdcComm.java:253) 在 java.security.jgss/sun.security.krb5.KdcComm.send(KdcComm.java :229) 在 java.security.jgss/sun.security.krb5.KdcComm.send(KdcComm.java:200) 在 java.security.jgss/sun.security。krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:345) 在 java.security.jgss/sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:498) 在 jdk.security.auth/com.sun.security.auth。 module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:754)

谢谢马亨德拉

0 投票
1 回答
59 浏览

kerberos - 浏览器如何知道在 kerberos 中要联系哪个 KDC?

我是 Kerberos 的新手,我不确定浏览器如何知道要联系哪个 KDC 以获取 HTTP 服务的票证?

例如,我有一个在www.xyz.example.com上运行的应用程序 (SPNEGO) ,我的领域是 example.com(我有一个 linux 服务器作为 KDC 服务器),将创建什么 SPN 以及浏览器如何联系 KDC?

0 投票
1 回答
125 浏览

c# - Kerberos.Net 问题

目前正在尝试使用 Kerberos.Net nuget 实现一个简单的 KDC。

我已经通过随后的 bruce 工具成功获得了一个令牌,但是如果我尝试通过 java 的 kinit 或 MIT Kerberos 客户端窗口,我会得到:(注意,我在 kerberos.net 示例中遇到同样的错误

kinit:ASN.1 在获取初始凭据时调用系统时间库失败

如果我从 Ubunto 20.04 机器上尝试使用 knit(安装了 krb5-client),我会收到以下错误:

Kerberos.NET.KerberosValidationException:时间戳窗口大于允许的偏差。开始时间:2042 年 7 月 14 日凌晨 1:04:05 +00:00;结束:10/15/2021 12:13:14 PM +00:00;偏差:00:05:00 在 C:\Kerberos.NET-develop\Kerberos.NET\Server\PaDataTimestampHandler.cs:line 60 中的 Kerberos.NET.Server.PaDataTimestampHandler.Validate(KrbKdcReq asReq, PreAuthenticationContext preauth)

安装程序运行是:

AD-DC 窗口服务。2019 Windows 10 客户端(加入以上域)第二个 Windows 10 客户端 Ubuntu 20.04 上的控制台应用程序 (KDC)

目标有自己的 kdc 被 AD-DC 信任,并允许登录。

在此处输入图像描述

0 投票
1 回答
68 浏览

spring - 如何将密钥分发中心的位置指定给 Spring Security Kerberos?

我正在 Linux 机器上运行Kerby实例(MIT Kerberos Java 实现)。我有一个在 Windows 机器上运行的 Web 应用程序。使用 Spring Security Kerberos 保护 Web 应用程序(按照本文中描述的步骤)。

根据wikipedia 上客户端身份验证的 Kerberos 协议描述,步骤 1 是

  1. 客户端将用户 ID 的明文消息发送到代表用户请求服务的 AS(Authentication Server)。

客户端(在我的例子中)是一个网络浏览器。Web 浏览器如何知道 Authentication Server 在哪里?我在文章或其引用的代码中没有看到任何提及。它是从 KDC 导出的服务主体名称 (SPN) 的密钥表的一部分吗?

0 投票
0 回答
16 浏览

kerberos - 我要问一下 Kerberos 协议的应用

kerberos 的应用有哪些?kerberos 用于哪些领域?它是否用于移动烘焙,电子身份证,..?请帮我提供具体信息。谢谢大家

0 投票
0 回答
8 浏览

java - 如何禁用 kinit JDK 内置 Windows

我对 kinit Kerberos 身份验证有一些问题。MIT Kerberos 和 JDK 实际上具有不同路径的 kinit.exe。如果我在 cmd 中运行 kinit,kinit.exe 使用的是 JDK 内置的。MIT Kerberos 的 env 路径系统已尝试高于 JDK 路径,但仍然相同。如果安装了 MIT Kerberos,如何禁用内置的 kinit JDK?

0 投票
1 回答
22 浏览

windows - 在 IIS 服务器 Web 应用程序中哪里可以找到 kerberos conf 文件

我在 IIS 服务器中有一个 Web 应用程序,它为 kerberos 启用。我想更改一些设置,例如 rdns 和 dns_canonicalize_hosname,但我不知道在哪里做。

我可以在 krb5.conf 文件中的 linux 服务器中执行此操作。我在 Windows 服务器中找不到任何 krb5 文件。

请帮助我了解在哪里可以找到此文件,或者我是否必须创建一个新的 krb5.ini 文件。我对kerberos很陌生。

如果必须创建文件,我应该将它放在哪里,以便 IIS 服务器中的应用程序可以使用该配置。

0 投票
0 回答
7 浏览

security - 无法创建 Kerberos 数据库

我使用以下命令成功安装了 Kerberos 服务器

之后我更新了基本的配置文件,比如

现在,当我开始创建 Kerberos 数据库时,我遇到了以下问题。

提前致谢