用户管理系统 管理员手册

用户管理系统 管理员手册

作者:北京群英汇信息技术有限公司
网址:http://www.ossxp.com/
版本:2.5.19-5
日期:2010-07-23 14:44:45
版权信息:Creative Commons

目录

群英汇集中用户管理系统,采用 LDAP 来存储用户信息,通过单点登录系统实现各个系统的认证上的整合。 LDAP 中的用户信息管理,群英汇采用的开源软件 GOsa。本管理员手册主要介绍的是 GOsa 的配置和管理。

1   创建用户组

GOsa 提供了用户管理的 Web 界面,实际上全部的用户数据都存贮在 LDAP 中,GOsa 实际上是一个 LDAP 的管理前端。

LDAP 本身的授权模型非常简单,不能满足一个用户管理系统所需的权限控制要求,GOsa 在这方面做得很好。 和其他授权管理一样,将权限分配到角色(用户组),将用户归于角色(用户组)也是 GOsa 的管理策略。

创建用户组很简单,我们以创建名为 users 的用户组为例:

至于如何添加用户到用户组,可以直接在用户组的组成员列表中进行添加操作。在后面的“添加管理员”中,我们进行操作的示例。

还有一种隐性的添加用户到用户组的方法,就是设置用户的主用户组。可以在用户的服务授权对话框中设置用户的主要用户组,如下:

images/gosa-default-group.png

2   增加新的管理员帐号

系统缺省定义了一个 administrators 用户组,属于该用户组的用户具有管理员权限。 当需要为一个用户赋予管理员权限的时候,只需要将该用户添加到管理员用户组中即可。

images/group-list.png

打开 administrators 用户组,在组成员列表的下方有添加按钮:

images/admin-group.png

点击添加按钮,可以在弹出的用户选择对话框中选择用户帐号,添加到用户组中。

3   部门管理

缺省所有用户都创建在根节点上。对于用户数量比较多,或者需要创建多个针对不同范围用户的管理员时,就需要进行创建新的部门,进行部门管理。

创建和管理部门非常简单,只需要点击管理员界面点击左侧导航条中的 “系统管理--> 部门”,进入部门管理界面,

images/admin-menu.png

在部门管理界面中,可以创建新部门,编辑部门和删除部门

images/dept-mgmt.png

4   用户管理

点击管理员界面点击左侧导航条中的 “系统管理--> 用户”,进入用户管理界面,

images/admin-menu.png

在用户管理界面中,可以创建新用户,创建用户模板,编辑用户,更改用户口令,锁定用户,删除用户等等。

images/user-mgmt.png

我们将上图和用户组管理以及部门管理相比,会发现多出一个图标,多出的图标就是创建用户模板的图标。

4.1   创建用户模板

用户模板的概念很好理解,在管理员创建用户的过程中,会有很多重复工作,诸如设置用户服务授权,设置用户主要组, 设置公司名称,设置用户邮件地址。这些重复的字段,可以通过建立用户模板,减少用户创建过程中的重复劳动, 并降低出错率。

  • 点击用户管理中的图标 new user template icon ,创建新用户模板

  • 输入模板名称,和其他内容

    images/user-edit-profile.png
  • 点击服务标签,进入授权服务编辑页面

    images/user-edit-auth-service1.png
  • 点击“创建服务授权帐号”,显示服务授权编辑对话框

    images/user-edit-auth-service2.png
  • 其他功能标签使用方法与之类似

  • 点击保存,完成新用户模板创建

在用户模板的各个字段中可以使用宏(以%字符开始)。当根据模板创建用户帐号时,宏会自动用相应的值进行替换。例如:

%uid
以用户 ID 进行替换
%sn
以用户的姓进行替换
%givenName
以用户的名字来替换
%sn.%givenName@yourdomain.com

会将用户的姓和名扩展形成邮件地址。

当然对于中文用户来说,更常用的邮件替换可能是 %uid@yourdomain.com

4.2   创建用户

  • 点击用户管理中的图标 new user icon ,创建新用户

  • 显示用户创建对话框,提示可以依据模板创建用户

    images/new_user_from_tmpl.png
  • 选择合适模板,填写用户姓名和登录名,点击下一步继续

    登录名必须由英文字母或数字组成,且在系统中必须保持唯一性。

  • 之后的界面和步骤与前面用户模板创建的界面类似

  • 点击保存,弹出口令设置对话框

    口令设置对话框中,系统自动用随机密码填充,管理员可以保持使用系统提供的随机口令

  • 口令设置完毕后,用户创建成功。系统会自动发出一封通知邮件给新用户,提示新用户更改口令

4.3   浏览用户

在用户管理界面,提供了一个用户浏览的界面。

images/user-list-with-filter.png

需要注意的几点是:

  • 点击工具条的位置下拉框,选择部门,以查看相应部门中的用户,缺省显示根部门用户
  • 缺省只显示用户不显示用户模板
  • 勾选过滤器中的 “显示模板”,可以在显示用户的同时显示用户模板
  • 点击过滤器中的字母列表,显示 UID 以该字母开头的用户列表

5   服务授权

在用户的编辑界面中,有服务授权编辑页面,为用户提供服务授权管理。

5.1   关于服务授权

服务授权并不能替代相应软件中的权限设置,只是一种补充。例如 Subversion 授权有着一套基于授权文件的授权机制。 在服务授权中 svn,只是一个粗放的权限控制。并且是否使用,完全取决于 Subversion 中的设置。

有几个特殊的服务,是相关应用必须用到的:

ssh
拥有该授权的用户,可以访问 OpenSesame (芝麻开门),动态打开 SSH 的 22 端口
admin_list
拥有该授权的用户,是邮件列表 Mailman 的管理员,可以访问邮件列表的管理员接口
admin_list_mod
拥有该授权的用户,是邮件列表 Mailman 的审核员,拥有帐号审批和文章放行的权限,但是没有列表创建和配置修改的权限

5.2   添加新的服务列表

授权服务的增加和删除,需要管理员修改配置文件。配置文件的位置在: "/opt/gosa/conf/services",每个服务一行。

6   其他

6.1   LDAP 管理

群英汇的用户管理系统的后端是 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

6.2   批量用户创建

在最初部署群英汇用户管理系统的时候,有的单位可能要一次性创建上百个用户帐号,即使使用用户模板创建,也是非常痛苦的事情。

群英汇提供一个批量创建用户的工具,让用户初始化过程易如反掌。整个程序以及用户收据和结果都保存在目录 "/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
    
    • 该文件前面的内容是注释,定义了通知邮件模板以及 LDIF 模板中用到的一些宏
    • 倒数第三行,定义了用户记录各个字段的字段名
    • 最后两行是用户数据示例
  • 用户通知邮件的模板为:"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