第9章 EST ユーザーデータベースの管理
DS レルム管理と PostgreSQL レルム管理に関する情報は、次のセクションにあります。
9.1. DS レルムの管理
ユーザー DB には、ユーザー inetOrgPerson が含まれるノードと、グループ groupOfUniqueNames が含まれるノードが必要です。したがって、ベース DN が dc=pki,dc=example,dc=com
の場合、次のコマンドを使用し、ユーザーを追加して EST Users グループに関連付けることができます。
ldapadd -x -H ldap://estds.example.com:389 \ -D "cn=Directory Manager" -w Secret.123 << EOF dn: uid=est-test-user,ou=people,dc=est,dc=pki,dc=example,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: est-test-user sn: EST TEST USER cn: EST TEST USER userPassword: Secret.123 EOF ldapmodify -x -H ldap://estds.example.com:389 \ -D "cn=Directory Manager" -w Secret.123 << EOF dn: cn=EST Users,ou=groups,dc=est,dc=pki,dc=example,dc=com changetype: modify add: uniqueMember uniqueMember: uid=est-test-user,ou=People,dc=est,dc=pki,dc=example,dc=com EOF
ldapadd -x -H ldap://estds.example.com:389 \
-D "cn=Directory Manager" -w Secret.123 << EOF
dn: uid=est-test-user,ou=people,dc=est,dc=pki,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: est-test-user
sn: EST TEST USER
cn: EST TEST USER
userPassword: Secret.123
EOF
ldapmodify -x -H ldap://estds.example.com:389 \
-D "cn=Directory Manager" -w Secret.123 << EOF
dn: cn=EST Users,ou=groups,dc=est,dc=pki,dc=example,dc=com
changetype: modify
add: uniqueMember
uniqueMember: uid=est-test-user,ou=People,dc=est,dc=pki,dc=example,dc=com
EOF
9.1.1. TLS 相互認証
上記の設定により、username/password を使用したクライアント認証が可能になります。場合によっては、または新しい証明書の再登録などの特定の操作では、クライアント証明書との相互認証が必要になります。
レルム設定では、証明書ベースの認証がすでにサポートされていますが、ユーザーを認証するには、いくつかの追加情報が必要です。さらに詳しく言うと、ユーザーエントリーには、証明書の詳細とバイナリー証明書を含む description が含まれている必要があります。
description の形式は、<Version>;<Serial>;<Issuer>;<subject>
です。バージョンは 16 進法の値 (0x なし)、シリアルは 10 進法で、発行者とサブジェクトは識別名 (DN) です。DN の形式は、より具体的な属性からより一般的な属性となり (注記: OpenSSL などの一部のツールでは順序が異なります)、コンマで区切られます。たとえば、ユーザーが次の値を持つ証明書を持っているとします。
openssl x509 -in cert.pem -subject -serial -issuer -text -noout |head -11
$ openssl x509 -in cert.pem -subject -serial -issuer -text -noout |head -11
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
33:1c:9e:b7:9a:2d:cc:17:69:24:a2:81:4e:06:07:40
Signature Algorithm: sha256WithRSAEncryption
Issuer: O=EXAMPLE, OU=pki-tomcat, CN=CA Signing Certificate
Validity
Not Before: Jan 16 11:31:11 2025 GMT
Not After : Apr 16 11:31:11 2025 GMT
Subject: CN=test.example.com
この場合、上記で定義したユーザーエントリー est-test-user
を、次のコマンドを使用して DS ケースで変更できます。
ldapmodify -H ldap://ds.example.com:3389 \ -D "cn=Directory Manager" -w Secret.123 <<EOF
$ ldapmodify -H ldap://ds.example.com:3389 \
-D "cn=Directory Manager" -w Secret.123 <<EOF
dn: uid=est-test-user,ou=people,dc=est,dc=pki,dc=example,dc=com
changetype: modify
add: description
description: 2;67939231264256858734977554404570695488;CN=CA Signing Certificate,OU=pki-tomcat,O=EXAMPLE;CN=test.example.com
-
add: userCertificate
userCertificate::<certificate_base64>
EOF
<certificate_base64>
を実際の値に置き換えます。DER 証明書から値を取得するには、次のコマンドを使用できます。
openssl base64 -in cert.der | sed 's/^/ /'
$ openssl base64 -in cert.der | sed 's/^/ /'