9.2.2. 设置基于 PIN 的注册

基于 PIN 的身份验证涉及为 LDAP 目录中的每个用户设置 PIN,将这些 PIN 分发到用户,然后让用户在填写证书请求时提供 PIN 和 password。然后,用户使用其用户 ID 和密码 LDAP 条目对 LDAP 目录进行身份验证,并使用其 LDAP 条目中的 PIN 进行验证。当用户成功验证时,请求会自动处理,并发出新证书。
CertificateCertificate Systemnbsp;System 提供了一个工具 setpin,它为 Directory Server 添加所需的 schema,并为每个用户生成 PIN。
PIN 工具执行以下功能:
  • 在 LDAP 目录中为 PIN 添加所需的 schema。
  • 在设置的 PIN manager 用户中添加具有读写权限的 PIN manager 用户。
  • 设置 ACI 以允许在使用 PIN 后删除 PIN,为 PIN 提供读写权限,并阻止用户创建或更改 PIN。
  • 在每个用户条目中创建 PIN。
注意
此工具记录在 证书系统命令行工具指南 中
  1. 使用 PIN 工具添加 PINs 所需的 schema,将 PIN 添加到用户条目,然后将 PINs 分发到用户。
    1. 打开 /usr/share/pki/native-tools/ 目录。
    2. 在文本编辑器中打开 setpin.conf 文件。
    3. 按照文件中概述的说明进行操作,并进行适当的更改。
      通常,需要更新的参数是 Directory Server 的主机名、Directory Manager 的绑定密码以及 PIN 管理器的密码。
    4. 使用 optfile 选项运行 setpin 命令,指向 setpin.conf 文件。
      setpin optfile=/usr/share/pki/native-tools/setpin.conf
      该工具使用新属性(默认为 pinPerson)和一个新的对象类(默认为 pinPerson)修改 schema,并创建一个 pinmanager 用户,并只设置 ACI 以允许 pinmanager 用户修改 pin 属性。
    5. 要为特定用户条目生成 PIN,或提供用户定义的 PIN,创建一个输入文件,其中包含列出的条目的 DN。对于 ezample:
      dn:uid=bjensen,ou=people,dc=example,dc=com
      dn:uid=jsmith,ou=people,dc=example,dc=com
      dn:jtyler,ou=people,dc=example,dc=com
      ...
      有关构建输入文件的详情,请参考 证书系统命令行工具指南中的 PIN 生成器章节
    6. 禁用 setpin 命令的设置模式。注释掉 setup 行,或者将值更改为 no。
      vim /usr/share/pki/native-tools/setpin.conf
      
      setup=no
      设置模式会创建所需的 uers 和对象类,但工具在设置模式下不会生成 PIN。
    7. 运行 setpin 命令在目录中创建 PIN。
      提示
      在不使用 write 选项的情况下运行该工具来生成 PIN 列表,而无需实际更改该目录。
      例如:
      setpin host=yourhost port=9446 length=11 input=infile output=outfile write "binddn=cn=pinmanager,o=example.com" bindpw="password" basedn=o=example.com "filter=(uid=u*)" hash=sha256
      WARNING
      不要将 hash 参数设置为 none。使用 hash=none 运行 setpin 命令会导致 pin 以纯文本形式存储在用户 LDAP 条目中。
    8. 完成设置所需的身份验证方法后,使用输出文件向用户提供 PIN。
      确认基于 PIN 的注册工作后,将 PIN 提供给用户,以便在注册期间使用它们。要保护 PIN 的隐私,请使用安全的带外交付方法。
  2. 在证书配置集中设置特定证书的策略以注册用户。有关证书策略的详情,请参阅 第 3 章 制作发行证书规则(证书配置文件)
  3. 创建并配置 UidPwdPinDirAuth 身份验证插件的实例。
    1. 打开 CA 控制台。
      pkiconsole https://server.example.com:8443/ca
    2. Configuration 选项卡中,在导航树中选择 Authentication
      右窗格显示 Authentication Instance 选项卡,它列出了当前配置的验证实例。
    3. Add
      此时会出现 Select Authentication Plug-in Implementation 窗口。
    4. 选择 UidPwdPinDirAuth 插件模块。
    5. Authentication Instance Editor 窗口中填写以下字段:
      • 身份验证实例 ID。接受默认实例名称或输入新名称。
      • removePin.设置在最终用户成功验证后是否从身份验证目录中删除 PIN。从目录中删除 PIN 会限制用户多次注册,从而防止他们获得多个证书。
      • pinAttr.指定 PIN 的身份验证目录属性。PIN Generator 程序将 属性设置为 setpin.conf 文件中的 objectclass 参数的值;此参数的默认值是 pin
      • dnpattern.指定一个字符串,代表主题名称模式,以便根据目录属性和条目 DN 进行公式限制。
      • ldapStringAttributes.指定端点实体应被视为身份验证的 LDAP 字符串属性列表。此参数输入值是可选的。
      • ldapByteAttributes.指定端点实体应被视为身份验证的 LDAP 字节(二进制)属性列表。如果指定,与这些属性对应的值将从身份验证目录中复制到身份验证令牌,供其他模块使用,如向用户证书添加额外信息。
        此参数输入值是可选的。
      • ldap.ldapconn.host.指定身份验证目录的完全限定 DNS 主机名。
      • ldap.ldapconn.port.指定身份验证目录侦听来自证书证书系统nbsp 的 TCP/IP 端口;系统.
      • ldap.ldapconn.secureConn.指定身份验证目录侦听请求的端口的类型 SSL 或非 SSL。如果这是 SSL 端口,请选择此项。
      • ldap.ldapconn.version.指定 LDAP 协议版本,可以是 23。默认情况下,这是 3,因为除 3.x 之后的所有目录服务器版本都是 LDAPv3。
      • ldap.ldapAuthentication.bindDN.指定在从身份验证目录中删除 PIN 时要绑定的用户条目。仅在选择了 removePin 复选框时指定此参数。建议有一个单独的用户条目,该用户条目只能修改目录中创建和使用 目录中的 PIN 属性。例如,不要使用 Directory Manager 的条目,因为它具有修改整个目录内容的特权。
      • 密码。指定与 ldap.ldapauthbindDN 参数指定的 DN 关联的密码。保存更改后,服务器会将密码存储在单点登录密码缓存中,并使用它来后续启动。只有在选择了 removePin 复选框时,才需要设置此参数。
      • ldap.ldapAuthentication.clientCertNickname.指定用于对认证目录进行 SSL 客户端身份验证的证书 nickname 来删除 PIN。确保证书有效且已由身份验证目录的证书数据库中信任的 CA 签名,并且身份验证目录的 certmap.conf 文件已配置为将证书正确映射到目录中的 DN。只适用于 PIN 才可以删除。
      • ldap.ldapAuthentication.authtype.指定从身份验证目录中删除 PIN 所需的身份验证类型、基本身份验证或 SSL 客户端身份验证。
        • Basic auth 指定基本身份验证。使用此选项时,为 ldap.ldapAuthentication.bindDNpassword 参数输入正确的值,服务器使用 ldap.ldapAuthentication.bindDN 属性中的 DN 绑定到该目录。
        • SslClientAuth 指定 SSL 客户端身份验证。使用此选项时,将 ldap.ldapconn.secureConn 参数的值设置为 true,将 ldap.ldapAuthentication.clientCertNickname 参数的值设置为用于 SSL 客户端身份验证的 nickname。
      • ldap.basedn.指定用于搜索身份验证目录的基本 DN;服务器使用 HTTP 输入中的 uid 字段的值(用户在注册表单中输入的用户)和基本 DN 来构造 LDAP 搜索过滤器。
      • ldap.minConns.指定身份验证目录允许的最小连接数。允许的可能值为 13
      • ldap.maxConns.指定身份验证目录允许的最大连接数。可见的值有 310
    6. 点击 OK
  4. 通过在证书配置集中配置输入来自定义注册表单。包括插件验证用户身份所需的信息。如果默认输入不包含需要收集的所有信息,请提交使用第三方工具创建的请求。