| 作者: | 北京群英汇信息技术有限公司 |
|---|---|
| 网址: | http://www.ossxp.com/ |
| 版本: | 2.5.19-5 |
| 日期: | 2010-07-23 14:44:45 |
| 版权信息: |
目录
群英汇集中用户管理系统,采用 LDAP 来存储用户信息,通过单点登录系统实现各个系统的认证上的整合。 LDAP 中的用户信息管理,群英汇采用的开源软件 GOsa。本管理员手册主要介绍的是 GOsa 的配置和管理。
GOsa 提供了用户管理的 Web 界面,实际上全部的用户数据都存贮在 LDAP 中,GOsa 实际上是一个 LDAP 的管理前端。
LDAP 本身的授权模型非常简单,不能满足一个用户管理系统所需的权限控制要求,GOsa 在这方面做得很好。 和其他授权管理一样,将权限分配到角色(用户组),将用户归于角色(用户组)也是 GOsa 的管理策略。
创建用户组很简单,我们以创建名为 users 的用户组为例:
首先以管理员帐号登录 GOsa,点击左侧导航条中的 “系统管理--> 用户组”,进入组管理界面,
点击“创建新组”的图标,位于“位置选择下拉框” 左侧的图标
输入用户组组名
设置用户组ACL。本例中,我们设置 users 组的用户,只能更改自己的个人信息及口令,即:
点击保存,设置完毕
至于如何添加用户到用户组,可以直接在用户组的组成员列表中进行添加操作。在后面的“添加管理员”中,我们进行操作的示例。
还有一种隐性的添加用户到用户组的方法,就是设置用户的主用户组。可以在用户的服务授权对话框中设置用户的主要用户组,如下:
系统缺省定义了一个 administrators 用户组,属于该用户组的用户具有管理员权限。 当需要为一个用户赋予管理员权限的时候,只需要将该用户添加到管理员用户组中即可。
打开 administrators 用户组,在组成员列表的下方有添加按钮:
点击添加按钮,可以在弹出的用户选择对话框中选择用户帐号,添加到用户组中。
缺省所有用户都创建在根节点上。对于用户数量比较多,或者需要创建多个针对不同范围用户的管理员时,就需要进行创建新的部门,进行部门管理。
部门可以嵌套,形成一个从根开始的机构树
用户和用户组建立在部门之上
之前介绍的用户组创建,实际上是创建在 “/” (根部门)上
属于某部门的用户组,只能对本部门的记录具有相应权限
系统管理员,一定要属于建立在根上的 administrators 用户组
创建和管理部门非常简单,只需要点击管理员界面点击左侧导航条中的 “系统管理--> 部门”,进入部门管理界面,
在部门管理界面中,可以创建新部门,编辑部门和删除部门
点击管理员界面点击左侧导航条中的 “系统管理--> 用户”,进入用户管理界面,
在用户管理界面中,可以创建新用户,创建用户模板,编辑用户,更改用户口令,锁定用户,删除用户等等。
我们将上图和用户组管理以及部门管理相比,会发现多出一个图标,多出的图标就是创建用户模板的图标。
用户模板的概念很好理解,在管理员创建用户的过程中,会有很多重复工作,诸如设置用户服务授权,设置用户主要组, 设置公司名称,设置用户邮件地址。这些重复的字段,可以通过建立用户模板,减少用户创建过程中的重复劳动, 并降低出错率。
点击用户管理中的图标
,创建新用户模板
输入模板名称,和其他内容
点击服务标签,进入授权服务编辑页面
点击“创建服务授权帐号”,显示服务授权编辑对话框
其他功能标签使用方法与之类似
点击保存,完成新用户模板创建
在用户模板的各个字段中可以使用宏(以%字符开始)。当根据模板创建用户帐号时,宏会自动用相应的值进行替换。例如:
会将用户的姓和名扩展形成邮件地址。
当然对于中文用户来说,更常用的邮件替换可能是 %uid@yourdomain.com
点击用户管理中的图标
,创建新用户
显示用户创建对话框,提示可以依据模板创建用户
选择合适模板,填写用户姓名和登录名,点击下一步继续
登录名必须由英文字母或数字组成,且在系统中必须保持唯一性。
之后的界面和步骤与前面用户模板创建的界面类似
点击保存,弹出口令设置对话框
口令设置对话框中,系统自动用随机密码填充,管理员可以保持使用系统提供的随机口令
口令设置完毕后,用户创建成功。系统会自动发出一封通知邮件给新用户,提示新用户更改口令
在用户管理界面,提供了一个用户浏览的界面。
需要注意的几点是:
在用户的编辑界面中,有服务授权编辑页面,为用户提供服务授权管理。
服务授权并不能替代相应软件中的权限设置,只是一种补充。例如 Subversion 授权有着一套基于授权文件的授权机制。 在服务授权中 svn,只是一个粗放的权限控制。并且是否使用,完全取决于 Subversion 中的设置。
有几个特殊的服务,是相关应用必须用到的:
授权服务的增加和删除,需要管理员修改配置文件。配置文件的位置在: "/opt/gosa/conf/services",每个服务一行。
群英汇的用户管理系统的后端是 LDAP 服务器,一些界面中不能实现或者不易实现的操作可以通过 LDAP 命令来完成。
例如查询哪些用户拥有 ssh 授权,可以使用命令:
$ ldapsearch -b dc=foo,dc=bar -D cn=ldapadmin,dc=foo,dc=bar -x -W "authorizedService=ssh" uid
更多关于 LDAP 的使用和管理,可以参考:https://help.ubuntu.com/8.10/serverguide/C/openldap-server.html
在最初部署群英汇用户管理系统的时候,有的单位可能要一次性创建上百个用户帐号,即使使用用户模板创建,也是非常痛苦的事情。
群英汇提供一个批量创建用户的工具,让用户初始化过程易如反掌。整个程序以及用户收据和结果都保存在目录 "/opt/gosa/contrib/users_batch_import" 下。
首先编辑用户信息定义文件: "test/input.txt"
# define mail_from 系统管理员 <noreply@moon.ossxp.com> # define host_single_signon weblogin.moon.ossxp.com # define host_members weblogin.moon.ossxp.com # define host_wiki wiki.moon.ossxp.com # define host_svn dev.moon.ossxp.com # define host_redmine dev.moon.ossxp.com # define host_testlink dev.moon.ossxp.com # define host_mailman list.moon.ossxp.com # define basedn dc=bj,dc=ossxp,dc=com # define st 北京 # define l 北京 # define o 北京群英汇信息技术有限公司 # define preferredLanguage zh_CN # define personalTitle 先生 # define gidNumber 1001 # Fields list defination: # eg: define _fields_ employeeNumber|cn|ou|mail|mobile|telephoneNumber # define _fields_ uid|cn|mail|mobile|telephoneNumber zhang3|张三|zhangsan@moon.ossxp.com|13900000000|8001 li4|李四|li4@moon.ossxp.com|13900000000|8002
用户通知邮件的模板为:"test/email.template" ,一般无须更改
From: %(mail_from)s To: %(cn)s <%(mail)s> Subject: [用户认证中心] 欢迎, %(cn)s %(cn)s,您好 欢迎您成为认证用户,用户认证系统已经为您创建好用户帐号,信息如下: * 登录帐号: %(uid)s * 初始口令: %(plainPassword)s 认证中心系统首页地址: https://%(host_single_signon)s/ * 初始口令不安全,请您及时登录系统完成口令修改 * 您也可以使用您的邮件地址作为登录名: %(mail)s * 如果您忘记口令,您可以从认证中心的主页找到忘记口令的链接, 输入正确的用户名和邮件地址,新口令会发到您的邮箱 登录后,在管理员完成授权的情况下,您可以访问: * 知识管理主页 - http://%(host_wiki)s/wiki/ * 博客 - http://%(host_wiki)s/blog/ * 版本控制系统 - https://%(host_svn)s/svn/<projectid> * 项目管理系统 - http://%(host_redmine)s/redmine/ * 测试资产管理 - http://%(host_testlink)s/testlink/ * 邮件列表 - http://%(host_mailman)s/mailman/ * 帐号管理 - https://%(host_members)s/members/ -- 系统管理员 %(o)s
LDIF 模板是用于将用户数据生成 LDIF 文件,用以导入 LDAP 的模板:"test/ldif.template"
# %(uid)s, %(basedn)s dn: uid=%(uid)s,ou=people,%(basedn)s sn%(:sn)s givenName%(:givenName)s uid: %(uid)s cn%(:cn)s personalTitle%(:personalTitle)s preferredLanguage: %(preferredLanguage)s userPassword%(:userPassword)s ...
编辑完毕 test/input.txt 之后,执行 make,开始群发邮件,并将产生的 LDIF 导入文件保存到 output.txt
$ make run
将 output.txt 导入到 LDAP 中,即完成用户帐号创建
$ ldapadd -x -D "cn=ldapadmin,dc=foo,dc=bar" -W -f test/output.txt