E 为 STA 配置安全服务提供程序

必须先验证用户,然后才能允许其访问 STA。可以从 STA 内部在本地创建用户,也可以使用外部安全服务提供程序 (security service provider, SSP) 为 STA 提供访问控制。

本附录介绍如何使用 WebLogic OpenLDAP(轻量目录访问协议)和 IBM RACF(Resource Access Control Facility,资源访问控制工具)进行 STA 访问控制。其中包含以下各节:

要使用 STA 应用程序创建用户,请参见《STA 用户指南》

通过 WebLogic OpenLDAP 进行 STA 访问控制

使用该过程为 STA 配置 OpenLDAP。

配置 WebLogic OpenLDAP

  1. 使用您在 STA 安装过程中选择的 HTTP(STA 2.1.0 默认为 7019)或 HTTPS(STA 2.1.0 默认为 7020)端口号转至 WebLogic 控制台登录屏幕。

    https://yourHostName:PortNumber/console/
    

    例如:

    https://sta_server:7020/console
    
  2. 使用在 STA 安装过程中定义的 WebLogic 管理控制台用户名和密码登录。

  3. 在 "Domain Structure" 部分中,单击 Security Realms

    wl_secrealm.png 的说明如下
    图示说明wl_secrealm.png

  4. 在 "Realms" 表中,选择 myrealm 活动链接(选择该链接本身,而不是复选框)。

    wl_myrealm.png 的说明如下
    图示说明wl_myrealm.png

  5. 单击 Providers 选项卡。

    wl_providers.png 的说明如下
    图示说明wl_providers.png

  6. 在 "Change Center" 部分,单击 Lock & Edit

    wl_lockedit.png 的说明如下
    图示说明wl_lockedit.png

  7. 在 "Authentication Providers" 部分中,单击 New

    wl_new.png 的说明如下
    图示说明wl_new.png

  8. 输入要创建的验证提供程序的名称(例如 OpenLdapAuthenticator)并在 Type 菜单中选择 "OpenLDAPAuthenticator"。单击 OK

    ldap_createnew.png 的说明如下
    图示说明ldap_createnew.png

  9. 选择 DefaultAuthenticator 活动链接(选择该链接本身,而不是复选框)。

    ldap_defauth.png 的说明如下
    图示说明ldap_defauth.png

  10. Control Flag 菜单中,选择 "Sufficient",然后单击 Save

    ssp_controlsufficient.png 的说明如下
    图示说明ssp_controlsufficient.png

  11. 选择 Providers 定位器链接以返回到 "Authentication Providers" 屏幕。

    ssp_provlink.png 的说明如下
    图示说明ssp_provlink.png

  12. 在 "Authentication Providers" 表中,选择在步骤 8 中创建的 OpenLDAP 验证程序名称(选择该名称本身,而不是复选框)。

    ldap_selectopen.png 的说明如下
    图示说明ldap_selectopen.png

  13. Control Flag 菜单中,选择 "Sufficient",然后单击 Save

    ssp_controlsufficient.png 的说明如下
    图示说明ssp_controlsufficient.png

  14. 单击 Provider Specific 选项卡。

    ldap_provspecific.png 的说明如下
    图示说明ldap_provspecific.png

  15. 根据您的站点要求完成屏幕字段。以下示例适用于 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))

  16. 单击 Save

  17. 在 "Change Center" 部分中,单击 Activate Changes

    wl_activate.png 的说明如下
    图示说明wl_activate.png

  18. 执行以下步骤以测试配置。

    1. 从 WebLogic 管理控制台注销。

    2. 使用 STA 命令停止并重新启动 STA。有关命令用法的详细信息,请参见《STA 管理指南》

      # STA stop all
      # STA start all
      
    3. 登录到 WebLogic 控制台。

    4. 在 "Domain Structure" 部分中,选择 Security Realms

    5. 在 "Realms" 表中,选择 myrealm 活动链接(选择该链接本身,而不是复选框)。

    6. 单击 Users and Groups 选项卡。

      ldap_uandg.png 的说明如下
      图示说明ldap_uandg.png

    7. UsersGroups 选项卡中,验证在 OpenLDAP 提供程序的 "Provider" 列中是否存在条目。

通过 IBM RACF 任务进行 STA 访问控制

使用以下过程为 STA 配置 IBM RACF(Resource Access Control Facility,资源访问控制工具)验证。必须按照所列的顺序完成这些过程。

