Tuxedo安全机制
索引:
Tuxedo提供四个级别的安全认证机制。分别介绍如下:
1.无认证(基于本地操作系统的认证)
基于UNIX的系统在访问tuxedo的相关资源时都需要相应的权限,该级别的认证使用了操作系统的功能,tuxedo本身不做额外处理。
在配置文件UBBCONFIG中不需要增加任何处理。
也可指定如下的参数进行更具体的设置:
在RESOURCE中指定SECURITY的值为NONE;指定UID、PID、PERM来代替操作系统的缺省设置。如:
SECURITY NONE
2.密码认证
这是基于整个应用系统的认证,要访问该应用系统都必须提供一个相同的密码。
使用该级别的方法如下:
在UBBCONFIG的RESOURCE部分指定认证级别:
SECURITY APP_PW
当调用tmloadcf时,tuxedo会提示输入一个密码。该密码可以在tmadmin中使用passwd命令进行修改。
此时client端调用tpchkauth()时会返回TPSYSAUTH。
client要加入应用,必须使用tpalloc分配一个TPINIT结构,在该结构中的passwd域填入上面的密码,然后调用tpinit()才会成功。
如:
... TPINIT *tpinfo; char *passwd; tpinfo = (TPINIT*) tpalloc(“TPINIT”, NULL, TPINITNEED(0)); /*prompt for user password*/ strcpy(tpinfo -> passwd, passwd); tpinit(tpinfo); ...
3.用户认证server
使用认证server,由用户实现一个用于认证的service,该service决定具体的认证方法。
使用该级别认证的方法如下:
在UBBCONFIG的RESOURCE部分指定认证级别和认证的service:
SECURITY USER_AUTH AUTHSVC MYSVC
在SERVER部分指定包含认证service的相应server:
MYAUTHSVR SRVID=100 CLOPT=“-A” SRVGRP=GROUP1
具体的例子见TUXDIR/lib/AUTHSVC.c。它检查tpinit结构的username、cltname、passwd并返回一个认证的key。
4.ACLs
Access Control Lists(ACLs)是tuxedo自己提供一套基于组管理的认证机制。该机制由用户、组以及对资源(service、event等)的相应存取权限组成。
使用该级别认证的方法如下:
在RESOURCE部分定义:
SECURITY ACL 或 MANDATORY_ACL
ACL和ACL或MANDATORY_ACL的区别是:若当前要访问的对象没有定义存取规则,则ACL方式允许访问,而MANDATORY_ACL方式不允许访问。如:
*RESOURCES SECURITY ACL /* or */ MANDATORY_ACL AUTHSVC “..AUTHSVC” *SERVERS AUTHSVR SRVID=100 SRVGRP=AdminGroup RESTART=Y CLOPT=”-A”
该方法要涉及文件tpusr、tpgrp和tpacl,在$APPDIR目录下。使用如下命令处理用户:
tpusradd;
tpusrdel;
tpusrmod;
使用如下命令处理组:
tpgrpadd;
tpgrpdel;
tpgrpmod;
使用如下命令处理对象的存取权限:
tpacladd;
tpacldel;
tpaclmod;
如:
tpgrpadd -g 801 Beatles tpusradd -g Beatles Ringo tpusradd -g Beatles John tpusradd -g Beatles George tpusradd -u 9 Paul tpacladd -g Beatles -t SERVICE TOUPPER