# 由安全性软件进行认证

RACF 会执行一些检查来认证证书并返回相关联的用户标识。注意，其他安全性产品可能会以不同方式完成此任务。请参阅安全性产品文档，以了解有关用于执行认证（查询方式）的 `initACEE` 功能的更多信息。

1. RACF 检查是否在 `DIGTCERT` 类中定义了证书。如果已定义，那么它会在将证书添加至 RACF 数据库时返回与此证书相关联的用户标识。
   使用 RACDCERT 命令将证书定义至 RACF，如以下示例中所示：

       RACDCERT ID(userid) ADD(dsn) TRUST WITHLABEL('label')

2. 如果未定义证书，那么 RACF 会检查 `DIGTNMAP` 和/或 `DIGTCRIT` 类中是否定义了匹配的证书名称过滤器。如果已定义，那么它会返回与最具体的匹配过滤器相关联的用户标识。
   注： 因为名称过滤器会将所有证书映射至单个用户标识，所以建议不要对 Developer for System z 使用的证书使用名称过滤器。结果是所有 Developer for System z 用户将使用同一用户标识登录。
3. 如果没有匹配的名称过滤器，那么 RACF 会查找 HostIdMappings 证书扩展并抽取嵌入式用户标识/主机名对。如果找到了 HostIdMappings 扩展并进行了验证，那么 RACF 会返回该扩展中定义的用户标识。
   如果符合下列所有条件，那么用户标识/主机名对有效：
   - 用于签署此证书的 CA 证书在 `DIGTCERT` 类中标记为 HIGHTRUST。
   - 存储在扩展中的用户标识的长度有效（1 到 8 个字符）。
   - 指定给 RSE 守护程序的用户标识对 `SERVAUTH` 类中的 `IRR.HOST.hostname` 概要文件（至少）具有 READ 权限，其中 `hostname` 是存储在扩展中的主机名。它通常是域名，如 CDFMVS08.RALEIGH.IBM.COM。
   ASN.1 语法中 HostIdMappings 扩展的定义为：

       id-ce-hostIdMappings OBJECT IDENTIFIER::= {1 3 18 0 2 18 1}
       HostIdMappings::= SET OF HostIdMapping
       HostIdMapping::= SEQUENCE{
          hostName        IMPLICIT[1] IA5String,
          subjectId         IMPLICIT[2] IA5String,
          proofOfIdPossession IdProof OPTIONAL
        }
        IdProof::= SEQUENCE{
          secret        OCTET STRING,
          encryptionAlgorithm OBJECT IDENTIFIER
        }

   注： 如果目标用户标识是在包含 HostIdMappings 扩展的证书的有效期开始后创建的，那么不接受该 HostIdMappings 扩展。因此，如果要专门为带有 HostIdMappings 扩展的证书创建用户标识，应确保在提交证书请求之前创建用户标识。

请参阅 Security Server RACF Security Administrator's Guide（SA22-7683）以了解有关 X.509 证书、RACF 如何管理这些证书以及如何定义证书名称过滤器的更多信息。请参阅 Security Server RACF Command Language Reference（SA22-7687）以了解有关 RACDCERT 命令的更多信息。

父主题： 证书认证