spnego java_《HttpClient官方文档》4.8 SPNEGO/Kerberos验证

本文档介绍了在Java HttpClient中使用SPNEGO进行Kerberos验证的详细步骤,包括所需的支持环境、配置文件(login.conf、krb5.conf)设置,以及Windows特定的配置调整。建议使用Java 1.6以上版本,并提供了KerberosHttpClient.java示例代码作为起点。
摘要由CSDN通过智能技术生成

原文链接 译者:Edenpan

SPNEGO(简单并且受保护的GSSAPI协商机制)被设计为当两端都不知道他人可以提供,或使用什么时所提供的验证服务。它可以包装其他的机制,但是目前HttpClient4.2是按照Kerbros单独设计的。

4.8.1SPNEGO在HttpClient中的支持

SPNEGO验证方案被Sun Java 1.5以上版本兼容。1.6以上的Java版本被强烈推荐,因为它已经完全支持了SPNEGO验证。

Sun JRE 提供了相关支持类来处理几乎所有的Kerb er和SPNEGO的令牌。这意味着很多步骤是关于GSS类的。SPNegoScheme 是一个简单的处理解析令牌并且对头进行读和写的类。

最好的开始的方式是抓示例中KerberosHttpClient.java文件,并且尝试使它工作。这会由很多问题会产生,但是如果幸运的话它会没有多大问题的工作。它也提供了一些输出用来调试。

在Windows中它默认使用登录凭证;它可以被覆盖通过使用’knit’ 比如$JAVA_HOME\bin\knit testuser@AD.EXAMPLE.NET 对测试和调试非常有帮助。删除kinit创建的缓存文件退回到windows的Kerberos缓存。

4.8.2 GSS/JAVA Kerberos 步骤

这个文档假定你使用的是Windows系统,但是大部分的信息在Unix上也适用。

org.ietf.jgss 类有很多可配置的参数,主要是在 krb5.conf/krb5.ini文件中。更多的信息可以查看:http://web.mit.edu/kerberos/krb5-1.4/krb5-1.4.1/doc/krb5-admin/krb5.conf.html.

4.8.3 login.conf 文件

接下来是Windows XP针对IIS和JBoss Negotiation 模块的配置。

系统属性java.security.auth.login.config可以用来指定login.conf文件。

login.conf文件看起来应该像下面这样:

com.sun.security.jgss.login {

com.sun.security.auth.module.Krb5LoginModule required client=TRUE useTicketCache=true;

};

com.sun.security.jgss.initiate {

com.sun.security.auth.module.Krb5LoginModule required client=TRUE useTicketCache=true;

};

com.sun.security.jgss.accept {

com.sun.security.auth.module.Krb5LoginModule required client=TRUE useTicketCache=true;

};

4.8.5 krb5.conf / krb5.ini 文件

如果没有特别指定,将会使用系统默认值。通过设定系统属性java.security.krb5.conf来指定一个用户krb5.conf文件。krb5.conf文件看起来像是下面这样:

[libdefaults]

default_realm = AD.EXAMPLE.NET

udp_preference_limit = 1

[realms]

AD.EXAMPLE.NET = {

kdc = KDC.AD.EXAMPLE.NET

}

[domain_realms]

.ad.example.net=AD.EXAMPLE.NET

ad.example.net=AD.EXAMPLE.NET

4.8.5 Windows特殊配置

为了允许Windows使用当前用户的凭证,系统属性javax.security.auth.useSubjectCredsOnly必须被设置为false 并且应该添加并且正确设置Windows的注册表项allowtgtsessionkey来使会话凭证在Kerberos Ticket-Granting票中发送。

下面是在Windows Server 2003 和 Windows 2000 SP4中要求的注册表项设定:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

Value Name: allowtgtsessionkey

Value Type: REG_DWORD

Value: 0x01

下面是在Windows XP SP2中要求的注册表项设定:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\

Value Name: allowtgtsessionkey

Value Type: REG_DWORD

Value: 0x01

d0c1501a6d8bb921cf36400dc89de69f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值