IBM Support

使用IBM i上的Group Profile验证HTTP登录

Technical Blog Post


Abstract

使用IBM i上的Group Profile验证HTTP登录

Body

*本文讨论的主题来自IBM HTTP Server for i的一个新特性,该特性仅支持IBM i 6.1及更新的系统版本,并且需要相应PTF——SI46870(i 7.1) /SI46900(i 6.1)的支持。Group PTF SF99368-level14(i 7.1)以及SF99115-level26(i 6.1)中已经包含上述PTF。请确保机器满足这些要求。

对于安全性敏感或者权限区分度较高的网站而言,用户登录验证是必不可少的一个环节。然而随着用户数量的攀升,维护不同权限的用户组列表就变成了一件成本较高的工作。在传统的IBM HTTP Server for i上,我们都是通过编辑一个名为“组文件”的文本文件来指定各个用户组的成员名单。

如下图所示——左侧绿色方框内是HTTP Server的配置文件片段,其指定了“组文件”的名称restrict.group。并设置对于当前目录,需要GROUPA这一用户组的成员才可以访问。并且在登录时需要输入相应用户的密码进行验证。而右侧蓝色方框则是restrict.group文件的具体内容,可以看到在GROUPA这一用户组下有USER1USER2两个用户名——也就是说对当前目录,仅有这两个用户拥有可以访问的权限。显而易见,在用户数量攀升的情况下,维护这一清单的工作量将急剧上升。

图像

为了解决这一棘手的问题,IBM HTTP Server for i引入了基于IBM i上的Group Profile的验证方式。下面的文章将通过一个范例讲解如何运用这一新特效来高效管理HTTP Server上的用户验证列表。

图像

(一)IBM i上创建Group Profile

1)在IBM i上通过以下命令创建4个用户MEMBER1MEMBER2MEMBER3GROUP1

CRTUSRPRF MEMBER1                

CRTUSRPRF MEMBER2                  

CRTUSRPRF MEMBER3                 

CRTUSRPRF GROUP1                     

图像

(2)为组员添加密码

输入CHGUSRPRF MEMBER1后按F4建,在User password栏输入密码并回车确定。其他组员也按照相应方法设置好密码。

图像

图像

(3)将组员MEMBER1MEMBER2MEMBER3添加到GROUP1之下

CHGUSRPRF USRPRF(MEMBER1) GRPPRF(GROUP1)

CHGUSRPRF USRPRF(MEMBER2) GRPPRF(GROUP1)

CHGUSRPRF USRPRF(MEMBER3) GRPPRF(GROUP1)

图像

(4)检测GROUP1的组属性

使用命令DSPUSRPRF GROUP1 *GRPMBR检测第(2)步的组员添加结果。如下图所示MEMBER1MEMBER2MEMBER3已经被添加到了GROUP1之下。

图像

(二)配置HTTP Server

(1)进入IBM Web Administration for i并选择需要配置该功能的HTTP服务器。点击左侧的Security按钮。

(2)从上方的Server area选择一个需要登录验证的目录。例如/www/xmtest/htdocs

(3)点击Security页面上的Control Access标签。并选中Specific users and groups

(4)User and Group names:中添加新GroupGROUPA并点击Continue确定。

(5)Group file (path/file name):中指定组文件的路径:/www/xmtest/group.txt并点击OK保存。

图像

(6)点击Authentication标签。选择验证方式为IBM i user profiles

(7)Authentication name or realm:中填入提示信息,例如:Group Profile

(8)点击OK保存。

图像

(9)点击左侧Tools标签下的Display Configuration File按钮,可以发现配置文件中添加了这几行内容:

图像

()编辑组文件

简便起见,我们只配置一个名为GROUPA的组。并且该组只包含一个成员GROUP1。需要注意的是,为了将组用户名GROUP1与普通成员用户名区别开,需要前后各使用一个标记符%来进行标记。

GROUPA:%GROUP1%

我们将其保存为group.txt并通过FTP上传到IBM i上的某个路径下。例如/www/xmtest/group.txt

然后我们需要检查QTMHHTTP账户对group.txt文件的使用权限。在IBM i上输入如下命令:

WRKLNK '/www/xmtest/group.txt'

group.txt前面键入9,进入权限编辑模式。

图像

如下图所示,请确保QTMHHTTP用户对该文件拥有*RX权限。如果没有该权限的话,请添加该权限,否则HTTP Server将无法读取组员名单从而导致验证失败。

图像

完成以上三步后就可以启动HTTP Server。访问该页面(本例中网页位于IP地址192.168.1.101和端口11082上)。如果配置无误的话将会弹出身份验证窗口。

图像

现在可以使用MEMBER1MEMBER2MEMBER3中的任意一个账户的用户名/密码登录该页面。而其他的账户则被排除在验证列表之外。通过验证后,便可以访问该页面的内容了。

图像

在实际应用中,我们还可以将普通用户名与组用户名混合在一起指定为一个组,也可以配置多个不同的组合。如下面的例子:

GROUPA:Lucy David %GRP1%

GROUPB:Tim %GRP2%

通过引入IBM i上的Group ProfileIBM HTTP Server for i的验证机制可以实现更加灵活的配置和管理。

 
作者:Xu Meng 

[{"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

ibm11145272