KERBEROS/SPNEGO是spring-security项目的扩展,同时也是实现Windows Active Directory认证的一种方式,其流程和配置可参考http://lengyun3566.iteye.com/blog/1404943,这篇文章讲的比较详细。在开发过程中通过ktpass映射用户名这步有2种方式(我只知道2种):
1、ktpass -princ HTTP/项目部署所在的机器名@域名 -mapuser test\admin -out
kerberos.keytab
2、ktpass /out kerberos.keytab /mapuser admin@test.org /princ HTTP/
项目部署所在的机器名@TEST.ORG /pass password
其中用户名最好以HTTP/开头,这也是官方网站建议的方式。值得注意的是:项目所在的机器C:\Documents and Settings\Administrator\WINDOWS下需要有个名称为krb5.ini的文件,文件内容为:
[libdefaults]
default_realm = 以域名为例
default_tkt_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
default_tgs_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
permitted_enctypes = aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc
[realms]
default_realm的值 = {
kdc = 项目所在的机器名
default_domain = 域名
}
[domain_realm]
.
default_realm的值 = default_domain的值
主要是为了加解密windows密码。
用户通过浏览器发送请求时,若后台打印出如下信息:
WARNING: Negotiate Header was invalid: Negotiate TlRMTVNTUAABAAAAl4II4gAAAAAAAAAAAAAAAAAAAAAGAbAdAAAADw==org.springframework.security.authentication.BadCredentialsException: Kerberos validation not succesfull则表明系统采用的认证方式是windows默认的NTLM协议,此时应将请求的地址应写成项目所在的机器名,否则测试很可能不成功。
分享到:
相关推荐
适用于Apache 1.3.26的GSS-API / SPNEGO身份验证模块; SPNEGO API(请参阅fbopenssl);适用于Apache 1.3和2.0的SPNEGO身份验证模块(请参见mod_spnego)
使用Spring Security Kerberos Extension,仅通过打开URL即可针对您的Web应用程序对用户进行身份验证。 无需输入用户名/密码,也无需安装其他软件。 行为守则 该项目遵守《贡献者公约》。 通过参与,您将遵守此代码...
Spring Security Kerberos 是 Spring Security 使用 Kerberos 的扩展。 标签:安全相关框架
您可以通过将有效的SPNEGO Negotiate标头发布到/v1/auth/kerberos/login 。 try : import kerberos except : import winkerberos as kerberos import requests service = "HTTP@vault.domain" rc , vc = kerberos...
Java中的Kerberos支持主要体现在Java的`javax.security.auth.kerberos`包中,提供了与Kerberos协议交互的一系列类和接口。这些类允许Java应用进行认证过程,包括获取票据授予票据(Ticket-Granting Ticket, TGT)...
Spring Security 是一个全面的企业级安全框架,专为基于 J2EE 的应用程序设计,尤其适用于采用 Spring 框架的项目。它提供了丰富的安全服务,解决了 J2EE Servlet 规范和 EJB 规范中无法满足的典型安全需求,且具有...
### Spring Security 3.0 入门与核心概念详解 #### 一、Spring Security简介 Spring Security 是一款功能强大且高度可定制的应用安全框架,它为基于 Java 的应用程序提供了全面的安全服务。尤其对于那些采用 ...
- JCE策略文件:下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,并将其解压放置到`JAVA_HOME/jre/lib/security`目录下。此步骤对于Ambari的所有节点都是必要的,具体可参考...
4. Kerberos server需要配置三个文件:/etc/krb5.conf、/var/kerberos/krb5kdc/kdc.conf和/var/kerberos/krb5kdc/kadm5.acl。 5. OpenLDAP需要使用SASL机制来实现Kerberos验证。 6. SASL支持多种认证方法,包括...
已启用KDC和SPNEGO的Nginx 先决条件 已在以下环境中进行了测试 kdc:Ubuntu 20.04 Intel + Docker稳定版,kerberos客户端:Ubuntu 20.04 Intel kdc:Ubuntu 20.04 Intel + Docker稳定版,kerberos客户端:Macos ...
kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/zookeeper.keytab zookeeper/hadoop01" # 分发 keytab 文件到各个客户端 mkdir keytab scp /var/kerberos/krb5kdc/zookeeper.keytab hadoop01:/opt/beh/keytab/ ...
确保替换上述配置中的`your.kafka.broker.url`为实际的Kafka集群地址,`path/to/your/kerberos/keytab/file.keytab`和`path/to/your/krb5.conf`分别为你的Kerberos Keytab文件和Kerberos配置文件的路径,`your_...
spring-security-pac4j项目是一个用于Spring Security Web应用程序和Web服务(带有或不带有Spring Boot)的简单而强大的安全性库。 它支持身份验证和授权,还支持会话固定和CSRF保护等高级功能。 它基于Java 8,...
6. 配置文件配置:Kerberos的配置文件包括/etc/krb5.conf(全局配置)、/var/kerberos/krb5kdc/kdc.conf(KDC配置)和/var/kerberos/krb5kdc/kadm5.acl(管理员ACL配置)。/etc/krb5.conf文件需要在集群的所有服务器...