注:

STA 支持与 IBM RACF 兼容的第三方产品-例如,CA 的 ACF‐2 和 Top Secret。这需要安装 STA 的人员或安全管理员来发出适合所安装的安全产品的命令。

任务 1:查看 IBM RACF 大型机最低要求

有关完整的 RACF 要求,请参见《STA 要求指南》

任务 2:为 STA RACF 授权启用大型机支持

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 服务器的端口号。

任务 3:配置 AT-TLS

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,请执行以下操作:

  1. 在 TCPIP 配置文件数据集中指定以下参数以激活 AT‐TLS:

    TCPCONFIG TTLS
    

    可将此语句放置在 TCP OBEY 文件中。

  2. 配置策略代理 (PAGENT)

    策略代理地址空间控制要加密的 TCP/IP 通信流量。

    1. 输入 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)
      
    2. 输入 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 参数。

    3. 配置 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 密钥环定义中的名称

  3. 激活 RACF 类。可以使用 RACF 面板或 CLI。

    RACF 类包括:

    • DIGTCERT

    • DIGTNMAP

    • DIGTRING

      必须对 SERVAUTH 类执行 RACLIST 以防止 PORTMAPRXSERV 异常终止。

      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)
      
  4. 定义 RACF 密钥环和证书

    1. 输入以下 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 证书定义中指定。

    2. 将 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 配置中指定的密钥环匹配

    3. 将要传输的 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 的转换进行传输。客户机证书作为二进制文件进行传输,包含客户机证书及其私钥。

任务 4:创建 CGI 例程使用的 RACF 配置文件

这些配置文件在 FACILITY 类中定义。其中第一个配置文件称为 SMC.ACCESS.STA,可以确定用户是否有权访问 STA 应用程序。

需要访问 STA 的用户必须具有对此配置文件的 READ 访问权限。其他配置文件都显示为 SMC.ROLE.nnn,用于确定用户在登录后具有的角色。

注:

对 STA 定义的唯一角色是 StorageTapeAnalyticsUser。要获取此角色,您必须请求将您的用户 ID 添加到 SMC.ROLE.STORAGETAPEANALYTICSUSER 配置文件中,并具有 READ 访问权限。

任务 5:导入证书文件和私钥文件(可选)

要测试是否成功生成了公钥和私钥以及是否正确定义了具有相应权限的用户 ID 和密码,此过程很有价值。

可以使用任何浏览器进行测试,但此处以 Firefox 为例。

  1. 在 Firefox Tools(工具)菜单中,选择 Options(选项)

  2. 选择 Advanced(高级)选项卡,然后选择 Encryption(加密)选项卡。

  3. 单击 View Certificates(查看证书)

  4. Certificate Manager(证书管理器)对话框中,选择 Authorities(证书机构)选项卡,然后选择要导入的证书文件。

  5. 单击 Import(导入)

  6. 选择 Your Certificates(您的证书)选项卡,然后输入要导入的私钥文件。

  7. 单击 Import(导入)

  8. 单击 OK(确定)保存并退出对话框。

任务 6:测试 CGI 例程

要通过浏览器测试 CGI 例程,请输入以下 URL,其中 hostportuseridpassword 设置为相应的值。

https://host:port/smcgsaf?type=authentication&userid=userid&password=password&roles=StorageTapeAnalyticsUser

生成的输出指示用户是否得到授权访问 STA 以及是否具有 StorageTapeAnalyticsUser 角色。

注:

STA RACF 授权工具不支持更改大型机用户 ID 的密码。如果用户 ID 密码到期,STA 将指出,并且必须通过常规大型机通道重置密码后才能尝试重新登录 STA。

任务 7:为 WebLogic 控制台设置 RACF/SSP

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 存储主目录位置。

