10.5. 인증서 매핑 및 일치 규칙 문제 해결
스마트 카드로 인증하는 데 문제가 있는 경우 스마트 카드 인증서를 사용자에게 올바르게 연결했는지 확인합니다. 기본적으로 사용자 항목에 usercertificate 속성의 일부로 전체 인증서가 포함된 경우 인증서가 사용자와 연결됩니다. 그러나 인증서 매핑 규칙이 정의된 경우 인증서와 사용자 연결 방식이 변경될 수 있습니다.
스마트 카드를 사용하여 SSH를 사용하여 인증하는 경우 전체 인증서를 IdM(Identity Management)의 사용자 항목에 추가해야 합니다. SSH를 사용하여 인증하기 위해 스마트 카드를 사용하지 않는 경우 ipa user-add-certmapdata 명령을 사용하여 인증서 매핑 데이터를 추가할 수 있습니다.
10.5.1. 인증서가 사용자에게 매핑되는 방법 확인 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 사용자 항목에 usercertificate 속성의 일부로 전체 인증서가 포함된 경우 인증서가 사용자와 연결됩니다. 그러나 인증서 매핑 규칙이 정의된 경우 인증서와 사용자 연결 방식이 변경될 수 있습니다. 인증서 매핑 규칙을 확인하려면 다음 절차를 따르십시오.
사전 요구 사항
- 스마트 카드에서 사용할 IdM(Identity Management) 서버 및 클라이언트를 설치하고 구성했습니다.
- 스마트 카드 리더를 감지하고 스마트 카드의 내용을 표시할 수 있습니다. 시스템의 스마트 카드 액세스 테스트를 참조하십시오.
- 스마트 카드 인증서를 IdM 사용자에게 매핑했습니다. 스마트 카드에서 인증을 구성하기 위한 인증서 매핑 규칙을 참조하십시오.
절차
현재 IdM에 대해 구성된 인증서 매핑 규칙을 확인합니다.
# ipa certmaprule-find ------------------------------------------- 1 Certificate Identity Mapping Rule matched ------------------------------------------- Rule name: smartcardrule Mapping rule: (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500}) Matching rule: <ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM Enabled: TRUE ---------------------------- Number of entries returned 1 ----------------------------다음과 같은 매핑 규칙 중 하나가 정의된 것을 확인할 수 있습니다.
-
ipacertmapdata는 IdM 사용자 항목certmapdata특성이 사용되었음을 나타냅니다. -
altSecurityIdentities는 Active Directory의 사용자 항목 이름 매핑 특성이 사용되도록 지정합니다. -
userCertificate;binary=는 IdM 또는 AD의 전체 인증서가 사용됨을 나타냅니다.
다양한 일치 옵션을 정의할 수 있지만 일반적으로 구성된 옵션 중 일부는 다음과 같습니다.
-
<ISSUER>CN=[…]는 사용 중인 인증서의 issuer 속성을 확인하여 이 값과 일치하는지 확인합니다. -
<SUBJECT>.*,DC=MY,DC=DOMAIN은 인증서의 제목을 확인합니다.
-
IdM 서버의
/etc/sssd/sssd.conf파일에debug_level = 9를 추가하여 SSSD(System Security Services Daemon) 로깅을 활성화합니다.[domain/idm.example.com] ... debug_level = 9SSSD를 다시 시작하십시오.
# systemctl restart sssd매핑이 올바르게 표시되면
/var/log/sssd/sssd_idm.example.com.log파일에 다음 항목이 표시됩니다.[be[idm.example.com]] [sdap_setup_certmap] (0x4000): Trying to add rule [smartcardrule][-1][<ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM][(|(userCertificate;binary={cert!bin})(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500}))].매핑 규칙에 잘못된 구문이 포함된 경우 다음과 유사한 항목을 로그 파일에서 확인할 수 있습니다.
[be[idm.example.com]]] [sss_certmap_init] (0x0040): sss_certmap initialized. [be[idm.example.com]]] [ipa_certmap_parse_results] (0x4000): Trying to add rule [smartcardrule][-1][<ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM][(ipacertmapdata=X509:<I>{issuer_dn!x509}<S>{subject_dn})]. [be[idm.example.com]]] [parse_template] (0x0040): Parse template invalid. [be[idm.example.com]]] [parse_ldap_mapping_rule] (0x0040): Failed to add template. [be[idm.example.com]]] [parse_mapping_rule] (0x0040): Failed to parse LDAP mapping rule. [be[idm.example.com]]] [ipa_certmap_parse_results] (0x0020): sss_certmap_add_rule failed for rule [smartcardrule], skipping. Please check for typos and if rule syntax is supported. [be[idm.example.com]]] [ipa_subdomains_certmap_done] (0x0040): Unable to parse certmap results [22]: Invalid argument [be[idm.example.com]]] [ipa_subdomains_refresh_certmap_done] (0x0020): Failed to read certificate mapping rules [22]: Invalid argument매핑 규칙 구문을 확인합니다.
# ipa certmaprule-show smartcardrule Rule name: smartcardrule Mapping rule: (|(userCertificate;binary={cert!bin})(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})) Matching rule: <ISSUER>CN=Certificate Authority,O=IDM.EXAMPLE.COM Domain name: ipa.test Enabled: TRUE필요한 경우 인증서 매핑 규칙을 수정합니다.
# ipa certmaprule-mod smartcardrule --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'
10.5.2. 스마트 카드 인증서와 관련된 사용자 확인 링크 복사링크가 클립보드에 복사되었습니다!
스마트 카드로 인증하는 데 문제가 있는 경우 올바른 사용자가 스마트 카드 인증서와 연결되어 있는지 확인합니다.
사전 요구 사항
- 스마트 카드에서 사용할 IdM(Identity Management) 서버 및 클라이언트를 설치하고 구성했습니다.
- 스마트 카드 리더를 감지하고 스마트 카드의 내용을 표시할 수 있습니다. 시스템의 스마트 카드 액세스 테스트를 참조하십시오.
- 스마트 카드 인증서를 IdM 사용자에게 매핑했습니다. 스마트 카드에서 인증을 구성하기 위한 인증서 매핑 규칙을 참조하십시오.
-
스마트 카드의 인증서 사본 (예:
cert.pem)이 있습니다.
절차
사용자가 스마트 카드 인증서와 연결되어 있는지 확인합니다.
# ipa certmap-match cert.pem -------------- 1 user matched -------------- Domain: IDM.EXAMPLE.COM User logins: idmuser1 ---------------------------- Number of entries returned 1 ----------------------------사용자 또는 도메인이 올바르지 않으면 인증서가 사용자에게 매핑되는 방법을 확인합니다. 인증서가 사용자에 매핑되는 방법 확인을 참조하십시오.
사용자 항목에 인증서가 포함되어 있는지 확인합니다.
# ipa user-show idmuser1 User login: idmuser1 [...] Certificate:MIIEejCCAuKgAwIBAgIBCzANBgkqhkiG9w0BAQsFADAzMREwDwYDVQQKDAhJUEEuVEVTVDEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XD사용자 항목에 인증서가 없으면 사용자 항목에 base-64로 인코딩된 인증서를 추가합니다.
ipa user-add-cert명령에서 필요한 형식인 헤더와 바닥글이 제거되고 한 줄로 연결된 인증서가 포함된 환경 변수를 생성합니다.$ export CERT=`openssl x509 -outform der -in idmuser1.crt | base64 -w0 -`idmuser1.crt파일의 인증서가 PEM 형식이어야 합니다.ipa user-add-cert명령을 사용하여idmuser1의 프로필에 인증서를 추가합니다.$ ipa user-add-cert idmuser1 --certificate=$CERTSSSD(System Security Services Daemon) 캐시를 지웁니다.
# sssctl cache-remove SSSD must not be running. Stop SSSD now? (yes/no) [yes] yes Creating backup of local data… Removing cache files… SSSD needs to be running. Start SSSD now? (yes/no) [yes] yes
-
ipa certmap-match를 다시 실행하여 사용자가 스마트 카드 인증서와 연결되어 있는지 확인합니다.