我想知道是否有一种方法可以在不使用kdc的情况下在java中生成我自己的key表?我在ApachDS测试中发现了与此类似的代码:Keytabkeytab=Keytab.getInstance();KerberosTimetimeStamp=newKerberosTime(KerberosUtils.UTC_DATE_FORMAT.parse("20070217235745Z"));Mapkeys=KerberosKeyFactory.getKerberosKeys(principalName,userPassword);KeytabEntrykeytabEntry=newKeytabE
我想从授权HTTPheader中的Kerberos票证中读取用户名。我正在使用Java。我花了好几天的时间阅读有关该主题的大量网站,试图实现这一目标,但未能做到这一点。Kerberos对我来说是新的/陌生的。这是我取得的成就:当用户首次访问网站时-没有Authorizationheader,服务器会使用401+header进行响应:WWW-Authenticate=Negotiate。客户端会发生各种神奇的事情。用户返回一个HTTP请求,其中包含Authorizationheader,其值类似于:“NegotiateYHcGB...==”将base64编码的票解码为字节数组。从这里开始
我正在对kerberos身份验证的REST服务执行https请求。如果我使用key表,一切都很好。但是,我有一个要求,我应该使用在使用密码登录工作站时创建的kerberos票证缓存文件。我会将域替换为MY_DOMAINE.COM因此,klist显示:Ticketcache:FILE:/tmp/krb5cc_210007Defaultprincipal:dragomira@MY_DOMAINE.COMValidstartingExpiresServiceprincipal05/15/1807:21:5105/15/1817:21:51krbtgt/MY_DOMAINE.COM@MY_DO
以下代码用于使用Java+Kerberos向WindowsAD服务器进行身份验证,并且工作正常-publicclassKerberosAuthenticator{publicstaticvoidmain(String[]args){StringjaasConfigFilePath="/myDir/jaas.conf";System.setProperty("java.security.auth.login.config",jaasConfigFilePath);Stringkrb5ConfigFilePath="/etc/krb5/krb5.conf";System.setProper
所以我有一些代码正在测试,以确保它能很好地用于身份验证。它可以很好地对抗直接的kerberos,所以我认为AD应该只会有一些小问题。不幸的是,我无法绕过KrbException:KDC不支持加密类型(14)。我知道错误是加密类型不匹配。但我可以kinit很好,只是在我遇到问题的代码中。我没有设置任何东西,所以我认为它应该继承与kinit相同的默认值,但显然情况并非如此。代码-System.setProperty("sun.security.krb5.debug","true");System.setProperty("java.security.krb5.realm","TEST.SQ
我正在使用林架构中的LDAP(所有服务器和我的服务器都是Windows)。我正在使用NTLM身份验证绑定(bind)到AD。我有一个针对LDAP服务器执行操作的JAVA代码。代码被包装为tomcatservlet。当直接运行JAVA代码时(仅将LDAP身份验证代码作为应用程序执行),绑定(bind)对本地域有效(本地域=我登录到Windows,并使用该域的用户运行此过程)和外国域名。当将JAVA代码作为servlet运行时,绑定(bind)可以工作并验证来自一个域的用户,但如果我试图验证来自其他域的用户则不起作用,它不会工作(只有当我'我将重新启动tomcat)。我遇到异常:GSSin
目前在我的springbootapplication.properties文件中,我指定了以下行以连接到MSSql服务器。spring.datasource.url=jdbc:sqlserver://localhost;databaseName=springbootdspring.datasource.username=saspring.datasource.password=Projects@123我不想提供用户名和密码,而是想使用kerberos对用户进行身份验证,我必须进行所有更改。我尝试在JPA官方文档中搜索但找不到任何内容。这里的线索表示赞赏。 最
我有一个脚本Jenkinsfile在我们的分布式Jenkins构建环境中运行。我在Jenkins文件中有执行Kerberos身份验证的代码。该代码基于两个小型Java程序,它们都成功通过了Kerberos的身份验证。这两个Java程序在我的Windows工作站和Linux虚拟机guest上运行。也就是说:我有一对工作的Java程序,它们使用一组Kerberos配置文件成功地从Windows和Linux执行Kerberos身份验证。当我将代码转换为我的Jenkinsfile时,它显然在第1步失败:找到我精心构建的krb5.conf(和login.conf)文件。Kerberos代码位
我有一个Java客户端应用程序和一个Java服务器应用程序,我正在尝试通过Kerberos向服务器进行身份验证。客户端基本上使用http-components和SPNEGO进行HTTPGET调用,但我总是得到401Unauthorized作为结果。我无法在下面的Kerberos登录序列中发现错误,也许你们可以:DebugistruestoreKeyfalseuseTicketCachefalseuseKeyTabfalsedoNotPromptfalseticketCacheisnullisInitiatortrueKeyTabisnullrefreshKrb5Configisfals
我正在尝试将应用程序从使用java7u51更改为java8u40,但SSO身份验证失败。客户端未更改,它使用JNA窗口调用(Secur32.INSTANCE.InitializeSecurityContext),但服务器不再接受票证。服务器代码没有改变,但它使用的是似乎已经改变的标准java库。服务器在linux下运行。服务器代码如下。在我的Windows机器上,我编写了一个包含票证的文件,以便我可以运行下面的代码进行测试。我有一个非常高的时钟偏移设置,这样我就可以根据票证进行测试。为了以防万一,我已经使用java7u51编写了客户端票证,但这并没有帮助。当我在java7中运行以下服务