1.7. 인증서 기반 인증 구성
Directory Server는 복제 토폴로지와 같이 LDAP 클라이언트의 인증서 기반 인증 및 서버 간 연결을 지원합니다.
구성에 따라 클라이언트는 인증서를 사용하여 인증하거나 인증해야 합니다. 인증서를 확인한 후 인증서의 subject 필드에 따라 서버는 디렉터리에서 사용자를 검색합니다. 검색에서 정확히 하나의 사용자 항목을 반환하는 경우 Directory Server는 이 사용자를 모든 추가 작업에 사용합니다. 선택적으로 인증에 사용된 인증서가 사용자 항목의 userCertificate
속성에 저장된 DER(Detinguished Encoding Rules) 형식의 인증서와 일치하도록 구성할 수 있습니다.
인증서 기반 인증을 사용할 때의 이점:
- 개선된 효율성: 인증서 데이터베이스 암호로 인증한 다음 이후의 모든 바인딩 또는 인증 작업에 해당 인증서를 사용하는 것이 바인딩 고유 이름(DN) 및 암호를 반복적으로 제공하는 것보다 효율적입니다.
- 보안 개선: 인증서 기반 인증이 공개 키 암호화를 사용하므로 인증서 기반 인증 사용이 비인증서 바인딩 작업보다 더 안전합니다. 공격자는 네트워크에서 자격 증명을 가로채는 것을 차단할 수 없습니다. 인증서 또는 장치가 손실되면 PIN 없이 사용할 수 없으므로 피싱 공격과 같은 타사의 간섭에 민감합니다.
1.7.1. 인증서 기반 인증 설정 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Directory Server에서 TLS 암호화를 활성화했습니다.
-
NSS(네트워크 보안 서비스) 데이터베이스에서 CA(인증 기관) 인증서의 Cryostat 플래그를 설정합니다.
절차
/etc/dirsrv/slapd- <instance_name> /certmap.conf
파일을 만들어 인증서의 정보를 Directory Server 사용자에게 매핑합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 구성에서
cn=Example CA
에서 발급한 인증서의 경우DNComps
매개변수가 이 발행자에 대해 비어 있으므로 디렉터리 서버는 인증서 제목에서 기본 DN을 생성하지 않습니다. 또한FilterComps
및VerifyCert
에 대한 설정은 기본 항목에서 상속됩니다.cn=Example CA
와 다른 발행자 DN이 있는 인증서는 기본 항목의 설정을 사용하고 인증서 제목의 cn 속성을 기반으로 기본 DN을 생성합니다. 이렇게 하면 전체 디렉터리를 검색하지 않고도 Directory Server에서 특정 DN에서 검색을 시작할 수 있습니다.모든 인증서의 경우 Directory Server는 인증서 제목에서
mail
및cn
특성을 사용하여 검색 필터를 생성합니다. 그러나 제목에mail
속성이 없는 경우 Directory Server는 제목에 있는 인증서의 e 속성 값을 자동으로 사용합니다.인증서 기반 인증을 활성화합니다. 예를 들어 인증서 기반 인증을 선택 사항으로 구성하려면 다음을 입력합니다.
dsconf <instance_name> security set --tls-client-auth="allowed"
# dsconf <instance_name> security set --tls-client-auth="allowed"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow --tls-client-auth=required
옵션을 사용하여 인증서 기반 인증을 필수로 구성합니다.선택 사항: 필요에 따라 인증서 기반 인증을 구성한 경우
nsslapd-require-secure-binds
매개변수를 활성화합니다.dsconf <instance_name> config replace nsslapd-require-secure-binds=on
# dsconf <instance_name> config replace nsslapd-require-secure-binds=on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 설정을 사용하면 암호화되지 않은 연결을 사용하여 인증서 기반 인증을 우회할 수 없습니다.
선택 사항: Directory Server에서 바인드 요청의 인증 정보 대신 인증서의 ID를 사용해야 하는 경우
EXTERNAL
간단한 인증 및 보안 계층(SASL) 메커니즘을 사용하도록 디렉터리 서버를 구성합니다.dsconf <instance_name> config replace nsslapd-force-sasl-external=on
# dsconf <instance_name> config replace nsslapd-force-sasl-external=on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 설정을 사용하면 Directory Server에서 인증서의 ID 이외의 다른 바인딩 메서드를 무시합니다.
인스턴스를 다시 시작합니다.
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 단계:
인증 인증서가 사용자의
userCertificate
속성에 저장된 것과 일치하도록 Directory Server를 구성한 경우 사용자 항목에 인증서를 추가합니다.자세한 내용은 다음을 참조하십시오. 1.7.2절. “사용자에게 인증서 추가”
1.7.2. 사용자에게 인증서 추가 링크 복사링크가 클립보드에 복사되었습니다!
인증서 기반 인증을 설정할 때 인증에 사용된 인증서가 사용자의 userCertificate
바이너리 속성에 저장된 인증서와 일치하도록 서버를 구성할 수 있습니다. 이 기능을 활성화한 경우 영향을 받는 사용자의 인증서를 디렉터리 항목에 추가해야 합니다.
사전 요구 사항
- Directory Server에서 인증서 기반 인증을 활성화했습니다.
- 서버에서 신뢰하는 CA(인증 기관)에서 발급한 클라이언트 인증서가 있어야 합니다.
- 클라이언트 인증서는 고유 인코딩 규칙(DER) 형식으로 되어 있습니다.
-
클라이언트 인증서는 서버의
/etc/dirsrv/slapd-<instance_name>/certmap.conf
에 설정된 요구 사항을 충족합니다.
절차
인증서가 DER 형식이 아닌 경우 변환합니다. 예를 들어 개인 정보 보호 강화 메일(PEM)에서 DER로 인증서를 변환하려면 다음을 입력합니다.
openssl x509 -in /home/user_name/certificate.pem -out /home/user_name/certificate.der -outform DER
# openssl x509 -in /home/user_name/certificate.pem -out /home/user_name/certificate.der -outform DER
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자의
userCertificate
속성에 인증서를 추가합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
인증서 기반 인증을 사용하여 사용자로 인증합니다.
다음 환경 변수를 CA 인증서, 사용자 키 및 사용자 인증서에 대한 해당 경로로 설정합니다.
LDAPTLS_CACERT=/home/user_name/CA.crt LDAPTLS_KEY=/home/user_name/user.key LDAPTLS_CERT=/home/user_name/user.der
LDAPTLS_CACERT=/home/user_name/CA.crt LDAPTLS_KEY=/home/user_name/user.key LDAPTLS_CERT=/home/user_name/user.der
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 또는 현재 사용자의
~/.ldaprc
파일에TLS_CACERT
,TLS_KEY
및TLS_CERT
매개변수를 설정합니다.서버에 연결합니다.
ldapwhoami -H ldaps://server.example.com -Y EXTERNAL
# ldapwhoami -H ldaps://server.example.com -Y EXTERNAL dn: uid=example,ou=people,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow