IBM Support

高效与安全----探索IBM i服务器上的LDAP身份验证

Technical Blog Post


Abstract

高效与安全----探索IBM i服务器上的LDAP身份验证

Body

 轻量目录访问协议LDAP: Lightweight Directory Access Protocol)运行在TCP/IP之上,通过目录服务进行数据查询和修改,可以为目录方面的问题提供帮助。

 LDAP是一个开放的工业标准,它不断的发展以满足在目录中访问和更新信息的需求。因为互联网的目录访问方式,LDAP被广泛的接受,也因此成为企业内部网的策略。越来越多的软件供应商支持LDAP,它也被融入到越来越多的应用程序之中。
 
IBM i 目录服务器是IBM在i平台上基于LDAP协议的实现,从IBM i V5R1版本起,目录服务被集成为操作系统的基础部分,包含一个LDAP服务器,并完成配置LDAP客户端及实用程序的功能。

 LDAP服务器在作为Web服务器的用户身份验证和授权服务器时,经常与HTTP服务器一起来保护Web资源。HTTP服务器可以作为LDAP客户端,发送请求获得信息。相比其他身份验证方法,LDAP允许信息在多个客户端之间共享,并允许以平台无关的方式存储,有助于防止网络中信息的重复。
 
 本文旨在提供一个简单的方法,在IBM i上为HTTP服务器配置LDAP服务器的用户身份验证和授权(MingHui: 在IBM i上为HTTP服务器配置LDAP服务器的用户身份验证和授权)。主要使用到下列产品:
· IBM i系统导航器 (IBM Systems Director Navigator for i)
· Tivoli目录服务器Web管理工具 (Tivoli Directory Server Web Administration Tool)
· IBM i Web管理工具(IBM Web Administration for i)
 
本文将向您展示:
 如何使用IBM i系统导航器配置LDAP服务器
 如何使用Tivoli目录服务器Web管理工具管理LDAP服务器
 如何使用Tivoli目录服务器Web管理工具创建LDAP目录
 如何使用IBM i Web管理工具创建HTTP服务器
 如何使用IBM i Web管理工具配置访问受限的Web资源
 如何使用IBM i Web管理工具配置LDAP属性文件
 如何使用IBM i Web管理工具为HTTP服务器配置LDAP作为身份验证服务器
 图1给出了应用场景的示意图图像  
图 1 应用场景示意图
 
