Articles of kerberos

kerberos门票TGT和服务门票在Windows XP和Unix的path?

有人可以发送在Windows XP和UNIX的kerberos门票TGT和服务门票的path? 另外,我们如何知道windows和unix中使用的Kerberos的版本? 非常感谢,

如何在Tomcat / linux服务器上configurationKerberos?

我正在尝试在运行在Linux上的Tomcat上的Java web-app中设置Kerberos身份validation。 我正在使用spring security kerberos扩展。 我在用着: jdk 1.7u75 spring-security-kerberos 1.0.0.RELEASE MS活动目录 在我的本地开发机器(Windows)上一切运行良好。 但是,在将应用程序部署到一台linux机器后,身份validation不再起作用。 我强烈怀疑我的Kerberosconfiguration有问题: [libdefaults] default_realm = INT.MYCOMPANY.DE ccache_type=4 kdc_tymesync=1 forwardable=true proxiable=true [realms] INT.MYCOMPANY.DE = { admin_server = xyz.mycompany.de kdc = xyz.mycompany.de } [domain_realm] .INT.MYCOMPANY.DE = INT.MYCOMPANY.DE int.mycompany.de = INT.MYCOMPANY.DE .int.mycompany.de = INT.MYCOMPANY.DE .mycompany.de = INT.MYCOMPANY.DE mycompany.de = INT.MYCOMPANY.DE [logging] #kdc = console (服务器和领域名称已更改) Spring安全configuration: […]

使用httpclient \ kerberos以编程方式设置用户名,而不是提示