任务 8:配置 STA 与 RACF 之间的 SSL

  1. 在 MVS 系统上安装所需的 PTF。这些 PTF 允许在登录到 STA 时使用 RACF 或其他第三方安全软件进行验证。对于 PTF 要求,请参见《STA 要求指南》

    在 MVS 配置了应用程序透明 TLS (Application Transparent TLS, AT-TLS),对服务器而言,为 SMC HTTP 服务器和 WebLogic 定义的端口号是加密的。

    在继续操作之前,请确保拥有两个文件:MVS 服务器证书(采用 ASCII 格式)和 STA 客户机私钥(采用二进制 PKCS12 格式)。MVS 系统管理员向您提供了 PKCS12 文件的密码。

  2. 将该证书放置在 /Oracle_storage_home/Middleware/user_projects/domains/tbi/cert 中。

    其中 Oracle_storage_home 是在 STA 安装期间指定的 Oracle 存储主目录位置。

  3. 将证书从 DER 格式转换为 PEM 格式。

    openssl pkcs12 -clcerts -in PKCS12DR.xxxxxx -out mycert.pem
    

    系统将要求您输入 "Import Password"(随证书提供)、新的 PEM 密码以及密码验证。

  4. 使用 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
    

任务 9:配置 WebLogic Server

要配置 WebLogic 以进行 RACF 验证,请执行重新配置 WebLogic 以使用不同的安全证书 中的过程。

任务 10:在 WebLogic 控制台上安装 RACF/SSP

  1. 使用您在 STA 安装过程中选择的 HTTP(STA 2.1.0 默认为 7019)或 HTTPS(STA 2.1.0 默认为 7020)端口号转至 WebLogic 控制台登录屏幕。

    https://yourHostName:PortNumber/console/
    

    例如:

    https://sta_server:7020/console/
    
  2. 使用在 STA 安装过程中定义的 WebLogic 管理控制台用户名和密码登录。

  3. 在 "Domain Structure" 部分中,选择 Security Realms

    wl_secrealm.png 的说明如下
    图示说明wl_secrealm.png

  4. 在 "Realms" 部分中,选择 myrealm 活动链接(选择该名称本身,而不是复选框)。

    wl_myrealm.png 的说明如下
    图示说明wl_myrealm.png

  5. 在 "Change Center" 部分,单击 Lock & Edit

    wl_lockedit.png 的说明如下
    图示说明wl_lockedit.png

  6. 选择 Providers 选项卡。

    wl_providers.png 的说明如下
    图示说明wl_providers.png

  7. 在 "Authentication Providers" 部分中,单击 New

    wl_new.png 的说明如下
    图示说明wl_new.png

  8. 输入要添加的验证提供程序的名称(例如 STA RacfAuthenticator)并在 Type 菜单中选择 RacfAuthenticator。单击 OK

    注:

    RACF jar 文件应列在 Type 菜单中。如果未列在该菜单中,请使用 STA 命令停止然后重新启动 STA。有关命令用法的详细信息,请参见《STA 管理指南》
  9. 验证 "Authentication Providers" 表中是否包含 RACF 提供程序。DefaultAuthenticatorDefaultIdentityAsserter 必须始终是此列表中的前两个提供程序。

  10. 选择 DefaultAuthenticator 活动链接(选择该名称本身,而不是复选框)。

    racf_defauth.png 的说明如下
    图示说明racf_defauth.png

  11. Control Flag 菜单中,选择 "Sufficient",然后单击 Save

  12. 单击 Provider Specific 选项卡,然后单击 Save

    racf_defprovspec.png 的说明如下
    图示说明racf_defprovspec.png

  13. 单击 Providers 定位器链接以返回到 "Authentication Providers" 屏幕。

    ssp_provlink.png 的说明如下
    图示说明ssp_provlink.png

  14. 在 "Authentication Providers" 表中,选择在步骤 8 中创建的 RACF 验证程序名称(选择该名称本身,而不是复选框)。

    racf_selracf.png 的说明如下
    图示说明racf_selracf.png

  15. Control Flag 菜单中,选择 Sufficient,然后单击 Save

    racf_racfauthsufficient.png 的说明如下
    图示说明racf_racfauthsufficient.png

  16. 单击 Provider Specific 选项卡。

    racf_provspecific.png 的说明如下
    图示说明racf_provspecific.png

  17. 输入正在运行 MVS 系统的主机名(例如 mvshost.yourcompany.com)和端口号(例如 8700),然后单击 Save

    racf_racfauthhostport.png 的说明如下
    图示说明racf_racfauthhostport.png

  18. 在 "Change Center" 部分中,单击 Activate Changes

    wl_activate.png 的说明如下
    图示说明wl_activate.png

  19. 从 WebLogic 管理控制台注销。

  20. 使用 STA 命令停止并重新启动 STA。有关命令用法的详细信息,请参见《STA 管理指南》

    # STA stop all
    # STA start all