内容


在 AIX 上配置单点登录身份验证

Comments

概述

单点登录 (SSO) 为什么对系统有好处?它的主要优点是,如果集中地存储用户凭证信息,用户只需向服务器验证身份一次,即可开始使用所有系统上的资源。用户不需要向每个客户机验证身份。

SSO 还可以提高网络用户的生产力,减少网络操作的成本,增强网络安全性。

图 1. AIX® 上的 SSO 身份验证
AIX 上的 SSO 身份验证
AIX 上的 SSO 身份验证

图 1 说明在 AIX 使用集中的身份验证服务器(比如 Microsoft® Windows® Active Directory 服务器)的情况下 SSO 身份验证的工作方式。

当用户使用 SSH/telnet 作为 AIX client1 登录时,提示用户输入密码。用户密码被发送到集中的服务器以证实用户的身份。证实用户的身份之后,向用户颁发服务票据。用户可以使用同一个服务票据访问其他 AIX 客户机系统,而不需要重新输入密码。

关于在 AIX 上配置使用 Kerberos 的 Open SSH 的信息,请参见 参考资料

SSO 身份验证机制的优点

SSO 的优点包括:

  • 单点登录使用集中的服务器执行身份验证,可以使用相同的凭证访问任何客户机系统。
  • SSO 可以减少同一用户重新输入用户名和密码所花费的时间。
  • SSO 可以减少集中的服务器的网络通信量。
  • 对于所有用户和所有应用程序,SSO 使用相同的身份验证方法证实其身份。
  • SSO 可以减少访问数据的操作成本和时间。
  • 用户不需要记住很多密码。

范围

本文讨论如何为 AIX Kerberos 客户机配置 Microsoft Windows Active Directory 服务器作为 Kerberos Key Distribution Center (KDC),以及如何在各个 AIX Kerberos 客户机之间实现单点登录身份验证机制。

配置 Microsoft Active Directory 服务器

关于如何在 Windows 2003 上配置 Microsoft Active Directory 服务器,请参见 参考资料

另外,还要确保 KDC 正在运行。可以通过服务窗口检查 (Programs -> Administrative tools -> Services)。如果 Kerberos KDC 没有运行,那么右键单击并选择 Start 选项以启动 KDC 服务器。

为 AIX Kerberos 客户机配置 Microsoft Active Directory 服务器

使用 smit 或 installp 命令在 AIX 客户机系统上安装 Kerberos 文件集。可以在 AIX expansion CD 上找到这些文件集,也可以从网上下载(下载信息见 参考资料)。

#lslpp –l | grep krb5
krb5.client.rte                     1.4.0.7  COMMITTED  Network Authentication Service
krb5.client.samples            1.4.0.7  COMMITTED  Network Authentication Service
krb5.msg.en_US.client.rte  1.4.0.7  COMMITTED  Network Auth Service Client

