9.6. 注册自定义身份验证插件

自定义身份验证插件模块可以通过 CA 控制台进行注册。身份验证插件模块也可以通过 CA 控制台删除。在删除模块之前,删除基于该模块的实例。
注意
要编写自定义插件,请参阅 身份验证插件
  1. 创建自定义身份验证类。在本例中,自定义身份验证插件名为 UidPwdDirAuthenticationTestms.java
  2. 编译新类。
    javac -d . -classpath $CLASSPATH UidPwdDirAuthenticationTestms.java
  3. 在 CA 的 WEB-INF web 目录中创建一个目录来存放自定义类,以便 CA 可以访问它们以获取报名表。
    mkdir /usr/share/pki/ca/webapps/ca/WEB-INF/classes
  4. 将新插件文件复制到 新类 目录中,并将所有者设置为证书证书系统nbsp;System 系统用户(pkiuser)。
    cp -pr com /usr/share/pki/ca/webapps/ca/WEB-INF/classes
    
    chown -R pkiuser:pkiuser /usr/share/pki/ca/webapps/ca/WEB-INF/classes
  5. 登录到控制台。
    pkiconsole https://server.example.com:8443/ca
  6. 注册插件。
    1. Configuration 选项卡中,单击导航树中的 Authentication
    2. 在右侧窗格中,单击 Authentication Plug-in Registration 选项卡。
      选项卡中列出了已经注册的模块。
    3. 要注册插件,请点击 Register
      此时会出现 Register Authentication Plug-in Implementation 窗口。
    4. 通过填写以下两个字段来注册的模块:
      • 插件名称。模块的名称。
      • 类名称。此模块的类全名。这是实现 Java™ 类的路径。如果这个类是软件包的一部分,请包含软件包名称。例如,要在名为 com.customplugins 的软件包中注册名为 customAuth 的类,类名称为 com.customplugins.customAuth
  7. 在注册该模块后,将模块添加为活跃的身份验证实例。
    1. Configuration 选项卡中,单击导航树中的 Authentication
    2. 在右侧窗格中,单击 Authentication Instance 选项卡。
    3. Add
    4. 从列表中选择自定义模块 UidPwdDirAuthenticationTestms.java 以添加模块。填写该模块的适当配置。
  8. 创建新的端到端注册表,以使用新的身份验证模块。
    cd /var/lib/pki/pki-tomcat/ca/profiles/ca
    
    cp -p caDirUserCert.cfg caDirUserCertTestms.cfg
    
    vi caDirUserCertTestms.cfg
    
    desc=Test ms - This certificate profile is for enrolling user certificates with directory-based authentication.
    visible=true
    enable=true
    enableBy=admin
    name=Test ms - Directory-Authenticated User Dual-Use Certificate Enrollment
    auth.instance_id=testms
    ...
  9. 将新配置集添加到 CA 的 CS.cfg 文件中。
    提示
    编辑前备份 CS.cfg 文件。
    vim /var/lib/pki/instance-name/ca/conf/CS.cfg
    
    profile.list=caUserCert,caDualCert,caSignedLogCert,caTPSCert,caRARouterCert,caRouterCert,caServerCert,caOtherCert,caCACert,caInstallCACert,caRACert,caOCSPCert,caTransportCert,caDirUserCert,caAgentServerCert,caAgentFileSigning,caCMCUserCert,caFullCMCUserCert,caSimpleCMCUserCert,caTokenDeviceKeyEnrollment,caTokenUserEncryptionKeyEnrollment,caTokenUserSigningKeyEnrollment,caTempTokenDeviceKeyEnrollment,caTempTokenUserEncryptionKeyEnrollment,caTempTokenUserSigningKeyEnrollment,caAdminCert,caInternalAuthServerCert,caInternalAuthTransportCert,caInternalAuthKRAstorageCert,caInternalAuthSubsystemCert,caInternalAuthOCSPCert,DomainController,caDirUserCertTestms
    ...
    profile.caDirUserCertTestms.class_id=caEnrollImpl
    profile.caDirUserCertTestms.config=/var/lib/pki/pki-tomcat/ca/profiles/ca/caDirUserCertTestms.cfg
  10. 重启 CA。
    systemctl restart pki-tomcatd@instance_name.service