使用IBM i系统导航器配置LDAP服务器
IBM i目录服务器是在安装IBM i和SS1选项3时自动安装的产品。 目录服务器的配置方法,可参阅IBM i信息中心
启动IBM i目录服务器,需运行下列步骤:
 运行IBM i系统导航器(http://your_server:2001
 展开左侧导航中的“IBM i Management”
 点击“Network”
 点击“TCP/IP Servers”
如图2所示,通过点击“IBM Tivoli Directory Server for i”旁边的相关按钮来启动服务器。当服务器被成功启动时,其状态会自动更改为“已启动”。 
图像  图 2 启动目录服务器
 
使用Tivoli目录服务器Web管理工具管理LDAP服务器
 IBM i目录服务器提供了一个简单易用的Web管理平台来管理服务器。通过点击如图3中所示的“Tivoli Directory Server Web Administration Tool”链接来启动该Web管理工具。 
图像图 3 Tivoli目录服务器Web管理工具
 
Tivoli目录服务器Web管理工具是一个非常有用的目录服务器Web管理平台,需要先安装才可以管理目录服务器,首次设置可参阅IBM i信息中心
Web管理平台可以管理一个或多个目录服务器,在本文的示例中仅管理一个目录服务器,如图4所示:  
图像图 4目录服务器管理
 
当你点击“Logout”时,将显示当前目录服务器的信息,如图5所示。点击“Login to console admin”将返回到Web管理工具的登录界面。 
图像
图 5 目录服务器登陆页面
 
使用Tivoli目录服务器Web管理工具创建LDAP目录
  IBM i 可以帮助您在目录服务器上创建LDAP目录。本文创建了Suffix "o=ibm, c=us" 及cn=james和cn=pigm的两个用户项,如图6所示:图像

 图 6 创建用户项   

使用IBM i Web管理工具创建HTTP服务器
 IBM i Web管理工具提供了HTTP服务器的创建向导,快速的实现HTTP服务器的配置,如图7所示。更多详细信息,可参阅IBM i信息中心。本文的示例中,创建了一个名为PIGM的HTTP服务器。
图像图 7 IBM i Web管理工具创建HTTP服务器
 
使用IBM i Web管理工具配置访问受限的Web资源
 HTTP服务器使用目录为Web页面及其内容提供服务。IBM i Web管理工具提供了“Add a Directory”向导,来创建新的目录。更多关于HTTP服务器目录管理,请参阅IBM i信息中心
 如图8所示,我们创建了/www/pigm/protected目录来用于用户身份验证。
图像图 8 IBM i Web管理工具添加目录向导
 
使用IBM i Web管理工具配置LDAP属性文件
IBM i Web管理工具提供了一个名为“LDAP Configuration File”的向导,可以指定新的配置文件路径,或者是包含HTTP服务器与LDAP服务器通信所需要的配置指令的已有文件。该文件路径必须与HTTP服务器配置LDAP服务器进行用户ID和密码验证,或在一个LDAP项中包含HTTP配置指令所需的文件路径相同。
使用LDAP配置文件向导,请运行以下步骤:
· 运行IBM i Web管理工具(http://your_server:2001/HTTPAdmin)。
· 点击“Manage”标签。
· 点击“HTTP Servers”子标签。
· 从“Server”列表中选择所需的HTTP服务器,本文的示例服务器为“PIGM”。
· 从“Server area”列表中选择所需的区域,本文选择“/www/pigm/protected”。
· 展开左侧导航中的“HTTP Task and Wizards”。
· 点击“LDAP Configure”。
· 指定已有配置文件的路径或者新文件路径。本文示例指定新的配置文件路径为“/home/pigm/ldap.prop”。
· 点击“下一步”。
· 点击页面中的“General Settings”标签。
· 输入LDAP服务器的主机名或者IP地址(支持IPv6)。
· 输入LDAP服务器监听的端口号。默认情况下,389为TCP/IP连接的非安全端口号,636为SSL端口号。
· 输入Search base DN(DN: Distinguished Name)。
· 输入LDAP object class。
· HTTP服务器如何通过LDAP服务器的身份验证方式选择“Basic authentication”。
· 输入服务器DN,HTTP服务器用其通过LDAP服务器的身份验证。
· 输入服务器密码,配置工具将对该密码进行加密,储存在隐藏文件中。
· 点击“应用”
图9显示了查看和更新上述指令的配置向导页面:
图像    图 9 LDAP配置文件设置
 
本文示例中生成的LDAP配置文件(/home/pigm/ldap.prop)内容如下:
************Beginning of data**************
LDAP.URL "ldap://< YourHostName >:389/o=ibm,c=us" LDAP.Appid QIBM_HTTP_CLIENT_PIGM LDAP.Application.DN cn=administration,o=ibm,c=us LDAP.Application.Password.StashFile
/QIBM/UserData/HTTPSVR/LDAP/
PIGM/12778845664099.stash LDAP.Group.MemberAttributes
"member uniquemember" LDAP.User.Name.FieldSep " \t,"
************End of Data********************  
 
使用IBM i Web管理工具为HTTP服务器配置LDAP作为身份验证服务器
 最后,设置HTTP服务器使用LDAP身份验证方法,需运行下列步骤:
· 运行IBM i Web管理工具
· 点击“Manage”标签。
· 点击“HTTP Servers”子标签。
· 从“Server”列表中选择所需的HTTP服务器,本文的示例服务器为“PIGM”。
· 从“Server area”列表中选择所需的区域,本文选择“/www/pigm/protected”。
· 展开左侧导航中的“Server Properties”。
· 点击“Security”。
· 点击页面中的“Authentication”标签。
· “User authentication method”项选择“User entries in a Directory”。
· 输入验证名或验证范围,验证范围会在登录时提示。
· 输入LDAP配置文件
· 简单起见,本文设置LDAP Group为空,如图10所示。
· 点击“OK”。
· 配置好身份验证之后,我们可以继续配置访问控制,同样简单起见,本文设置访问控制为默认值。 
图像  图 10 HTTP设置LDAP身份验证方法
 
通过IBM i Web管理工具可以查看HTTP服务器的配置文件,展开左侧导航中的“Tools”,点击“Display Configure File”。如下是本文HTTP配置文件的相关指令:
LoadModule ibm_ldap_module /QSYS.LIB/QHTTPSVR.LIB/QZSRVLDAP.SRVPGM
< Directory /www/pigm/protected >Order deny,allowAllow From allAuthType basicAuthName "Protected Directory Test"PasswdFile %%LDAP%%Require valid-userLDAPConfigFile /home/pigm/ldap.prop< /Directory > 
 
其中ibm_ldap_module模块定义了HTTP服务器与目录服务器通信所需的服务程序。其余指令定义如下:
AuthType :身份验证类型,本例为Basic。
AuthName :验证名或验证范围,将出现在弹出框中,用以确定请求验证的用户名和密码。
PaswdFile:指明使用LDAP验证用户。
Require:允许进入需满足的条件。Valid-user参数的意思指验证列表中的任何有效用户都具有访问权。
LDAPConfigFile : HTTP服务器与LDAP服务器通信所需的LDAP配置,是ibm_ldap_module模块定义的扩展指令。
到这里,我们已经完成了HTTP服务器的LDAP身份验证配置。重启HTTP服务器并登陆,此时将会弹出要求输入用户名和密码的对话框,通过输入LDAP服务器中定义的有效用户名,如PIGM,James等,将会成功进入,否则会登陆失败。

跨系统解决方案
 现在我们已经知道如何使用IBM i系统导航器及IBM i Web管理工具,快速的创建和配置HTTP服务器来使用LDAP作为身份验证服务器。还应该知道的一点是,HTTP与LDAP服务器不是必须在同一系统上,它们可以分布在不同地方,可以在系统A上创建HTTP服务器,而在系统B上部署LDAP服务器。不管怎样,你都会拥有一个非常高效、安全及符合标准的企业目录解决方案。 

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

UID

ibm11145998