确保可以从 AIX 客户机访问 Microsoft Active Directory 服务器。然后,按以下步骤针对 Microsoft Active Directory 服务器配置 AIX Kerberos 客户机。

  1. 如果以前在 AIX 客户机上配置过 Kerberos 客户机,那么执行以下命令。否则,跳过这个步骤。
     #/usr/sbin/unconfig.krb5
     Warning: All configuration information will be removed.
     Do you wish to continue? [y/n]
      y
     Removing configuration...
     The command completed successfully
  2. 使用 config.krb5 命令配置 AIX Kerberos 客户机。这里选择 Microsoft Active Directory 2003 作为 Kerberos 服务器。在 config.krb5 命令中需要使用以下选项。
    • -r realm = Windows 2003 Active Directory 服务器域名
    • -d domain = 驻留 Windows 2003 Active Directory 服务器的机器的域名
    • -c KDC = Windows 2003 服务器的主机名
    • -s server = Windows 2003 服务器的主机名
    #config.krb5 -C -r ZTRANS.IBM.COM -d in.ibm.com -c windows2k3.in.ibm.com 
         -s windows2k3.in.ibm.com 
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type... 
    Creating /etc/krb5/krb5.conf... 
    The command completed successfully.
  3. Microsoft Windows Active Directory 服务器并不支持所有加密机制。对 /etc/krb5/krb5.conf 文件做以下修改以支持票据加密算法。

    按以下代码编辑文件:

         ….
            default_tkt_enctypes = des-cbc-crc des-cbc-md5 
            default_tgs_enctypes = des-cbc-crc  des-cbc-md5
  4. 在 /usr/lib/security/methods.cfg 文件中添加以下条目:
           KRB5A: 
                            program = /usr/lib/security/KRB5A 
                            options = authonly
          KRB5Afiles: 
          options = db=BUILTIN,auth=KRB5A
  5. 在 Microsoft Windows 2003 Active Directory 上,用 AIX 主机名为 AIX 客户机创建用户名。

    例如,在这个示例中 AIX 客户机的主机名是 indus52.in.ibm.com。因此,在 Windows Active Directory 上创建用户 indus52。在创建用户时,提示输入用户的密码。为用户提供一个有效的密码。

  6. 在 Microsoft Active Directory 服务器上,执行 ktpass 命令为 AIX 客户机生成 keytab 文件。

    在默认情况下,Windows 2003 服务器上没有安装 ktpass 命令。可以从 Windows 2003 CD 中的 “support tools” 目录安装这个命令。

    ktpass –princ host/indus52.in.ibm.com@ZTRANS.IBM.COM  -mapuser indus52 
         -pass admin –kvno 3 -out indus52.keytab

    注意,对于 Windows 2003,ktpass 在默认情况下生成的 KVNO(密钥版本号)为 1。当 AIX 客户机试图连接 AD 时,AD 2003 总是返回 3,这与 keytab 文件中的 KVNO 需求不匹配。通过指定 -kvno 3 选项生成 KVNO 为 3 的 keytab 文件。

    把这个 keytab (indus52.keytab) 文件以二进制模式复制到 AIX Kerberos 客户机。

  7. 使用 ktutil 命令把复制的文件合并到 /etc/krb5/krb5.keytab 文件中。
    $ ktutil
      ktutil: rkt indus52.keytab
      ktutil: wkt /etc/krb5/krb5.keytab
      ktutil: q

    在 ktutil 中使用 list 命令查看 keytab 的值:

    Ktutil: list
    Slot     KVNO     Principal
    ------   -----------    -----------------------------------------------
    1          3                  host/indus52.in.ibm.com@ZTRANS.IBM.COM
  8. 在 AIX 客户机上创建一个与 Windows 2003 用户账户对应的用户。

    确保在 AIX Kerberos 客户机上正确地配置用户属性,让用户能够向 AIX 客户机验证身份。

  9. 使用 kinit 检查用户是否能够向 Kerberos 服务器验证身份。
     # ./usr/krb5/bin/kinit test                                      
    Password for test@ZTRANS.IBM.COM:                                                  
    #
  10. 检查刚创建的用户是否能够使用 ssh/telnet 登录 AIX 客户机。

在 AIX 上实现 SSO 身份验证

确保成功地为 AIX Kerberos 客户机配置 Windows Active Directory 服务器,确认用户能够使用 ssh/telnet 协议成功地登录。

按以下步骤在 AIX 上实现 SSO。这些步骤与把 AIX 配置为 AIX Kerberos LDAP 服务器的客户机时一样。

  1. 使用 chauthent 命令在 AIX 系统上启用身份验证方法。chauthent 命令根据用户设置的标志设置所需的身份验证方法。在默认情况下,AIX 系统配置标准的 AIX 身份验证机制。使用下面的 chauthent 命令在系统上配置 Kerberos 身份验证机制:
    #chauthent –k5 –std

    lsauthent 命令列出系统上配置的身份验证方法:

    #lsauthent
    Kerberos 5
    Standard AIX
  2. 通过 telnet/SSH 作为测试用户登录,使用 /usr/krb5/bin/kinit 命令为 Kerberos 用户生成可转发的票据:
    #/usr/krb5/bin/kinit –f test
    Password for test@ZTRANS.IBM.COM:
    #

    kinit 命令为测试用户生成可转发的票据。可以使用带 -f 选项的 klist 命令列出票据的属性:

    #/usr/krb5/bin/klist -f
    Ticket cache: /tmp/krb5cc_320
    Default principal: test@ZTRANS.IBM.COM
    Valid starting      Expires             Service principal
    31/03/08 19:06:25  31/03/00 19:16:25  krbtgt/ZTRANS.IBM.COM@ZTRANS.IBM.COM
            Flags: FRIA

    标志的属性是:

    • F – Forwardable
    • R – Renewable
    • I - Initial
    • A – PreAuthenticated

    用户可以使用这个可转发票据通过 telnet/SSH 登录另一个 AIX 客户机,而不需要提供密码。

    可以像下面这样在系统上使用 telnet 命令:

    # telnet –F –l test indus61.in.ibm.com

相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=445724
ArticleTitle=在 AIX 上配置单点登录身份验证
publish-date=11102009