首页 > 代码库 > linq使用法

linq使用法

http://blog.csdn.net/qq_15117745/article/details/45749359

上星期被要求去项目支援,丫的到月份了,人都跳光了技术分享

还得先学习,LDAP??  一个集团的人员管理系统,70几万人几十个应用服务的SSO单点关联操作,好像很牛的样子。。。

 

参考文档:

1.http://baike.baidu.com/link?url=qlh7cwhGpdML3mrWt9an8WFkaYSpSspLzEAEV8v30nh9Y91Zc_RmwX8_RqWiu6ekGM98osTB9Cz1suKfdNnYjK

2.http://blog.163.com/yinjianrui1987@126/blog/static/2549919720147532914371/

3.http://blog.sina.com.cn/s/blog_72ee04a40100p0ce.html

 

一、LDAP简介

首先LDAP是轻量目录访问协议。

LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念了。

都是节点控制,跟我们通用的数据形式有很大却别。

一直有疑问为什么用LDAP?  后来才知道是因为读写速度,构架跟我说LDAP的读写比例是10:1,读取速度是可取之处。方便人员管理。

大多数LDAP目录用OU从逻辑上把数据分开来。表示公司内部的机构:销售部、财务部,等等。

现在LDAP还保留ou=这样的命名规则,但是扩展了分类的范围,可以分类为:ou=people, ou=groups, ou=devices,等等。

定制对象群例如:

你可以用LDAP存储各种类型的数据对象,只要这些对象可以用属性来表示,下面这些是可以在LDAP中存储的一些信息:

l 员工信息:员工的姓名、登录名、口令、员工号、他的经理的登录名,邮件服务器,等等。

 

[html] view plain copy
 
  1. <span style="background-color: rgb(255, 255, 255);">LDAP目录树是这样的:  
  2. dc=foobar, dc=com  
  3. ou=customers  
  4. ou=asia  
  5. ou=europe  
  6. ou=usa  
  7. ou=employees  
  8. ou=rooms  
  9. ou=groups  
  10. ou=assets-mgmt  
  11. ou=nisgroups  
  12. ou=recipes</span>  

 



二、搭建LDAP服务器
主要参考(1)linux杂谈(十一):LDAP服务器的搭建,地址为:http://www.2cto.com/os/201404/296572.html

(2)RHEL6配置简单LDAP服务器,基于TLS加密和NFS的用户家目录自动挂载,地址为:http://blog.sina.com.cn/s/blog_64aac6750101gwst.html

我们需要两台在同一个网段能够通信的主机或者虚拟机。本次测试的两台机器均为RedHat 6.4(其他的版本可能配置方法与此有些出入)
1.第一个是服务端,我们首先要安装LDAP服务器:RedHat 6.4的ISO文件中有这个openldap-servers包
技术分享
2.把配置文件的模板拷贝到配置目录上:
技术分享
3.删除掉没有用的配置文件lapd.conf(注:删除schema会出错,本次测试保留,下图有所出入)
技术分享
4.修改配置文件权限和用户:
技术分享
5.编辑配置文件,修改一下几处:
(1)TLS开头加密的那几行注释掉;
技术分享
(2)这个部分注释掉:
技术分享
(3)这些做如下修改:
技术分享
要非常注意的是:rootpw一定要在这行的开头,不能有空格,否则是不生效的!!!
secret是LDAP的明文密码
也可以修改成加密的密码,方法如下:
技术分享
 (4)然后重启sldap服务:
技术分享
6.虽然服务已经配置好了,但是我们还没有创建要共享的用户,下面我们用脚本创建100个用户:
技术分享
技术分享
执行用户创建过程,但是因为是shell编写的脚本,执行过程会比较缓慢,耐性等等,你可以在/etc/passwd文件中查看创建进度。
技术分享
我们可以看到100个新用户已经创建成功了:
技术分享
但是有一个问题,这些用户的书写格式是无法直接导入到LDAP服务器上的,所以我们一定要采用格式转换工具来转变格式:
migrationtools是一个格式转换工具,我们先来安装它:
技术分享
安装完以后我们跳转到它的目录下,发现有很多可执行脚本用来约束格式的:
技术分享
在migrate_common.ph中修改一下几项:
技术分享
然后把基本的导入模型进行设置:分为两个部分,产生base.ldif和修改base.ldif:
技术分享
因为我们只设置它的用户和组,所有只留下这两个部分,其他的全部删除:
技术分享
把base.ldif转移到/ldapuser目录下:
技术分享
下面这两个操作是最关键的,我们要把共享的用户和组的信息从passwd和group中截取出来:
技术分享
然后把这些用户和组的信息转换成可以放到LDAP服务器上的格式:
转换用户:
技术分享
转换组:
技术分享
先导入基本模板,然后导入用户和组信息:下图中最后的命令中/data/user.ldif好像是错误的,去掉/data/,直接用user.ldif,另外本次测试中下面的命令是在/ldapuser下执行的
如果出现错误:
ldap_bind: Invalid credentials (49)
就表示你要么给出了错误的"cn="条目,要么给出了错误的密码
技术分享
技术分享
技术分享
完成后重启slapd服务并刷新火墙。
技术分享
至此,没有安全密钥的LDAP服务端就配置完成了,我们使用另外一台机子的服务端对其进行访问,并且切换用户:
技术分享
技术分享
写入服务端的IP:
技术分享
好了!!最激动人心的时候到了,我们切换用户到myldapuser1下,这个用户在客户端的机子上是没有的,但是现在却可以登录。
技术分享
说明服务端的用户共享是成功的,可以被其他机子访问。而且最大的优点是:我们可以只更改服务端的用户和组信息就可以完成对其他客户端的影响了。非常的实用方便。这个只是LDAP服务的一个功能。以后遇到了会更深入的了解。
注:这个服务是RHCA阶段的配置,如果感觉第一次比较吃力的话,多配几次,总结成文档,对LDAP的了解就会加深。
 
由于上述配置没有LDAP用户的主目录,因此可以实现基于NFS的LDAP用户主目录

1) 在LDAP服务器上 配置nfs服务器

技术分享
  如果不是on则远程用户无权限进入自己的目录。 

 

2) 配LDAP客户端。必须有第一节的目录,即:/ldapuser,其它可以没有!

 技术分享

 如果不能自动mount,可在配置好LDAP服务器后重启,

或者可执行:#mount -t nfs 192.168.2.102:/ldapuser /ldapuser -o nolock

#ls /ldapuser应显示LDAP服务器/ldapuser的内容

另外,关于NFS服务器配置,可参见  Linux NFS服务器的安装与配置  

  

  3) 测试登录,有家目录了!
 
用GUI界面查看LDAP用户

最好是:cd /var/www/html/目录,再下载phpldapadmin-1.2.2.tgz (版本要新点的,不要下错啊!否则可能造成无法使用)

 技术分享

 然后在客户机上打开浏览器http://192.168.0.111/myldap访问LDAP。如下: 技术分享
 

登录的时候:DN框输入:cn=Manager,dc=example,dc=com,输入密码。

技术分享

 

登录成功!列出目录用户技术分享

 

每次重启LDAP服务器后应执行以下命令:

[root@LDAPSERVER ~]# exportfs -r

[root@LDAPSERVER ~]# /etc/rc.d/init.d/nfs start

[root@LDAPSERVER ~]# service slapd restart

[root@LDAPSERVER ~]# iptables -F

另外要强调的是,客户机的启动要在LDAP服务器完全配置好并运行上述命令后启动,否则有可能不能自动挂载

 最后,非常感谢原作者的热心分享!!

linq使用法