我有一个linux \ java6客户端,它将通过KERBEROS向sharepoint2010进行身份validation,然后使用Apache Commons HttpClient 4.2发送HTTP REST Web服务 如果我在连接我的客户端运行之前,从命令行"kinit myuser@mydomain"运行平滑。 我的问题是,如果我不运行kinit,我得到一个用户名提示。 如何在不提示用户名的情况下以编程方式进行身份validation,而无需运行命令行程序? (我创build和keytab,并在login.conf中定义它,以便照顾密码提示,而不是用户promt) public static void main(String[] args) throws Exception { System.setProperty("java.security.auth.login.config", "login.conf"); System.setProperty("java.security.krb5.conf", "krb5.conf"); System.setProperty("sun.security.krb5.debug", "true"); System.setProperty("javax.security.auth.useSubjectCredsOnly","false"); DefaultHttpClient httpclient = new DefaultHttpClient(); try { httpclient.getAuthSchemes().register(AuthPolicy.SPNEGO, new SPNegoSchemeFactory()); Credentials use_jaas_creds = new Credentials() { public String getPassword() { return null; } public Principal getUserPrincipal() { […]

在Silverlight中获取当前的Windows用户名

是否有可能使用Silverlight获取当前login用户的用户名? 您可以假定用户具有Windows操作系统,并且Silverlight应用程序托pipe在Internet Explorer中。 使用ASP.NET从服务器端获取身份不是一个选项,这个Silverlight应用程序将托pipe在一个静态HTML文件上。

Kerberos双跳在ASP.NET 4.0和SQL2008R2中

我有一个ASP.NET 4.0应用程序,我需要将身份validation转发到数据库。 为了这个请求的帮助,让我们调用Web服务器“app1”和数据库服务器“sql1”。 SQL2008R2数据库服务作为自定义域帐户“SqlServer”下的命名实例“SQL2008R2”运行。 该服务器正在运行Windows Server 2008 R2企业版。 我为此创build了一个SPN … setspn -a MSSQLSvc/sql1.mydomain.local:SQL2008R2 SqlServer ASP.NET应用程序在集成pipe道模式下使用自定义域帐户“WebApplicationUser”在应用程序池下运行。 它目前运行在运行Windows 7 Enterprise的笔记本电脑上,但最终将托pipe在Windows Server 2008 R2标准版上。 我已经为应用程序创build了2个SPN(在我正在运行的Windows 7机器上)… setspn -a http/app1 WebApplicationUser setspn -a http/app1.mydomain.local WebApplicationUser 在Active Directory用户和计算机中,我select了“WebApplicationUser”帐户,并使用任何协议(我也尝试使用Kerbero)启用了“MSSQLSvc / sql1.mydomain.local:SQL2008R2”的约束委派。 该应用程序在IIS 7.5中设置,并且设置为禁用匿名,基本,摘要和表单,同时启用“ASP.NET模拟”和“Windows”。 Windows身份validation已closures“扩展保护”并启用“内核模式身份validation”。 提供商是按照“协商”和“NTLM”的顺序。 ASP.NET应用程序使用EF,并将连接stringconfiguration为使用集成安全性。 <connectionStrings> <add name="MyContext" connectionString="metadata=res://*/Data.MyModel.csdl|res://*/Data.MyModel.ssdl|res://*/Data.MyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=sql1.mydomain.local\sql2008r2;Initial Catalog=MyDatabase;Persist Security Info=false;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> 我的networkingconfiguration既指定Windows身份validation和模拟,因为我使用asynchronous页面,我也已启用inpersonation策略stream动… […]

在Java或命令行实用工具中使用本机SSPI API获取服务的Kerberos票据有没有办法?

我想在Java中使用Kerberos实现单点login,并已成功地使用Windowslogin中的故障单创build了服务的故障单。 不幸的是,我只能在启用registry项“allowtgtsessionkey”时创build该票证。 我收到一个exception,只要我禁用它,消息“标识符不符合期望值(906)”。 registry项logging在http://java.sun.com/j2se/1.5.0/docs/guide/security/jgss/tutorials/Troubleshooting.html和http://support.microsoft.com/kb/308339上 。 不幸的是我没有访问我的应用程序将被使用的计算机上的registry,所以我正在寻找一种方法来做到这一点,而不必修改它。 当我在Internet Explorer或Mozilla Firefox上通过SPNEGO进行单点login时,他们会在我的票据caching中创build一个服务票据,所以肯定有办法在不设置registry项的情况下执行此操作。 有没有人有一个想法如何在Java中做到这一点? 感谢您的帮助,memminger 更新:我放弃这个问题。 Windowsregistry项禁止访问Ticketcaching内的票证(更确切地说:主体)。 Windows上的Java使用自己的GSSAPI实现,我想这需要访问票证来创build一个服务票据。 SSPI Windows API可以完全访问Ticketcaching,因此可以创build服务票据。 这个API被Web浏览器使用,但是它没有被Java使用(根据http://java.sun.com/developer/technicalArticles/J2SE/security/#3 )。 当我在访问过一次网页后禁用了SSPI(所以创build了一个服务票据)后,我仍然可以访问这个页面,所以使用命令行实用工具就足以使用SPPI API创build服务票据了。 对于我们来说,这意味着我们可以放弃单点login(这对我们来说是不可接受的),或者我们在应用程序的客户端进行authentication(因为我们只能读出用户名,而不能validation服务器),这是一个重大的安全风险。 另一个例子是安全约束越强,安全漏洞就越大,因为它们变得太复杂了。

使用SSPI从Windows上运行的Java应用程序获取SSO

我有一个在Windows上运行的Java应用程序,需要使用Kerberos / SPNEGO进行身份validation。 我知道如何configurationJAAS来实现这一目标,但是我发现Java(JDK6和JDK7beta)Kerberos实现缺less一些我需要的重要function。 例如,支持推荐或使用DNS来找出主机的领域(我有一个多领域的环境)。 是否有第三方模块可以使用Windows本机SSPI来实现身份validation? 我们已经经历了configuration我们的Windows客户端在我们的环境中工作的麻烦,不用再为Java做这件事了。 我知道Waffle和它的WindowsLoginModule,但它似乎没有做SSO,因为它要求用户重新input他们的凭据到应用程序中。

什么是Kerberos?

我想学习使用kerberos的 Hadoop安全性。 我已经从这个博客configuration了kerberos,但不知道在这方面的工作。 我想知道它是如何工作的? 如何使用它在Windows上的hadoop。 如何为Windowsconfiguration它。 给我任何教程链接或概念来理解它。

如何在Java中实现Kerberos协议转换? (S4U2Self)

编辑 现在我知道我需要什么。 我需要在Java中实现Kerberos协议转换(S4U2Self)。 .Net中有一些例子,但是没有Java的例子。 这个第三方库Quest Single Sign on for Java声称这么做。 我已经下载了JAR,它看起来不错,但我宁愿使用自定义实现,而不是别人的代码(必须支付)。 任何人都可以在需要做什么的时候先行一步? 任何现有的开放Java API来处理这个? 谢谢 之前的问题 目前我的应用程序只知道用户ID,我需要使用Kerberos来validation该用户,创build服务票据并使用它来访问第三方服务。 我的应用程序需要像代理一样工作,并且需要代表提供的用户标识向第三方服务发送请求。 这是因为其他第三方应用程序受到限制。 我无法以任何方式获取给定用户标识的密码,也不能从同一用户标识获取以前的服务标签(转发它)。 我知道,pipe理员用户的凭据。 有没有办法使用用户ID(主体名称)创build一个服务令牌? 也许某种授权委托,其中一个可信赖的委托人已经被authentication,并要求其他委托人的服务票证? 谢谢

对Windows使用Kerberos无法正常工作

我正在尝试使用Ansible 1.9.0.1来configuration使用域用户名的Windows服务器。 我已经成功地安装了Linux Ansible控制盒,并且已经能够使用基本authentication来运行可靠/可靠的剧本播放。 但是,与域用户一起运行失败。 在Windows节点上启用Kerberos: winrm get winrm/config/client/auth Auth Basic = true Digest = true Kerberos = true Negotiate = true Certificate = true CredSSP = true 我试图运行的剧本只是引用了ansible的win_ping模块,下面是输出: PLAY [Manage SMI] ************************************************************* TASK: [Ping] ****************************************************************** <host1> ESTABLISH WINRM CONNECTION FOR USER: on PORT 5985 TO >host1 <host1> ESTABLISH WINRM CONNECTION FOR USER: on PORT […]