`
yangyongByJava
  • 浏览: 127229 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SPRING SECURITY KERBEROS/SPNEGO EXTENSION

阅读更多

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 Kerberos/SPNEGO module-开源

    适用于Apache 1.3.26的GSS-API / SPNEGO身份验证模块; SPNEGO API(请参阅fbopenssl);适用于Apache 1.3和2.0的SPNEGO身份验证模块(请参见mod_spnego)

    spring-security-kerberos

    使用Spring Security Kerberos Extension,仅通过打开URL即可针对您的Web应用程序对用户进行身份验证。 无需输入用户名/密码,也无需安装其他软件。 行为守则 该项目遵守《贡献者公约》。 通过参与,您将遵守此代码...

    SpringSecurityKerberos.zip

    Spring Security Kerberos 是 Spring Security 使用 Kerberos 的扩展。 标签:安全相关框架

    vault-plugin-auth-kerberos:用于Hashicorp Vault的Beta插件,可启用Kerberos身份验证

    您可以通过将有效的SPNEGO Negotiate标头发布到/v1/auth/kerberos/login 。 try : import kerberos except : import winkerberos as kerberos import requests service = "HTTP@vault.domain" rc , vc = kerberos...

    kerberos的java实现

    Java中的Kerberos支持主要体现在Java的`javax.security.auth.kerberos`包中,提供了与Kerberos协议交互的一系列类和接口。这些类允许Java应用进行认证过程,包括获取票据授予票据(Ticket-Granting Ticket, TGT)...

    spring security 中文指南

    Spring Security 是一个全面的企业级安全框架,专为基于 J2EE 的应用程序设计,尤其适用于采用 Spring 框架的项目。它提供了丰富的安全服务,解决了 J2EE Servlet 规范和 EJB 规范中无法满足的典型安全需求,且具有...

    Spring_Security3中文指南.pdf

    ### Spring Security 3.0 入门与核心概念详解 #### 一、Spring Security简介 Spring Security 是一款功能强大且高度可定制的应用安全框架,它为基于 Java 的应用程序提供了全面的安全服务。尤其对于那些采用 ...

    kerberos安装手册

    - JCE策略文件:下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,并将其解压放置到`JAVA_HOME/jre/lib/security`目录下。此步骤对于Ambari的所有节点都是必要的,具体可参考...

    配置OpenLDAP使用Kerberos验证[参考].pdf

    4. Kerberos server需要配置三个文件:/etc/krb5.conf、/var/kerberos/krb5kdc/kdc.conf和/var/kerberos/krb5kdc/kadm5.acl。 5. OpenLDAP需要使用SASL机制来实现Kerberos验证。 6. SASL支持多种认证方法,包括...

    kerberos:启用KDC和SPNEGO的Nginx

    已启用KDC和SPNEGO的Nginx 先决条件 已在以下环境中进行了测试 kdc:Ubuntu 20.04 Intel + Docker稳定版,kerberos客户端:Ubuntu 20.04 Intel kdc:Ubuntu 20.04 Intel + Docker稳定版,kerberos客户端:Macos ...

    kafka 配置kerberos安全认证

    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/ ...

    springboot工程集成华为平台带kerberos认证kafka

    确保替换上述配置中的`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安全性的pac4j安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT。

    spring-security-pac4j项目是一个用于Spring Security Web应用程序和Web服务(带有或不带有Spring Boot)的简单而强大的安全性库。 它支持身份验证和授权,还支持会话固定和CSRF保护等高级功能。 它基于Java 8,...

    Hadoop2.0+Kerberos配置

    6. 配置文件配置:Kerberos的配置文件包括/etc/krb5.conf(全局配置)、/var/kerberos/krb5kdc/kdc.conf(KDC配置)和/var/kerberos/krb5kdc/kadm5.acl(管理员ACL配置)。/etc/krb5.conf文件需要在集群的所有服务器...

Global site tag (gtag.js) - Google Analytics