过去配置过一次,有很多问题,但是最后似乎搞成了。
最近搞的时候又问题无数。所以还是要做个备忘,以免以后重蹈覆辙。
1. Apache的验证模块:mod_auth_kerb
地址:
http://modauthkerb.sourceforge.net/
此模块的问题:
a. 这个模块支持HTTP Negotiation验证(即SPNEGO),但是不支持NTLM只支持Kerberos。而IE似乎在某种情况下会返回NTLM,所以自动的Negotiation验证就会失败(此问题待考)。FF完全按照config所设的来,所以没有问题。
b. 如果Negotiation失败,可以用HTTP Basic验证。但是Basic验证很不安全,必须和HTTPS结合使用。本模块只支持Basic,不支持其他备选的验证方式。Basic验证也可关闭。
c. 如果失败,可以将验证委托给其他模块,但没有试验过,可能需要自己编程。
d. 错误信息不友好,常让人不明所以。
e. 它仅仅是一个验证模块,并不会记录cookie/session来保持验证信息,所以每次访问都会有一次401。
Solaris另有一个模块也支持Negotiation,与前者稍有不同,没有用过,不述。
2. Linux使用Windows Domain作为Kerberos服务器
a. linux上配置/etc/krb5.conf,通常直接设domain就可以了,会根据DNS自动寻找kdc服务器。
b. 时间要同步。最好将domain controller作为ntp服务器。
c. 测试命令:
kinit
kvno
kdestroy
klist
3. 从Windows Domain中导出Kerberos所需的keytab
a. 在domain中建立一个用户,表示一项服务。
b. 到domain controller上用命令行,使用ktpass.exe导出keytab。
注意:Windows 2003 sp1的ktpass有bug(shit M$),导致导出的keytab密码不对!需改用Windows 2003 sp2的ktpass。
ktpass可将用户映射为一个serviceprincipalname,格式为service/fqdn@DOMAIN。对于mod_auth_kerb来说,默认前缀为HTTP。所以假设domain为EXAMPLE.COM(Domain都是全大写的),site的fqdn为mysite.example.com(域名为小写的,并且必须是完全域名),则princ为:HTTP/mysite.example.com@EXAMPLE.COM。ktpass会自动加Domain。需为该映射设定一个密码,这个密码与用户原密码不同,kvno会做对应增加。type需要设定为KERBEROS_SRV_HST。
c. 在linux上测试该keytab
kinit -k -t keytabfile HTTP/mysite.example.com@EXAMPLE.COM
4. 配置apache的conf文件
略
5. 验证过程需要对上域名,所以
a. 要使用fqdn,如果是CNAME要使用最后的name。
b. 需要PTR记录,从IP指回fqdn。
c. 如无PTR,或许可以在linux上写上hosts文件,内容为IP对应fqdn。
结论:
确实挺烦。而且灵活性不够,比如我怎样只为内网(hostname不含完整域名后缀)启用kerb,而外网用其他验证模式?设成几个vhost有点太过。Basic不安全。每次都401浪费。
当前目标:找一个纯Java的解决方案,然后最好能很灵活的配置。
可以根据条件(如hostname、port、来源IP、时段等)设定不同的验证方案。
可以顺序发出几个不同的auth候选:
Negotiation
Kerberos
NTLM
Digest
Basic
可以选择其中几种,也可以去掉最后的Digest/Basic改转为form-based验证。
这个理想目前还无法实现(不过也许有商业软件已经实现了)。
分享到:
相关推荐
适用于Apache 1.3.26的GSS-API / SPNEGO身份验证模块; SPNEGO API(请参阅fbopenssl);适用于Apache 1.3和2.0的SPNEGO身份验证模块(请参见mod_spnego)
Administering SPNEGO within WebSphere Application Server
6. **邮件服务器与域的关系**:邮件服务器应被添加到AD域中,以防止因同一IP地址发送大量邮件而被视为攻击,导致邮箱被锁定。同时,可能需要在IP Ranges中排除禁止的IP,确保邮件正常收发。 7. **NTLM登录**:NT ...
### cas spnego认证方式高可用集群方案 ...该方案不仅解决了传统CAS集群中的常见问题,还针对SPNEGO认证模式下特有的技术难题提供了详尽的解决思路与实践指南,为企业级应用的安全稳定运行提供有力支持。
cas3.4用到的jar
6. 身份验证改进:加强了身份验证机制,支持更多认证方法,如SPNEGO、JWT等。 7. URL重写:通过mod_rewrite模块,可以方便地进行URL重写,优化SEO,实现动态URL到静态URL的转换。 8. 兼容性提升:支持最新的HTTP/2...
4. **自定义验证器**:Apache CAS支持多种验证机制,包括LDAP、JDBC、SPNEGO等。你可以根据需求编写自定义的验证器,以灵活处理客户端的登录请求。这可能涉及到编写Java代码并将其打包为一个CAS服务提供者模块。 5....
Apache HBase是Apache Software Foundation旗下一个开源的非关系型分布式数据库(NoSQL),它是Apache Hadoop的数据库,用于存储大规模稀疏数据集。HBase参考指南为开发者提供了一个全面的文档,用于理解和使用HBase...
卷曲7.x(GSS协商),7.x(SPNEGO / fbopenssl) 用于这些测试的底层kerberos库是MIT KRB5 v1.8。 安装 下载 提取到目录 将此模块克隆到目录中 遵循,并将--add-module选项传递给nginx configure: ./configure --...
mod_spnego 允许使用 Kerberos 对在 Windows 上的 Apache HTTP 服务器 (httpd) 上运行的网站的用户进行身份验证。 然后,经过身份验证的用户在服务器变量 AUTH_USER 中可用。 sourceforge 上仅托管下载,来源位于 ...
- **下载与解压**:从Apache官方网站获取"apache-tomcat-8.0.23"压缩包,解压后放入服务器的适当目录。 - **环境变量设置**:配置`CATALINA_HOME`环境变量指向Tomcat的安装目录。 - **修改配置文件**:根据需求...
7. Securing Apache HBase 部分提供了关于如何使用安全机制保护 HBase 的指南,例如使用 HTTPS、Kerberos 和 SPNEGO 进行 Web UI 认证,以及如何保护对 HBase 的访问。 8. Security 部分深入探讨了 HBase 的安全性...
3. **更好的安全管理**:Tomcat 8增强了安全功能,包括支持SPNEGO(Kerberos)身份验证和改进的SSL/TLS配置,可以更好地保护Web应用免受攻击。 4. **Jasper升级**:Jasper是Tomcat的JSP编译器,8.0版本中进行了优化...
- **使用SPNEGO进行Kerberos认证**,提供了Web界面与Kerberos结合的详细步骤。 - **HBase客户端安全访问**,包括访问控制列表(ACLs)、安全用户认证和授权等。 ### 6. HBase的架构和高级特性 - **区域服务器...
4. **更好的安全性**:Tomcat 9 引入了更多的安全特性,如支持SPNEGO(Simple and Protected GSSAPI Negotiation Mechanism)身份验证,以及改进的SFTP和HTTPS配置。 5. **性能优化**:通过优化内存管理和线程池,...
Java 中的集成 Windows 身份验证(单点登录)。
已启用KDC和SPNEGO的Nginx 先决条件 已在以下环境中进行了测试 kdc:Ubuntu 20.04 Intel + Docker稳定版,kerberos客户端:Ubuntu 20.04 Intel kdc:Ubuntu 20.04 Intel + Docker稳定版,kerberos客户端:Macos ...
SPNEGO是用于在HTTP环境中实现Kerberos身份验证的协议,常见于Windows域环境与Java应用的集成。 【描述】中的"artisanal-pickle-maker.zip"则是一个与Scala编程语言相关的项目,描述提到这是一个手工制作斯卡拉...
- 使用SPNEGO进行Kerberos认证。 - 为Apache HBase配置安全客户端访问。 - 简单用户对HBase的访问。 - 对HDFS和ZooKeeper访问的安全配置。 综上所述,《Apache HBase Reference Guide》覆盖了HBase从安装、配置到...