必须先验证用户,然后才能允许其访问 STA。可以从 STA 内部在本地创建用户,也可以使用外部安全服务提供程序 (security service provider, SSP) 为 STA 提供访问控制。
本附录介绍如何使用 WebLogic OpenLDAP(轻量目录访问协议)和 IBM RACF(Resource Access Control Facility,资源访问控制工具)进行 STA 访问控制。其中包含以下各节:
要使用 STA 应用程序创建用户,请参见《STA 用户指南》。
使用该过程为 STA 配置 OpenLDAP。
使用您在 STA 安装过程中选择的 HTTP(STA 2.1.0 默认为 7019)或 HTTPS(STA 2.1.0 默认为 7020)端口号转至 WebLogic 控制台登录屏幕。
https://yourHostName:PortNumber/console/
例如:
https://sta_server:7020/console
使用在 STA 安装过程中定义的 WebLogic 管理控制台用户名和密码登录。
在 "Domain Structure" 部分中,单击 Security Realms。
在 "Realms" 表中,选择 myrealm 活动链接(选择该链接本身,而不是复选框)。
单击 Providers 选项卡。
在 "Change Center" 部分,单击 Lock & Edit。
在 "Authentication Providers" 部分中,单击 New。
输入要创建的验证提供程序的名称(例如 OpenLdapAuthenticator)并在 Type 菜单中选择 "OpenLDAPAuthenticator"。单击 OK。
选择 DefaultAuthenticator 活动链接(选择该链接本身,而不是复选框)。
在 Control Flag 菜单中,选择 "Sufficient",然后单击 Save。
选择 Providers 定位器链接以返回到 "Authentication Providers" 屏幕。
在 "Authentication Providers" 表中,选择在步骤 8 中创建的 OpenLDAP 验证程序名称(选择该名称本身,而不是复选框)。
在 Control Flag 菜单中,选择 "Sufficient",然后单击 Save。
单击 Provider Specific 选项卡。
根据您的站点要求完成屏幕字段。以下示例适用于 lses-ldap1 服务器并特定于每个客户环境。
Host = lses-ldap1
Port = 389
Principal = 留空
Credential = 留空
User Base DN = ou=people,o=STA,dc=oracle,dc=com
User From Name Filter = (&(cn=%u)(objectclass=inetOrgPerson))
User Object Class = inetOrgPerson
Group Base DN = ou=groups,o=STA,dc=oracle,dc=com
Group From Name Filter = (&(cn=%g)(objectclass=groupofnames))
单击 Save。
在 "Change Center" 部分中,单击 Activate Changes。
执行以下步骤以测试配置。
从 WebLogic 管理控制台注销。
使用 STA 命令停止并重新启动 STA。有关命令用法的详细信息,请参见《STA 管理指南》。
# STA stop all # STA start all
登录到 WebLogic 控制台。
在 "Domain Structure" 部分中,选择 Security Realms。
在 "Realms" 表中,选择 myrealm 活动链接(选择该链接本身,而不是复选框)。
单击 Users and Groups 选项卡。
在 Users 和 Groups 选项卡中,验证在 OpenLDAP 提供程序的 "Provider" 列中是否存在条目。
使用以下过程为 STA 配置 IBM RACF(Resource Access Control Facility,资源访问控制工具)验证。必须按照所列的顺序完成这些过程。
注:
STA 支持与 IBM RACF 兼容的第三方产品-例如,CA 的 ACF‐2 和 Top Secret。这需要安装 STA 的人员或安全管理员来发出适合所安装的安全产品的命令。STA 的大型机端 RACF 服务由属于 ELS 7.0 和 7.1 的 SMC 组件的 CGI 例程提供。此 CGI 例程由 SMC HTTP 服务器调用,并使用在 FACILITY 类中定义的 RACF 配置文件。
对于要使用 RACF 作为访问验证方式的 STA,在大型机上,必须设置运行 HTTP 服务器的 SMC 启动任务。可以在 ELS 文档 "Configuring and Managing SMC" 中找到有关如何执行此操作的详细信息。
注:
SMC 启动任务必须与已定义的 AT-TLS 规则匹配。或者,允许 AT-TLS 定义使用通用作业名(例如,SMCW)。如果使用以值提供的 STC 标识符(例如 JOBNAME.JOB),这将导致 CGI 例程连接故障。
用于 HTTP 服务器的端口号必须与 WebLogic 控制台中定义的端口号匹配,主机必须与运行 SMC 任务的主机的 IP 名称匹配。
注:
如果在要执行 RACF 授权的主机上存在 SMC,则可使用现有的 SMC。在这种情况下,在执行 WebLogic 配置时,可使用现有 HTTP 服务器的端口号。AT-TLS 是一种 TCP/IP 应用程序加密解决方案,对应用程序和客户机透明。包的加密和解密在 TCP 协议层的 z/OS TCP/IP 地址空间中进行。《STA 要求指南》中介绍了有关 RACF 授权的 AT‐TLS 要求。
以下 RACF 命令可列出将在配置过程中定义的各种 RACF 对象的状态:
RLIST STARTED PAGENT.* STDATA ALL
RLIST DIGTRING *ALL
RLIST FACILITY IRR.DIGTCERT.LISTRING ALL
RLIST FACILITY IRR.DIGCERT.LST ALL
RLIST FACILITY IRR.DIGCERT.GENCERT ALL
RACDCERT ID(stcuser) LIST
RACDCERT ID(stcuser) LISTRING(keyringname)
RACDCERT CERTAUTH LIST
要配置 AT-TLS,请执行以下操作:
在 TCPIP 配置文件数据集中指定以下参数以激活 AT‐TLS:
TCPCONFIG TTLS
可将此语句放置在 TCP OBEY 文件中。
配置策略代理 (PAGENT)
策略代理地址空间控制要加密的 TCP/IP 通信流量。
输入 PAGENT 启动任务 JCL。
例如:
//PAGENT PROC //* //PAGENT EXEC PGM=PAGENT,REGION=0K,TIME=NOLIMIT, // PARM='POSIX(ON) ALL31(ON) ENVAR("_CEE_ENVFILE=DD:STDENV")/-d1' //* //STDENV DD DSN=pagentdataset,DISP=SHR//SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //* //CEEDUMP DD SYSOUT=*,DCB=(RECFM=FB,LRECL=132,BLKSIZE=132)
输入 PAGENT 环境变量。pagentdataset 数据集包含 PAGENT 环境变量。
例如:
LIBPATH=/lib:/usr/lib:/usr/lpp/ldapclient/lib:. PAGENT_CONFIG_FILE=/etc/pagent.conf PAGENT_LOG_FILE=/tmp/pagent.log PAGENT_LOG_FILE_CONTROL=3000,2 _BPXK_SETIBMOPT_TRANSPORT=TCPIP TZ=MST7MDT
在此示例中,/etc/pagent.conf 包含 PAGENT 配置参数。将您自己的时区用于 TZ 参数。
配置 PAGENT。
例如:
TTLSRule TBI-TO-ZOS { LocalAddr localtcpipaddress RemoteAddr remotetcpipaddress LocalPortRange localportrange RemotePortRange remoteportrange Jobname HTTPserverJobname Direction Inbound Priority 255 TTLSGroupActionRef gAct1~TBI_ICSF TTLSEnvironmentActionRef eAct1~TBI_ICSF TTLSConnectionActionRef cAct1~TBI_ICSF } TTLSGroupAction gAct1~TBI_ICSF { TTLSEnabled On Trace 2 } TTLSEnvironmentAction eAct1~TBI_ICSF { HandshakeRole Server EnvironmentUserInstance 0 TTLSKeyringParmsRef keyR~ZOS } TTLSConnectionAction cAct1~TBI_ICSF { HandshakeRole ServerWithClientAuth TTLSCipherParmsRef cipher1~AT-TLS__Gold TTLSConnectionAdvancedParmsRef cAdv1~TBI_ICSF CtraceClearText Off Trace 2 } TTLSConnectionAdvancedParms cAdv1~TBI_ICSF { ApplicationControlled Off HandshakeTimeout 10 ResetCipherTimer 0 CertificateLabel certificatelabel SecondaryMap Off } TTLSKeyringParms keyR~ZOS { Keyring keyringname } TTLSCipherParms cipher1~AT-TLS__Gold { V3CipherSuites TLS_RSA_WITH_3DES_EDE_CBC_SHA V3CipherSuites TLS_RSA_WITH_AES_128_CBC_SHA }
其中:
localtcpipaddress:HTTP 服务器的本地 TCP/IP 地址
remotetcpipaddress:STA 客户机的远程 TCP/IP 地址。此参数值可以为 ALL,表示所有 TCP/IP 地址
localportrange:HTTP 服务器的本地端口(在 HTTP 或 SMC 启动中指定)
remoteportrange:远程端口范围(对于所有临时端口,为 1024-65535)
HTTPserverJobname:HTTP 服务器的作业名
certificatelabel:证书定义中的标签
keyringname:RACF 密钥环定义中的名称
激活 RACF 类。可以使用 RACF 面板或 CLI。
RACF 类包括:
DIGTCERT
DIGTNMAP
DIGTRING
必须对 SERVAUTH 类执行 RACLIST 以防止 PORTMAP 和 RXSERV 异常终止。
SETROPTS RACLIST(SERVAUTH) RDEFINE SERVAUTH **UACC(ALTER) OWNER (RACFADM) RDEFINE STARTED PAGENT*.* OWNER(RACFADM) STDATA(USER(TCPIP) GROUP(STCGROUP) RDEFINE FACILITY IRR.DIGTCERT.LISTRING UACC(NONE) OWNER(RACFADM) RDEFINE FACLITY IRR.DIGTCERT.LIST UACC(NONE) OWNER(RACFADM) RDEFINE FACILITY IRR.DIGTCERT.GENCERT UACC(NONE) OWNER (RACFADM)
定义 RACF 密钥环和证书
输入以下 RACF 命令创建密钥环和证书:
RACDCERT ID(stcuser) ADDRING(keyringname)
其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
keyringname:密钥环名称,必须与 PAGENT 配置中指定的密钥环匹配
RACDCERT ID(stcuser) GENCERT CERTAUTH SUBJECTSDN(CN('serverdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('calabel') TRUST SIZE(1024) KEYUSAGE(HANDSHAKE,DATAENCRYPT,CERTSIGN)
注:
这是 STA 系统的 CA 证书。其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
serverdomainname:z/OS 服务器的域名(例如 MVSA.COMPANY.COM)
companyname:组织名称
unitname:组织单位名称
country:国家/地区
calabel:证书颁发机构的标签(例如 CATBISERVER)
RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('serverdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('serverlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))
注:
这是服务器证书。其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
serverdomainname:z/OS 服务器的域名(例如 MVSA.COMPANY.COM)
companyname:组织名称
unitname:组织单位名称
country:国家/地区
serverlabel:服务器证书的标签(例如 TBISERVER)
calabel:证书颁发机构的标签,在 CA 证书定义中指定
RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('clientdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('clientlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))
注:
这是客户机证书。其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
clientdomainname:STA 客户机的域名(例如 TBIA.COMPANY.COM)
companyname:组织名称
unitname:组织单位名称
country:国家/地区
clientlabel:服务器证书的标签-TBICLIENT
calabel:证书颁发机构的标签,在 CA 证书定义中指定。
将 CA、服务器和客户机证书连接到在 PAGENT 配置中指定的密钥环:
RACDCERT ID(stcuser) CONNECT(CERTAUTH LABEL('calabel') RING('keyringname') USAGE(CERTAUTH))
其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
calabel:证书颁发机构的标签,在 CA 证书定义中指定
keyringname:密钥环名称,必须与 PAGENT 配置中指定的密钥环匹配
RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('serverlabel') RING('keyingname') DEFAULT USEAGE(PERSONAL)
其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
serverlabel:服务器证书的标签
keyringname:密钥环名称,必须与 PAGENT 配置中指定的密钥环匹配
RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('clientlabel') RING('keyingname') USEAGE(PERSONAL)
其中:
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
clientlabel:客户机证书的标签
keyringname:密钥环名称,必须与 PAGENT 配置中指定的密钥环匹配
将要传输的 CA 和客户机证书导出到 STA:
RACDCERT EXPORT (LABEL('calabel')) CERTAUTH DSN('datasetname') FORMAT(CERTB64)
其中:
calabel:证书颁发机构的标签,在 CA 证书定义中指定
datasetname:要接收导出的证书的数据集
RACDCERT EXPORT (LABEL('clientlabel')) ID(stcuser) DSN('datasetname') FORMAT(PKCS12DER) PASSWORD(' password ')
其中:
clientlabel:客户机证书的标签
stcuser:与 TCPIP 地址空间关联的 RACF 用户 ID
datasetname:要接收导出的证书的数据集
password:数据加密的密码。在 STA 上接收证书时需要此密码。密码必须至少有八个字符。
导出数据集现在传输到 STA,并且可使用 FTP。CA 证书通过 EBCDIC 到 ASCII 的转换进行传输。客户机证书作为二进制文件进行传输,包含客户机证书及其私钥。
这些配置文件在 FACILITY 类中定义。其中第一个配置文件称为 SMC.ACCESS.STA,可以确定用户是否有权访问 STA 应用程序。
需要访问 STA 的用户必须具有对此配置文件的 READ 访问权限。其他配置文件都显示为 SMC.ROLE.nnn,用于确定用户在登录后具有的角色。
注:
对 STA 定义的唯一角色是 StorageTapeAnalyticsUser。要获取此角色,您必须请求将您的用户 ID 添加到 SMC.ROLE.STORAGETAPEANALYTICSUSER 配置文件中,并具有 READ 访问权限。要测试是否成功生成了公钥和私钥以及是否正确定义了具有相应权限的用户 ID 和密码,此过程很有价值。
可以使用任何浏览器进行测试,但此处以 Firefox 为例。
在 Firefox Tools(工具)菜单中,选择 Options(选项)。
选择 Advanced(高级)选项卡,然后选择 Encryption(加密)选项卡。
单击 View Certificates(查看证书)。
在 Certificate Manager(证书管理器)对话框中,选择 Authorities(证书机构)选项卡,然后选择要导入的证书文件。
单击 Import(导入)。
选择 Your Certificates(您的证书)选项卡,然后输入要导入的私钥文件。
单击 Import(导入)。
单击 OK(确定)保存并退出对话框。
要通过浏览器测试 CGI 例程,请输入以下 URL,其中 host、port、userid 和 password 设置为相应的值。
https://host:port/smcgsaf?type=authentication&userid=userid&password=password&roles=StorageTapeAnalyticsUser
生成的输出指示用户是否得到授权访问 STA 以及是否具有 StorageTapeAnalyticsUser 角色。
注:
STA RACF 授权工具不支持更改大型机用户 ID 的密码。如果用户 ID 密码到期,STA 将指出,并且必须通过常规大型机通道重置密码后才能尝试重新登录 STA。RACF 安全服务提供程序(即 RACF SSP)必须作为插件安装到 WebLogic 中。
如果安装了 RACF SSP,STA 安装程序应将 RACF SSP 放在 WebLogic 内的相应位置。如果尚未安装,请将 RACF jar 安全文件放到以下目录中:
/Oracle_storage_home/Middleware/wlserver_10.3/server/lib/mbeantypes/staRACF.jar
其中 Oracle_storage_home 是在 STA 安装期间指定的 Oracle 存储主目录位置。
在 MVS 系统上安装所需的 PTF。这些 PTF 允许在登录到 STA 时使用 RACF 或其他第三方安全软件进行验证。对于 PTF 要求,请参见《STA 要求指南》。
在 MVS 配置了应用程序透明 TLS (Application Transparent TLS, AT-TLS),对服务器而言,为 SMC HTTP 服务器和 WebLogic 定义的端口号是加密的。
在继续操作之前,请确保拥有两个文件:MVS 服务器证书(采用 ASCII 格式)和 STA 客户机私钥(采用二进制 PKCS12 格式)。MVS 系统管理员向您提供了 PKCS12 文件的密码。
将该证书放置在 /Oracle_storage_home/Middleware/user_projects/domains/tbi/cert 中。
其中 Oracle_storage_home 是在 STA 安装期间指定的 Oracle 存储主目录位置。
将证书从 DER 格式转换为 PEM 格式。
openssl pkcs12 -clcerts -in PKCS12DR.xxxxxx -out mycert.pem
系统将要求您输入 "Import Password"(随证书提供)、新的 PEM 密码以及密码验证。
使用 Java keytool 命令,将证书文件导入到 /Oracle_storage_home/Middleware/jdk1.6.0_xx/jre/lib/security/cacerts 文件中。
# /Oracle_storage_home/Middleware/jdk1.6.0_xx/jre/bin/keytool -importcert -alias tbiServer -file certificate -keystore /Oracle/Middleware/jdk1.6.0_xx/jre/lib/security/cacerts -storetype jks
使用您在 STA 安装过程中选择的 HTTP(STA 2.1.0 默认为 7019)或 HTTPS(STA 2.1.0 默认为 7020)端口号转至 WebLogic 控制台登录屏幕。
https://yourHostName:PortNumber/console/
例如:
https://sta_server:7020/console/
使用在 STA 安装过程中定义的 WebLogic 管理控制台用户名和密码登录。
在 "Domain Structure" 部分中,选择 Security Realms。
在 "Realms" 部分中,选择 myrealm 活动链接(选择该名称本身,而不是复选框)。
在 "Change Center" 部分,单击 Lock & Edit。
选择 Providers 选项卡。
在 "Authentication Providers" 部分中,单击 New。
输入要添加的验证提供程序的名称(例如 STA RacfAuthenticator)并在 Type 菜单中选择 RacfAuthenticator。单击 OK。
验证 "Authentication Providers" 表中是否包含 RACF 提供程序。DefaultAuthenticator 和 DefaultIdentityAsserter 必须始终是此列表中的前两个提供程序。
选择 DefaultAuthenticator 活动链接(选择该名称本身,而不是复选框)。
在 Control Flag 菜单中,选择 "Sufficient",然后单击 Save。
单击 Provider Specific 选项卡,然后单击 Save。
单击 Providers 定位器链接以返回到 "Authentication Providers" 屏幕。
在 "Authentication Providers" 表中,选择在步骤 8 中创建的 RACF 验证程序名称(选择该名称本身,而不是复选框)。
在 Control Flag 菜单中,选择 Sufficient,然后单击 Save。
单击 Provider Specific 选项卡。
输入正在运行 MVS 系统的主机名(例如 mvshost.yourcompany.com)和端口号(例如 8700),然后单击 Save。
在 "Change Center" 部分中,单击 Activate Changes。
从 WebLogic 管理控制台注销。
使用 STA 命令停止并重新启动 STA。有关命令用法的详细信息,请参见《STA 管理指南》。
# STA stop all # STA start all