前段时间因为项目需要在Ubuntu+Apache的环境下配置了基本Active Directory的Kerberos验证, 主要为了实现WEB应用基于AD的单点登陆SSO(即SingleSignOn).
下面将配置过程做简单记录:
0. 先说一下我的环境
Ubuntu9.04 + Apache2.2x + Win2k8 & AD
1. 因为Apache本身是不支持Kerberos的, 所以我们第一步是安装Kerberos Module for Apache即Mod_auth_kerb , 关于这个mod的文档资料和下载可以在官网找到. 在Ubuntu下不需要编译安装, 执行下面的apt-get搞定mod的安装. 安装后Apache的配置中会自动加载mod_auth_kerb.so, 不需要手工修改配置文件.
LINUX
# sudo apt-get install libapache2-mod-auth-kerb
2. 装好Mod_auth_kerb后, 我们来对Kerberos进行配置, 编辑/etc/krb5.conf, 这里建议将原配置文件备份(cp /etc/krb5.conf /etc/krb5_bak.conf), 然后清空原配置文件内容, 贴入如下配置信息并按实际需求进行相应修改(default_realm, kdc, example.com).
CONF
[libdefaults]
ticket_lifetime = 24000
default_realm = EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
EXAMPLE.COM = {
kdc = dc-01.example.com:88
kdc = dc-02.example.com:88
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
3. 修改好配置文件后, 我们先来对Kerberos进行一个测试, 验证一下配置是否正确.命令行下执行kinit , 按提示输入AD用户的密码. 再在命令行下执行klist命令, 如果出现如下提示, 表示Kerberos验证成功.
CONF
# kinit Username
Password for Username @ EXAMPLE.COM:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Username @ EXAMPLE.COM
Valid starting Expires Service principal
07/23/10 15:57:06 07/23/10 22:37:06 krbtgt/ EXAMPLE.COM @ EXAMPLE.COM
4. 在WinServer端生成.Keytab文件, 然后将生成的.keytab文件copy到ubuntu上.
CONF
C:\Program Files\Support Tools>ktpass -princ HTTP/apache.server.fqdn@ EXAMPLE.COM -mapuser apache_server -crypto DES-CBC-MD5 -ptype KRB5_NT_PRINCIPAL -mapop set +desonly -pass apache_password -out name.keytab
5. 接下来配置Apahe的http.conf, 使所有或全部的WEB应用通过Kerberos进行登陆验证. Location项即作用路径, 这里我用通配符设置了webroot/krb和webroot/test两个路径. Krb5Keytab项后添上一步生成的keytab文件的及存放路径. 具体如下
CONF
<Location ~ "/(krb|test)">
AuthName "Kerberos Login"
AuthType Kerberos
Krb5Keytab /etc/auth_kerb.keytab
KrbAuthRealm EXAMPLE.COM
KrbMethodNegotiate off
KrbSaveCredentials off
KrbVerifyKDC off
Require valid-user
</Location>
6. 重启Apahce
LINUX
# /etc/init.d/apache2 restart
7. 到这里配置过程就全部完成了, 下面我们可以测试一下. 在webroot/krb下建index.php, 写入如下内容.
PHP
<?php
echo "<table border=\"1\">";
foreach($_SERVER as $k=>$v){
echo "<tr><td>".$k."</td><td>".$v."</td></tr>";
}
echo "</table>"
?>
浏览器上访问http://hostaddress/krb. 这时浏览器会弹出如下的登陆框, 用AD账号登陆试一下吧, 登陆成功的话页面上会显示$_SERVER信息, 并$_SERVER中会多出个[‘REMOTE_USER’]来.
整个配置过程算是比较顺利, 参考文档如下, 欢迎有兴趣的朋友与我交流 leon@nerrsoft.com
http://sivel.net/2007/05/sso-apache-ad-1/
http://support.microsoft.com/kb/555092/en
http://stackoverflow.com/questions/389175/kerberos-authentification-in-php
http://modauthkerb.sourceforge.net/install.html
https://help.ubuntu.com/community/SingleSignOn
http://www.midgard-project.org/documentation/kerberos-single-sign-on-with-active-directory/
http://michele.pupazzo.org/diary/?p=460
分享到:
相关推荐
赠送jar包:apacheds-kerberos-codec-2.0.0-M15.jar; 赠送原API文档:apacheds-kerberos-codec-2.0.0-M15-javadoc.jar; 赠送源代码:apacheds-kerberos-codec-2.0.0-M15-sources.jar; 赠送Maven依赖信息文件:...
配置OpenLDAP使用Kerberos验证[参考].pdf
赠送jar包:apacheds-kerberos-codec-2.0.0-M15.jar; 赠送原API文档:apacheds-kerberos-codec-2.0.0-M15-javadoc.jar; 赠送源代码:apacheds-kerberos-codec-2.0.0-M15-sources.jar; 包含翻译后的API文档:...
标签:apacheds-kerberos-shared-1.0.1.jar.zip,apacheds,kerberos,shared,1.0.1,jar.zip包下载,依赖包
这是自主做的实验 是参考网上资料及学院老师引导做出来的实验 但是网上是不会这么详细的资料的 像这样的配置实验室没有这么具体的实现步骤的 但是由于是我们的课程设计报告 我们话费了很多时间来实现过程的验证 现在...
centos7 pyhive连接hive(基于kerberos)。由于基于kerberos校验的hive服务器通过python连接的过程很麻烦,故整理文档。
Hadoop部署和配置Kerberos安全认证全套流程。已经过实测并部署与生产环境。
描述怎么样使用 ldap+apacheDS in jxplorer
基于Kerberos的外卖系统源码.zip ...基于Kerberos的外卖系统源码.zip基于Kerberos的外卖系统源码.zip基于Kerberos的外卖系统源码.zip基于Kerberos的外卖系统源码.zip基于Kerberos的外卖系统源码.zip
本文档记录了为hadoop的hdfs配置kerberos的过程,hadoop用的版本是2.4.1。其中有一些作者的个人经验,希望对读者有帮助。
这个里面是kafka配置kerberos的详细步骤,其方式也可以应用到kafka自带的认证体系
Windows Server 2008 R2 AD DS架构-第05部分 Kerberos及LDAP协议
对于AD域控制器下设置kerberos,以及iis登陆使用kerberos认证方式
kafka 配置 kerberos,设置 ACL权限, java 客户端连接。
标签:apacheds-protocol-kerberos-1.0.1.jar.zip,apacheds,protocol,kerberos,1.0.1,jar.zip包下载,依赖包
当今的客户一般都有异构环境,其中混合了 UNIX:registered: 和 Windows:registered: 系统。...Microsoft Windows Server 版本还支持基于 Kerberos 的身份验证,这种身份验证机制与 IBM NAS 是可互操作的。
kerberos是由mit开发的提供网络认证的系统。使用kerberos自己提供的ktelnetd、krlogind、krshd来替换传统的telnetd、rlogind、rshd服务。
用java语言实现的简单的kerberos,可以对客户端进行AS,tgs的认证
Authentication解决的是“如何证明某个人确确实实就是他或她所声称的那个人”的问题。对于如何进行Authentication,我们采用这样的方法:如果一个秘密(secret)仅仅存在于A和B,那么有个人对B声称自己就是A,B通过...
hadoop_kerberos 配置权限验证.pdf