ubuntu12.04中shibboleth布署

ubuntu12.04中shibboleth布署

0. 环境

操作系统:ubuntu12.04
shibboleth版本:2.4.4
gitlab版本:8.6

1.shibboleth框架

三台虚拟机,一台作为idp,一台作为sp,一台作为ldap
Idp机器:内部IP为192.168.1.137 外部访问url为http://os.cs.tsinghua.edu.cn/mooc-idp/
SP机器:内部IP为192.168.1.136 外部访问url为http://os.cs.tsinghua.edu.cn/mooc-gitlab
ldap机器:内部IP为192.168.1.138 外部访问url为http://os.cs.tsinghua.edu.cn/ldapadmin

原理:SP机器上安装gitlab,把gitlab原有的登录认证改为通过shibboleth认证,当在gitlab登录页面点击Shibboleth按钮时会转发到Idp机器,Idp机器与ldap机器连接,从ldap获取属性,Idp判断之后返回给SP(gitlab)

2.布署ldap

2.1 安装OpenLDAP及可视化工具

ubuntu官方安装流程:https://help.ubuntu.com/lts/serverguide/openldap-server.html

若有需要,请自行安装phpldapadmin(方便网页端访问LDAP)

该镜像已包含phpldapadmin(方便网页端访问LDAP),若从其他渠道安装LDAP,请自行安装该工具。

2.2 利用eduperson.ldif创建模式eduPerson

ldapadd -Y EXTERNAL -H ldapi:/// -f <path of eduperson.ldif>

2.3 登录管理员账号创建存储用户的结点,例如ou=Users,dc=cscw

或者使用命令行添加用户结点

ldapadd -x -D "cn=admin,dc=cscw" -W -f create_group.ldif

2.4 test_ldap.py可用于测试OpenLDAP是否正常工作(修改其中的ip,baseDN以及searchFilter参数,保持与IDP中的配置一致, 详细可参考shibboleth仓库中的配置文件)

2.5 create_user.ldif用于手动创建用户(修改其中的用户参数),用法同create_group.ldif


在ou=Users下创建一个用户如下图。先点击create new entry here.然后在右边出现的面板点击第一项“courier Mail:Account”. 在随之出现的面板中填写用户名,mail,等信息,创建用户。


3. 布署IDP


3.1安装IDP

3.2 验证IDP与Ldap链接是否正常

      跟据上述链接安装好IDP后,下面来验证IDP能否与Ldap正常链接。
        
(1) 在IDP机器上创建文件test.py ,文件内容如下:
import ldap

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
l = ldap.initialize("ldap://192.168.1.138")

l.set_option(ldap.OPT_REFERRALS, 0)
l.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
l.set_option(ldap.OPT_X_TLS,ldap.OPT_X_TLS_DEMAND)
l.set_option( ldap.OPT_X_TLS_DEMAND, True )
l.set_option( ldap.OPT_DEBUG_LEVEL, 255 )
baseDN = "ou=Users,dc=cscw"
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = None
searchFilter = "cn=*z*"
ldap_result_id = l.search(baseDN, searchScope, searchFilter)
result_set = []
while 1:
    result_type, result_data = l.result(ldap_result_id, 0)
    if (result_data == []):
        break
    else:
        if result_type == ldap.RES_SEARCH_ENTRY:
            result_set.append(result_data)
    print result_set

把上面内容的
ldap://192.168.1.116:389改为你的ldap的ip
baseDN="ou=Users,dc=cscw" 改为你的ldap的baseDN
searchFilter="cn=*Li*" 改为你在ldap建的用户

(2)执行下面的命令:
sudo apt-get install python-ldap
python test.py

可以看到如下的结果(返回用户属性),证明IDP与Ldap链接正常。


3.3 在IDP端配置LDAP验证

在3.2中我们己经保证了能够从IDP机器链接到Ldap机器并获得用户的属性。接下来我们通过修改IDP端的配置文件来实验IDP与LDAP链接验证。
3.3.1 修改handler.xml
输入下面的命令:
vi /opt/shibboleth-idp/conf/handler.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值