Duangw

Tuxedo安全机制

索引:

  1. 无认证(基于本地操作系统的认证)
  2. 密码认证
  3. 用户认证server
  4. ACLs

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