Java 为什么JAAS';Krb5LoginModule是否需要访问域控制器?

Java 为什么JAAS';Krb5LoginModule是否需要访问域控制器?,java,authentication,alfresco,kerberos,jaas,Java,Authentication,Alfresco,Kerberos,Jaas,根据我对Kerberos的理解,该协议旨在消除访问Kerberized服务和KDC进行任何形式通信的需要。这一假设在第4章第一段得到证实: 此时,强调应用程序服务器 切勿直接与密钥分发中心进行通信: 服务票,即使是由TGS打包的,也只能到达服务区 通过希望访问它们的客户 现在我正在使用JavaKerberos服务,特别是Alfresco,它是使用JAAS及其“Krb5LoginModule”实现的。但是,深入研究该LoginModule的源代码,它看起来更像一个客户端而不是一个服务。它可以配置为

根据我对Kerberos的理解,该协议旨在消除访问Kerberized服务和KDC进行任何形式通信的需要。这一假设在第4章第一段得到证实:

此时,强调应用程序服务器 切勿直接与密钥分发中心进行通信: 服务票,即使是由TGS打包的,也只能到达服务区 通过希望访问它们的客户

现在我正在使用JavaKerberos服务,特别是Alfresco,它是使用JAAS及其“Krb5LoginModule”实现的。但是,深入研究该LoginModule的源代码,它看起来更像一个客户端而不是一个服务。它可以配置为使用票据缓存,可以访问TGS,当被要求进行身份验证时,它首先要做的事情之一是发送
AS_REQ
请求,这是客户端在Kerberos身份验证中执行的第一步(如第四章所示)。它似乎没有做的是使用服务密钥解密客户端的身份验证程序


JAAS-Kerberos服务处理身份验证的方式似乎只是获取客户端提供的凭据/密钥,然后将它们发送到KDC以获取TGT。如果这样做有效的话,那么凭证一定是正常的。但通过这种方式,JAAS需要访问KDC本身。JAAS的Kerberos 5实现是否明显没有遵循这里的协议?Oracle似乎宣传JAAS及其“Kerberos支持”用于服务以验证其用户身份。

只是好奇:Alfresco是否使用客户端凭据连接到第三方服务,前提是票证是/可转发/可代理/等?据我所知,不是。它只是检索TGT。但这是一个很好的观点;如果Alfresco希望代表用户毫无顾忌地连接到另一个服务,这将是一种方法。但是我真的想不出一个用例。Alfresco通常不需要表现得像客户。