草庐IT

KERBEROS

全部标签

java - 我可以在 Java 中以编程方式生成我自己的 key 表吗?

我想知道是否有一种方法可以在不使用kdc的情况下在java中生成我自己的key表?我在ApachDS测试中发现了与此类似的代码:Keytabkeytab=Keytab.getInstance();KerberosTimetimeStamp=newKerberosTime(KerberosUtils.UTC_DATE_FORMAT.parse("20070217235745Z"));Mapkeys=KerberosKeyFactory.getKerberosKeys(principalName,userPassword);KeytabEntrykeytabEntry=newKeytabE

java - 从授权 header 中的 Kerberos 票证中读取用户名

我想从授权HTTPheader中的Kerberos票证中读取用户名。我正在使用Java。我花了好几天的时间阅读有关该主题的大量网站,试图实现这一目标,但未能做到这一点。Kerberos对我来说是新的/陌生的。这是我取得的成就:当用户首次访问网站时-没有Authorizationheader,服务器会使用401+header进行响应:WWW-Authenticate=Negotiate。客户端会发生各种神奇的事情。用户返回一个HTTP请求,其中包含Authorizationheader,其值类似于:“NegotiateYHcGB...==”将base64编码的票解码为字节数组。从这里开始

java - 无法使用 kerberos 票证缓存对 apache http 客户端 4.5 进行身份验证

我正在对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 - 在不重启 JVM 的情况下在 JAVA 中重新加载 Kerberos 配置

以下代码用于使用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

针对 Active Directory 的 Java 身份验证,身份验证不匹配?

所以我有一些代码正在测试,以确保它能很好地用于身份验证。它可以很好地对抗直接的kerberos,所以我认为AD应该只会有一些小问题。不幸的是,我无法绕过KrbException:KDC不支持加密类型(14)。我知道错误是加密类型不匹配。但我可以kinit很好,只是在我遇到问题的代码中。我没有设置任何东西,所以我认为它应该继承与kinit相同的默认值,但显然情况并非如此。代码-System.setProperty("sun.security.krb5.debug","true");System.setProperty("java.security.krb5.realm","TEST.SQ

java - GSS 异常 : Message stream modified (41)

我正在使用林架构中的LDAP(所有服务器和我的服务器都是Windows)。我正在使用NTLM身份验证绑定(bind)到AD。我有一个针对LDAP服务器执行操作的JAVA代码。代码被包装为tomcatservlet。当直接运行JAVA代码时(仅将LDAP身份验证代码作为应用程序执行),绑定(bind)对本地域有效(本地域=我登录到Windows,并使用该域的用户运行此过程)和外国域名。当将JAVA代码作为servlet运行时,绑定(bind)可以工作并验证来自一个域的用户,但如果我试图验证来自其他域的用户则不起作用,它不会工作(只有当我'我将重新启动tomcat)。我遇到异常:GSSin

java - Spring Boot MSSQL Kerberos 身份验证

目前在我的springbootapplication.properties文件中,我指定了以下行以连接到MSSql服务器。spring.datasource.url=jdbc:sqlserver://localhost;databaseName=springbootdspring.datasource.username=saspring.datasource.password=Projects@123我不想提供用户名和密码,而是想使用kerberos对用户进行身份验证,我必须进行所有更改。我尝试在JPA官方文档中搜索但找不到任何内容。这里的线索表示赞赏。 最

java - Jenkins 在脚本化 Jenkinsfile 的分布式构建中找不到 krb5.conf 文件

我有一个脚本Jenkinsfile在我们的分布式Jenkins构建环境中运行。我在Jenkins文件中有执行Kerberos身份验证的代码。该代码基于两个小型Java程序,它们都成功通过了Kerberos的身份验证。这两个Java程序在我的Windows工作站和Linux虚拟机guest上运行。也就是说:我有一对工作的Java程序,它们使用一组Kerberos配置文件成功地从Windows和Linux执行Kerberos身份验证。当我将代码转换为我的Jenkinsfile时,它​​显然在第1步失败:找到我精心构建的krb5.conf(和login.conf)文件。Kerberos代码位

Java Kerberos 身份验证似乎有效,但仍被拒绝

我有一个Java客户端应用程序和一个Java服务器应用程序,我正在尝试通过Kerberos向服务器进行身份验证。客户端基本上使用http-components和SPNEGO进行HTTPGET调用,但我总是得到401Unauthorized作为结果。我无法在下面的Kerberos登录序列中发现错误,也许你们可以:DebugistruestoreKeyfalseuseTicketCachefalseuseKeyTabfalsedoNotPromptfalseticketCacheisnullisInitiatortrueKeyTabisnullrefreshKrb5Configisfals

java - Java8 中的 Kerberos/SPNEGO 服务器端身份验证更改

我正在尝试将应用程序从使用java7u51更改为java8u40,但SSO身份验证失败。客户端未更改,它使用JNA窗口调用(Secur32.INSTANCE.InitializeSecurityContext),但服务器不再接受票证。服务器代码没有改变,但它使用的是似乎已经改变的标准java库。服务器在linux下运行。服务器代码如下。在我的Windows机器上,我编写了一个包含票证的文件,以便我可以运行下面的代码进行测试。我有一个非常高的时钟偏移设置,这样我就可以根据票证进行测试。为了以防万一,我已经使用java7u51编写了客户端票证,但这并没有帮助。当我在java7中运行以下服务