Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

Identity Management 구성 및 관리

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 8에서 Identity Management 구성, 관리 및 유지 관리

초록

이 문서 컬렉션은 Red Hat Enterprise Linux 8의 ID 관리를 효과적으로 구성, 관리 및 유지 관리하는 방법에 대한 지침을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Identity Management에서 계획된 용어 교체는 다음과 같습니다.

  • 차단 목록 대체 블랙리스트
  • 목록 교체 허용 화이트리스트
  • 2차 대체 슬레이브
  • master 라는 단어는 컨텍스트에 따라 더 정확한 언어로 교체됩니다.

    • IdM 서버가 IdM 마스터교체
    • CA 갱신 서버가 CA 갱신 마스터교체
    • CRL 게시자 서버가 CRL 마스터교체
    • 멀티 공급자 대체 멀티 마스터

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 이를 개선할 수 있는지 알려 주십시오. 이렇게 하려면 다음을 수행합니다.

  • 특정 문구에 대한 간단한 주석은 다음과 같습니다.

    1. 문서가 Multi-page HTML 형식으로 표시되는지 확인합니다. 또한 문서 오른쪽 상단에 Feedback (피드백) 버튼이 있는지 확인합니다.
    2. 마우스 커서를 사용하여 주석 처리하려는 텍스트 부분을 강조 표시합니다.
    3. 강조 표시된 텍스트 아래에 표시되는 피드백 추가 팝업을 클릭합니다.
    4. 표시된 지침을 따릅니다.
  • 보다 상세하게 피드백을 제출하려면 다음과 같이 Bugzilla 티켓을 생성하십시오.

    1. Bugzilla 웹 사이트로 이동하십시오.
    2. Component로 Documentation을 선택하십시오.
    3. Description 필드에 문서 개선을 위한 제안 사항을 기입하십시오. 관련된 문서의 해당 부분 링크를 알려주십시오.
    4. Submit Bug를 클릭하십시오.

1장. 명령줄에서 Identity Management에 로그인

IdM(Identity Management)은 Kerberos 프로토콜을 사용하여 SSO(Single Sign-On)를 지원합니다. SSO(Single Sign-On)는 사용자가 올바른 사용자 이름과 암호를 한 번만 입력한 다음 시스템에서 자격 증명을 다시 입력하라는 메시지를 표시하지 않고 IdM 서비스에 액세스합니다.

중요

IdM에서 SSSD(System Security Services Daemon)는 사용자가 해당 Kerberos 주체 이름을 사용하여 IdM 클라이언트 시스템에서 데스크탑 환경에 성공적으로 로그인한 후 사용자의 티켓 제공 티켓(TGT)을 자동으로 가져옵니다. 즉, 로그인한 후에는 kinit 유틸리티를 사용하여 IdM 리소스에 액세스할 필요가 없습니다.

Kerberos 인증 정보 캐시를 지우거나 Kerberos TGT가 만료된 경우 Kerberos 티켓을 수동으로 요청하여 IdM 리소스에 액세스해야 합니다. 다음 섹션에서는 IdM에서 Kerberos를 사용할 때 기본 사용자 작업을 보여줍니다.

1.1. kinit 를 사용하여 IdM에 수동으로 로그인합니다.

이 절차에서는 kinit 유틸리티를 사용하여 IdM(Identity Management) 환경에 수동으로 인증하는 방법을 설명합니다. kinit 유틸리티는 IdM 사용자를 대신하여 Kerberos 티켓 부여 티켓(TGT)을 가져와 캐시합니다.

참고

초기 Kerberos TGT를 삭제했거나 만료된 경우에만 이 절차를 사용하십시오. IdM 사용자로 로컬 시스템에 로그인할 때도 IdM에 자동으로 로그인됩니다. 즉, 로그인한 후에는 kinit 유틸리티를 사용하여 IdM 리소스에 액세스할 필요가 없습니다.

절차

  1. IdM에 로그인하려면

    • 로컬 시스템에 현재 로그인한 사용자의 사용자 이름 아래에 사용자 이름을 지정하지 않고 kinit 를 사용합니다. 예를 들어 로컬 시스템에서 example_user 로 로그인한 경우 다음을 수행합니다.

      [example_user@server ~]$ kinit
      Password for example_user@EXAMPLE.COM:
      [example_user@server ~]$

      로컬 사용자의 사용자 이름이 IdM의 사용자 항목과 일치하지 않으면 인증 시도가 실패합니다.

      [example_user@server ~]$ kinit
      kinit: Client 'example_user@EXAMPLE.COM' not found in Kerberos database while getting initial credentials
    • 로컬 사용자 이름에 해당하지 않는 Kerberos 주체를 사용하여 필수 사용자 이름을 kinit 유틸리티에 전달합니다. 예를 들어 admin 사용자로 로그인하려면 다음을 수행합니다.

      [example_user@server ~]$ kinit admin
      Password for admin@EXAMPLE.COM:
      [example_user@server ~]$
  2. 선택적으로 로그인에 성공했는지 확인하려면 klist 유틸리티를 사용하여 캐시된 TGT를 표시합니다. 다음 예에서 캐시에는 example_user 주체의 티켓이 포함되어 있습니다. 즉, 이 특정 호스트에서는 현재 example_user 만 IdM 서비스에 액세스할 수 있습니다.

    $ klist
    Ticket cache: KEYRING:persistent:0:0
    Default principal: example_user@EXAMPLE.COM
    
    Valid starting     	Expires            	Service principal
    11/10/2019 08:35:45  	11/10/2019 18:35:45  	krbtgt/EXAMPLE.COM@EXAMPLE.COM

1.2. 사용자의 활성 Kerberos 티켓 삭제

이 섹션에서는 사용자의 활성 Kerberos 티켓이 포함된 자격 증명 캐시를 지우는 방법을 설명합니다.

절차

  1. Kerberos 티켓을 삭제하려면 다음을 수행합니다.

    [example_user@server ~]$ kdestroy
  2. 선택적으로 Kerberos 티켓이 삭제되었는지 확인하려면 다음을 수행하십시오.

    [example_user@server ~]$ klist
    klist: Credentials cache keyring 'persistent:0:0' not found

1.3. Kerberos 인증을 위한 외부 시스템 구성

이 섹션에서는 IdM(Identity Management) 사용자가 Kerberos 자격 증명을 사용하여 외부 시스템에서 IdM에 로그인할 수 있도록 외부 시스템을 구성하는 방법에 대해 설명합니다.

외부 시스템에서 Kerberos 인증을 활성화하는 것은 인프라에 여러 영역 또는 중복되는 도메인이 포함된 경우 특히 유용합니다. 시스템이 ipa-client-install 을 통해 IdM 도메인에 등록되지 않은 경우에도 유용합니다.

IdM 도메인의 멤버가 아닌 시스템에서 IdM에 대한 Kerberos 인증을 활성화하려면 외부 시스템에 IdM별 Kerberos 구성 파일을 정의합니다.

사전 요구 사항

  • krb5-workstation 패키지는 외부 시스템에 설치됩니다.

    패키지가 설치되어 있는지 여부를 확인하려면 다음 CLI 명령을 사용합니다.

    # yum list installed krb5-workstation
    Installed Packages
    krb5-workstation.x86_64    1.16.1-19.el8     @BaseOS

절차

  1. IdM 서버에서 외부 시스템으로 /etc/krb5.conf 파일을 복사합니다. 예를 들면 다음과 같습니다.

    # scp /etc/krb5.conf root@externalsystem.example.com:/etc/krb5_ipa.conf
    주의

    외부 시스템의 기존 krb5.conf 파일을 덮어쓰지 마십시오.

  2. 외부 시스템에서 복사된 IdM Kerberos 구성 파일을 사용하도록 터미널 세션을 설정합니다.

    $ export KRB5_CONFIG=/etc/krb5_ipa.conf

    KRB5_CONFIG 변수는 로그아웃할 때까지 일시적으로만 존재합니다. 이 손실을 방지하려면 다른 파일 이름으로 변수를 내보냅니다.

  3. /etc/krb5.conf.d/ 디렉토리에서 외부 시스템으로 Kerberos 구성 조각을 복사합니다.

이제 외부 시스템의 사용자는 kinit 유틸리티를 사용하여 IdM 서버에 대해 인증할 수 있습니다.

추가 리소스

  • Kerberos에 대한 자세한 내용은 krb5.conf(5), kinit(1), klist(1)kdestroy(1) 도움말 페이지를 참조하십시오.

2장. ID 관리 서비스 보기, 시작 및 중지

IdM(Identity Management) 서버는 DC(도메인 컨트롤러)로 작동하는 Red Hat Enterprise Linux 시스템입니다. IdM 서버에서 다양한 서비스가 실행되고 있습니다. 특히 Directory Server, CA(인증 기관), DNS 및 Kerberos가 있습니다.

2.1. IdM 서비스

2.1.1. IdM 서버에서 호스팅하는 서비스 목록

다음 서비스는 대부분 IdM 서버에 설치해야 하는 것은 아닙니다. 예를 들어 IdM 도메인 외부의 외부 서버에 CA(인증 기관) 또는 DNS 서버와 같은 서비스를 설치할 수 있습니다.

Kerberos
krb5kdckadmin 서비스

IdM은 Kerberos 프로토콜을 사용하여 SSO(Single-Sign-On)를 지원합니다. Kerberos를 사용하면 사용자는 올바른 사용자 이름과 암호를 한 번만 제공해야 하며 시스템에서 자격 증명을 다시 요구하지 않고 IdM 서비스에 액세스할 수 있습니다.

Kerberos는 다음 두 부분으로 나뉩니다.

  • krb5kdc 서비스는 Kerberos 인증 서비스 및 KDC(키 배포 센터) 데몬입니다.
  • kadmin 서비스는 Kerberos 데이터베이스 관리 프로그램입니다.

IdM에서 Kerberos를 사용하여 인증하는 방법에 대한 자세한 내용은 명령줄에서 ID 관리에 로그인웹 UI에서 IdM에 로그인을 참조하십시오. Kerberos 티켓 사용 .

LDAP 디렉터리 서버
dirsrv 서비스

IdM LDAP 디렉터리 서버 인스턴스는 Kerberos, 사용자 계정, 호스트 항목, 서비스, 정책, DNS 등과 관련된 정보와 같은 모든 IdM 정보를 저장합니다. LDAP 디렉터리 서버 인스턴스는 Red Hat Directory Server 와 동일한 기술을 기반으로 합니다. 그러나 IdM 관련 작업에 맞게 조정됩니다.

인증 기관
pki-tomcatd 서비스

통합 CA (인증 기관)Red Hat Certificate System 과 동일한 기술을 기반으로 합니다.pki 는 인증서 시스템 서비스에 액세스하기 위한 명령줄 인터페이스입니다.

필요한 모든 인증서를 개별적으로 생성하고 제공하는 경우 통합 CA 없이 서버를 설치할 수도 있습니다.

자세한 내용은 CA 서비스 계획을 참조하십시오.

DNS(Domain Name System)
명명된 서비스

IdM은 동적 서비스 검색을 위해 DNS 를 사용합니다. IdM 클라이언트 설치 유틸리티는 DNS의 정보를 사용하여 클라이언트 시스템을 자동으로 구성할 수 있습니다. 클라이언트가 IdM 도메인에 등록되면 DNS를 사용하여 도메인 내에서 IdM 서버 및 서비스를 찾습니다. Red Hat Enterprise Linux의 DNS (Domain Name System) 프로토콜의 BIND (Berkeley Internet Name Domain) 구현에는 이름 지정된 DNS 서버가 포함되어 있습니다. named-pkcs11 은 PKCS#11 암호화 표준에 대한 기본 지원으로 구축 된 BIND DNS 서버의 버전입니다.

자세한 내용은 DNS 서비스 및 호스트 이름 계획을 참조하십시오.

Apache HTTP Server
httpd 서비스

Apache HTTP 웹 서버는 IdM 웹 UI를 제공하며 인증 기관과 기타 IdM 서비스 간의 통신을 관리합니다.

Samba / Winbind
SMBwinbind 서비스

Samba는 Red Hat Enterprise Linux에서 CIFS(Common Internet File System) 프로토콜이라고도 하는 SMB(서버 메시지 블록) 프로토콜을 구현합니다. smb 서비스를 통해 SMB 프로토콜을 사용하면 파일 공유 및 공유 프린터와 같은 서버의 리소스에 액세스할 수 있습니다. AD(Active Directory) 환경을 사용하여 Trust를 구성한 경우 'Winbind' 서비스는 IdM 서버와 AD 서버 간의 통신을 관리합니다.

일회성 암호(OTP) 인증
ipa-otpd 서비스

일회성 암호(OTP)는 이중 인증의 일부로 하나의 세션에서만 인증 토큰에 의해 생성되는 암호입니다. OTP 인증은 ipa-otpd 서비스를 통해 Red Hat Enterprise Linux에서 구현됩니다.

자세한 내용은 일회성 암호를 사용하여 Identity Management Web UI 로 로그인을 참조하십시오.

OpenDNSSEC
ipa-dnskeysyncd 서비스

OpenDNSSEC는 DNSSEC (DNS 보안 확장) 키 및 영역 서명을 유지하는 프로세스를 자동화하는 DNS 관리자입니다. ipa-dnskeysyncd 서비스는 IdM 디렉터리 서버와 OpenDNSSEC 간의 동기화를 관리합니다.

ID 관리 서버: 서비스 통합

2.1.2. IdM 클라이언트가 호스팅하는 서비스 목록

  • 시스템 보안 서비스 데몬: sssd 서비스

SSSD(시스템 보안 서비스 데몬 )는 사용자 인증 및 캐싱 자격 증명을 관리하는 클라이언트 측 애플리케이션입니다. 캐싱을 사용하면 IdM 서버를 사용할 수 없거나 클라이언트가 오프라인 상태가 되면 로컬 시스템에서 일반 인증 작업을 계속할 수 있습니다.

자세한 내용은 SSSD 및 이점 이해를 참조하십시오.

  • certmonger: certmonger 서비스

certmonger 서비스는 클라이언트의 인증서를 모니터링하고 갱신합니다. 시스템에서 서비스에 대한 새 인증서를 요청할 수 있습니다.

자세한 내용은 certmonger를 사용하여 서비스의 IdM 인증서 가져오기를 참조하십시오.

IdM 서비스 간 상호 작용

2.2. IdM 서비스 상태 보기

IdM 서버에 구성된 IdM 서비스의 상태를 보려면 ipactl status 명령을 실행합니다.

[root@server ~]# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
pki-tomcatd Service: RUNNING
smb Service: RUNNING
winbind Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful

서버의 ipactl status 명령 출력은 IdM 구성에 따라 다릅니다. 예를 들어 IdM 배포에 DNS 서버가 포함되지 않은 경우 명명된 서비스가 목록에 표시되지 않습니다.

참고

IdM 웹 UI를 사용하여 특정 IdM 서버에서 실행되는 모든 IdM 서비스의 상태를 볼 수 없습니다. 다른 서버에서 실행 중인 Kerberized 서비스는 IdM 웹 UI의 ID서비스 탭에서 볼 수 있습니다.

전체 서버 또는 개별 서비스만 시작하거나 중지할 수 있습니다.

전체 IdM 서버를 시작, 중지 또는 다시 시작하려면 다음을 참조하십시오.

개별 IdM 서비스를 시작, 중지 또는 다시 시작하려면 다음을 참조하십시오.

IdM 소프트웨어 버전을 표시하려면 다음을 참조하십시오.

2.3. 전체 ID 관리 서버 시작 및 중지: ipactl 유틸리티

설치된 모든 서비스와 함께 ipactl 유틸리티를 사용하여 전체 IdM 서버를 중지, 시작 또는 다시 시작합니다. ipactl 유틸리티를 사용하면 모든 서비스가 적절한 순서로 중지, 시작 또는 다시 시작됩니다. ipactl 명령을 실행하기 위해 유효한 Kerberos 티켓이 필요하지 않습니다.

ipactl 명령

전체 IdM 서버를 시작하려면 다음을 수행합니다.

# ipactl start

전체 IdM 서버를 중지하려면 다음을 수행합니다.

# ipactl stop

전체 IdM 서버를 다시 시작하려면 다음을 수행합니다.

# ipactl restart

IdM을 구성하는 모든 서비스의 상태를 표시하려면 다음을 수행합니다.

# ipactl status
중요

IdM 웹 UI를 사용하여 ipactl 명령을 수행할 수 없습니다.

2.4. 개별 ID 관리 서비스 시작 및 중지: systemctl 유틸리티

일반적으로 IdM 구성 파일을 수동으로 변경하는 것은 권장되지 않습니다. 그러나 특정 상황에서는 관리자가 특정 서비스의 수동 구성을 수행해야 합니다. 이러한 상황에서는 systemctl 유틸리티를 사용하여 개별 IdM 서비스를 중지, 시작 또는 다시 시작합니다.

예를 들어 다른 IdM 서비스를 수정하지 않고 Directory Server 동작을 사용자 정의한 후 systemctl 을 사용합니다.

# systemctl restart dirsrv@REALM-NAME.service

또한 Active Directory를 사용하여 IdM 트러스트를 처음 배포하는 경우 /etc/sssd/sssd.conf 파일을 수정하여 다음을 추가합니다.

  • 원격 서버에 대기 시간이 길어지는 환경에서 시간 제한 구성 옵션을 조정하는 특정 매개 변수
  • Active Directory 사이트 유사성을 조정하기 위한 특정 매개변수
  • 글로벌 IdM 설정에서 제공하지 않는 특정 구성 옵션의 재정의

/etc/sssd/sssd.conf 파일에서 변경한 사항을 적용하려면 다음을 수행합니다.

# systemctl restart sssd.service

SSSD(System Security Services Daemon)에서 구성을 자동으로 다시 읽거나 다시 적용하지 않으므로 systemctl restart sssd.service 를 실행해야 합니다.

IdM ID 범위에 영향을 미치는 변경 사항은 전체 서버 재부팅을 권장합니다.

중요

여러 IdM 도메인 서비스를 다시 시작하려면 항상 ipactl 을 사용하십시오. IdM 서버와 함께 설치된 서비스 간 종속성 때문에 시작하고 중지된 순서가 중요합니다. ipactl 유틸리티는 서비스가 적절한 순서로 시작되고 중지되었는지 확인합니다.

유용한 systemctl 명령

특정 IdM 서비스를 시작하려면 다음을 수행합니다.

# systemctl start name.service

특정 IdM 서비스를 중지하려면 다음을 수행합니다.

# systemctl stop name.service

특정 IdM 서비스를 다시 시작하려면 다음을 수행합니다.

# systemctl restart name.service

특정 IdM 서비스의 상태를 보려면 다음을 수행합니다.

# systemctl status name.service
중요

IdM 웹 UI를 사용하여 IdM 서버에서 실행되는 개별 서비스를 시작하거나 중지할 수 없습니다. 웹 UI를 사용하여 ID → 서비스로 이동하고 서비스를 선택하여 Kerberized 서비스의 설정을 수정할 수 있습니다.

2.5. IdM 소프트웨어 버전을 표시하는 방법

다음을 사용하여 IdM 버전 번호를 표시할 수 있습니다.

  • IdM WebUI
  • IPA 명령
  • rpm 명령

 

WebUI를 통해 버전 표시

IdM WebUI에서 오른쪽의 사용자 이름 메뉴에서 About (정보)을 선택하여 소프트웨어 버전을 표시할 수 있습니다.

IdM 소프트웨어 버전 확인
ipa 명령으로 버전 표시

명령줄에서 ipa --version 명령을 사용합니다.

[root@server ~]# ipa --version
VERSION: 4.8.0, API_VERSION: 2.233
rpm 명령으로 버전 표시

IdM 서비스가 제대로 작동하지 않는 경우 rpm 유틸리티를 사용하여 현재 설치된 ipa-server 패키지의 버전 번호를 확인할 수 있습니다.

[root@server ~]# rpm -q ipa-server
ipa-server-4.8.0-11.module+el8.1.0+4247+9f3fd721.x86_64

3장. IdM 명령줄 유틸리티 소개

다음 섹션에서는 IdM(Identity Management) 명령줄 유틸리티를 사용하는 기본 사항에 대해 설명합니다.

사전 요구 사항

3.1. IPA 명령줄 인터페이스란 무엇입니까?

IPA CLI(명령줄 인터페이스)는 IdM(Identity Management) 관리를 위한 기본 명령줄 인터페이스입니다.

IdM을 관리하는 데 사용되는 많은 하위 명령(예: 새 사용자를 추가하는 ipa user-add 명령)을 지원합니다.

IPA CLI를 사용하면 다음을 수행할 수 있습니다.

  • 네트워크의 사용자, 그룹, 호스트 및 기타 개체를 추가, 관리 또는 제거합니다.
  • 인증서 관리.
  • 검색 항목.
  • 오브젝트 표시 및 나열.
  • 액세스 권한 설정.
  • 올바른 명령 구문에 대한 도움말을 가져옵니다.

3.2. IPA 도움말이란 무엇입니까?

IPA 도움말은 IdM 서버를 위한 기본 제공되는 설명서 시스템입니다.

IPA CLI(명령줄 인터페이스)는 로드된 IdM 플러그인 모듈에서 사용 가능한 도움말 주제를 생성합니다. IPA 도움말을 성공적으로 실행하려면 다음을 수행해야 합니다.

  • IdM 서버가 설치되어 실행 중이 되도록 합니다.
  • 유효한 Kerberos 티켓으로 인증됩니다.

옵션 없이 ipa help 명령을 실행하면 기본 도움말 사용 및 가장 일반적인 명령 예제에 대한 정보가 표시됩니다.

옵션을 사용하여 도움말을 실행하면 다음과 같은 구문이 있습니다.

$ ipa help [TOPIC | COMMAND | topics | commands]
  • [] ^-dbbrackets는 모든 매개변수가 선택 사항임을 의미하며 ipa help 만 쓸 수 있으며 명령이 실행됩니다.
  • | cd-파이프 문자의 의미. 따라서 기본 ipa help 명령을 사용하여IC 또는 COMMAND 또는 topic 또는 명령을 사용할 수 있습니다.
  • 토픽 - ipa help topic 명령을 실행할 수 있으며 올바르게 실행됩니다. 명령은 IPA 도움말에서 다루는 항목(예: 사용자,인증서,서버 등)을 표시합니다.
  • -- IC ICTI- 자릿 문자가 포함된 내용은 변수를 의미하므로 특정 주제( 예: ipa도움말 사용자)를 사용할 수 있습니다.
  • 명령에 ipa help 명령을 실행하면 ipa help 명령이 올바르게 실행됩니다. 명령은 IPA 도움말에서 다루는 명령 목록을 표시합니다(예: user-add,ca-enable,server-show 등).
  • COMMAND TI- 자세한 문자가 있는 COMMAND는 변수를 의미하므로 특정 명령( 예: ipa help user-add)을 사용할 수 있습니다.

3.3. IPA 도움말 항목 사용

다음 절차는 명령줄 인터페이스에서 IPA 도움말을 사용하여 이해하는 데 도움이 됩니다.

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. ipa 도움말 주제를 입력하여 도움말으로 다룬 주제 목록을 표시합니다.

    $ ipa help topics
  3. 주제 중 하나를 선택하고 다음 패턴에 따라 명령을 만듭니다. ipa help [topic_name]topic_name 문자열 대신 이전 단계에서 나열된 항목 중 하나를 추가합니다.

    예에서는 다음 주제를 사용합니다. user

    $ ipa help user
  4. IPA help 명령이 너무 길고 전체 텍스트를 볼 수 없는 경우 다음 구문을 사용하십시오.

    $ ipa help user | less

    아래로 스크롤하여 전체 도움말을 읽을 수 있습니다.

IPA CLI에는 사용자 주제에 대한 도움말 페이지가 표시됩니다. 개요를 읽은 후에는 topic 명령을 사용하여 작업하기 위한 패턴이 있는 여러 예제를 볼 수 있습니다.

3.4. IPA 도움말 명령 사용

다음 절차는 명령줄 인터페이스에서 IPA 도움말 명령 생성을 이해하는 데 도움이 됩니다.

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. ipa help 명령을 입력하여 도움말으로 다루는 명령 목록을 표시합니다.

    $ ipa help commands
  3. 명령 중 하나를 선택하고 다음 패턴에 따라 help 명령을 만듭니다. ipa help <COMMAND&gt; 문자열 대신 이전 단계에서 나열한 명령 중 하나를 추가합니다.

    $ ipa help user-add

추가 리소스

  • 자세한 내용은 man ipa 페이지를 참조하십시오.

3.5. IPA 명령 구조

IPA CLI는 다음 유형의 명령을 구분합니다.

  • 기본 제공 명령 UTC-|Built-in 명령은 모두 IdM 서버에서 사용할 수 있습니다.
  • 플러그인 제공 명령

IPA 명령 구조를 사용하면 다양한 유형의 오브젝트를 관리할 수 있습니다. 예를 들면 다음과 같습니다.

  • 사용자,
  • 호스트,
  • DNS 레코드,
  • 인증서,

기타 여러 가지.

이러한 대부분의 오브젝트의 경우 IPA CLI에는 다음 명령이 포함됩니다.

  • 추가 (추가)
  • 수정 (mod)
  • 삭제 (del)
  • 검색 (찾기)
  • 표시(표시)

명령에는 다음과 같은 구조가 있습니다.

ipa user-add, ipa user-mod, ipa user-del, ipa user-find, ipa user-show

ipa host-add, ipa host-mod, ipa host-del, ipa host-find, ipa host-show

ipa dnsrecord-add,ipa dnsrecord-mod,ipa dnsrecord-del,ipa dnsrecord-find,ipa dnrecord-show

ipa user-add [options] 를 사용하여 사용자를 생성할 수 있습니다. 여기서 [options] 는 선택 사항입니다. ipa user-add 명령만 사용하는 경우 스크립트에서 세부 정보를 하나씩 요청합니다.

기존 오브젝트를 변경하려면 오브젝트를 정의해야 하므로 명령에 오브젝트 ipa user-mod USER_NAME [options] 도 포함됩니다.

3.6. IPA 명령을 사용하여 IdM에 사용자 계정 추가

다음은 명령줄을 사용하여 IdM(Identity Management) 데이터베이스에 새 사용자를 추가하는 방법을 설명합니다.

사전 요구 사항

  • IdM 서버에 사용자 계정을 추가하려면 관리자 권한이 있어야 합니다.

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 새 사용자를 추가하려면 명령을 입력합니다.

    $ ipa user-add

    명령은 사용자 계정을 생성하는 데 필요한 기본 데이터를 추가할 수 있는 스크립트를 실행합니다.

  3. Name( 이름): 필드에 새 사용자의 이름을 입력하고 Enter 키를 누릅니다.
  4. Last name:(이름: ) 필드에 새 사용자의 성을 입력하고 Enter 키를 누릅니다.
  5. User login [suggested user name]: 사용자 이름을 입력하거나 제안된 사용자 이름이 작동하는 경우 Enter 키를 누릅니다.

    사용자 이름은 전체 IdM 데이터베이스에서 고유해야 합니다. 오류가 발생하면 사용자가 이미 존재하는 경우 ipa user-add 명령으로 처음부터 시작하고 다른 사용자 이름을 시도해야 합니다.

사용자 이름을 성공적으로 추가한 후에는 사용자 계정이 IdM 데이터베이스에 추가되고 다음 로그에 IPA CLI(명령줄 인터페이스)가 출력됩니다.

----------------------
Added user "euser"
----------------------
User login: euser
First name: Example
Last name: User
Full name: Example User
Display name: Example User
Initials: EU
Home directory: /home/euser
GECOS: Example User
Login shell: /bin/sh
Principal name: euser@IDM.EXAMPLE.COM
Principal alias: euser@IDM.EXAMPLE.COM
Email address: euser@idm.example.com
UID: 427200006
GID: 427200006
Password: False
Member of groups: ipausers
Kerberos keys available: False

위 화면에서 사용자 암호가 사용자 계정으로 설정되지 않았습니다. 암호도 추가하려면 다음 구문에서 ipa user-add 명령을 사용하십시오.

$ ipa user-add --first=Example --last=User --password

그러면 IPA CLI에서 사용자 이름 및 암호를 추가하거나 확인하도록 요청합니다.

사용자가 이미 생성된 경우 ipa user-mod 명령을 사용하여 암호만 추가할 수 있습니다.

추가 리소스

매개변수에 대한 자세한 내용을 보려면 명령줄에 다음 help 명령을 입력합니다.

$ ipa help user-add

3.7. IPA 명령을 사용하여 IdM에서 사용자 계정 수정

각 사용자 계정에 대한 많은 매개 변수를 변경할 수 있습니다. 예를 들어, 사용자에게 새 암호를 추가할 수 있습니다.

기본 명령 구문은 user-add 구문과 다릅니다. 변경 사항을 수행할 기존 사용자 계정을 정의해야 하기 때문입니다(예: 암호 추가).

사전 요구 사항

  • IdM 서버에서 사용자 계정을 수정하려면 관리자 권한이 있어야 합니다.

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 암호를 추가하려면 명령을 입력합니다.

    $ ipa user-mod euser --password

    이 명령은 새 암호를 추가할 수 있는 스크립트를 실행합니다.

  3. 새 암호를 입력하고 Enter 키를 누릅니다.

사용자 이름을 성공적으로 추가한 후에는 사용자 계정이 IdM 데이터베이스에 추가되고 다음 로그의 IPA CLI가 출력됩니다.

----------------------
Modified user "euser"
----------------------
User login: euser
First name: Example
Last name: User
Home directory: /home/euser
Principal name: euser@IDM.EXAMPLE.COM
Principal alias: euser@IDM.EXAMPLE.COM
Email address: euser@idm.example.com
UID: 427200006
GID: 427200006
Password: True
Member of groups: ipausers
Kerberos keys available: True

이제 사용자 암호가 계정에 대해 설정되었으며 사용자가 IdM에 로그인할 수 있습니다.

추가 리소스

매개변수에 대한 자세한 내용을 보려면 명령줄에 다음 help 명령을 입력합니다.

$ ipa help user-mod

3.8. IdM 유틸리티에 값 목록을 제공하는 방법

IdM(Identity Management)은 다중 값 속성의 값을 목록에 저장합니다.

IdM은 다중 값 목록을 제공하는 다음 방법을 지원합니다.

  • 동일한 명령 호출 내에서 동일한 명령줄 인수를 여러 번 사용합니다.

    $ ipa permission-add --right=read --permissions=write --permissions=delete ...
  • 또는 목록을 중괄호로 묶을 수 있습니다. 이 경우 쉘이 확장을 수행합니다.

    $ ipa permission-add --right={read,write,delete} ...

위의 예제에서는 개체에 권한을 추가하는 permissions-add 명령을 보여줍니다. 예제에는 오브젝트가 언급되지 않습니다. 대신 …​ 권한을 추가하려는 객체를 추가해야 합니다.

명령줄에서 이러한 다중 값 속성을 업데이트하면 IdM은 이전 값 목록을 새 목록으로 완전히 덮어씁니다. 따라서 다중 값 특성을 업데이트할 때 추가하려는 단일 값뿐만 아니라 전체 새 목록을 지정해야 합니다.

위의 명령에서 권한 목록에는 읽기, 쓰기, 삭제가 포함됩니다. permission-mod 명령으로 목록을 업데이트하기로 결정하면 모든 값을 추가해야 합니다. 그렇지 않으면 언급되지 않은 값이 삭제됩니다.

예 1: UTC - ipa permission -mod 명령은 이전에 추가한 모든 권한을 업데이트합니다.

$ ipa permission-mod --right=read --right=write --right=delete ...

또는

$ ipa permission-mod --right={read,write,delete} ...

예 2: ipa permission -mod 명령은 명령에 포함되어 있지 않기 때문에 --right=delete 인수를 삭제합니다.

$ ipa permission-mod --right=read --right=write ...

또는

$ ipa permission-mod --right={read,write} ...

3.9. IdM 유틸리티와 함께 특수 문자를 사용하는 방법

특수 문자를 ipa 명령에 포함하는 명령줄 인수를 전달할 때 백슬래시(\)를 사용하여 이 문자를 이스케이프합니다. 예를 들어 일반적인 특수 문자에는 대괄호(< 및 >), 앰퍼샌드(&), 별표(*) 또는 세로 막대(|)가 있습니다.

예를 들어 별표(*)를 이스케이프하려면 다음을 수행합니다.

$ ipa certprofile-show certificate_profile --out=exported\*profile.cfg

이스케이프되지 않은 특수 문자가 포함된 명령은 이러한 문자를 올바르게 구문 분석할 수 없기 때문에 작동하지 않습니다.

4장. 명령줄에서 Identity Management 항목 검색

다음 섹션에서는 개체를 찾거나 표시하는 데 도움이 되는 IPA 명령을 사용하는 방법에 대해 설명합니다.

4.1. IdM 항목 나열 개요

이 섹션에서는 특정 유형의 IdM 항목을 검색하는 데 도움이 되는 ipa *-find 명령에 대해 설명합니다.

find 명령을 모두 나열하려면 다음 ipa help 명령을 사용합니다.

$ ipa help commands | grep find

특정 사용자가 IdM 데이터베이스에 포함되어 있는지 확인해야 할 수도 있습니다. 다음 명령을 사용하여 모든 사용자를 나열할 수 있습니다.

$ ipa user-find

지정된 속성에 키워드가 포함된 사용자 그룹을 나열하려면 다음을 수행합니다.

$ ipa group-find keyword

예를 들어 ipa group-find admin 명령은 이름 또는 설명에 문자열 admin 이 포함된 모든 그룹을 나열합니다.

----------------
3 groups matched
----------------
   Group name: admins
   Description: Account administrators group
   GID: 427200002

   Group name: editors
   Description: Limited admins who can edit other users
   GID: 427200002

   Group name: trust admins
   Description: Trusts administrators group

사용자 그룹을 검색할 때 검색 결과를 특정 사용자가 포함된 그룹으로 제한할 수도 있습니다.

$ ipa group-find --user=user_name

특정 사용자가 포함되지 않은 그룹을 검색하려면 다음을 수행합니다.

$ ipa group-find --no-user=user_name

4.2. 특정 항목의 세부 정보 표시

ipa *-show 명령을 사용하여 특정 IdM 항목에 대한 세부 정보를 표시합니다.

절차

  • server.example.com이라는 호스트에 대한 세부 정보를 표시하려면 다음을 수행합니다.

    $ ipa host-show server.example.com
    
    Host name: server.example.com
    Principal name: host/server.example.com@EXAMPLE.COM
    ...

4.3. 검색 크기 및 시간 제한 조정

IdM 사용자 목록을 요청하는 등의 일부 쿼리는 매우 많은 항목을 반환할 수 있습니다. 이러한 검색 작업을 조정하면 ipa 사용자 검색과 같은 ipa *-find 명령을 실행하고 웹 UI에 해당 목록을 표시할 때 전체 서버 성능을 향상시킬 수 있습니다.

검색 크기 제한

클라이언트 CLI에서 서버로 전송하거나 IdM 웹 UI에 액세스하는 브라우저에서 전송된 요청에 대해 반환된 최대 항목 수를 정의합니다.

기본값: 100개 항목.

검색 시간 제한

서버에서 검색을 실행할 때까지 대기하는 최대 시간(초)을 정의합니다. 검색이 이 제한에 도달하면 서버에서 검색을 중지하고 해당 시간에서 검색된 항목을 반환합니다.

기본값: 2초.

값을 -1 로 설정하면 IdM은 검색할 때 제한을 적용하지 않습니다.

중요

검색 크기 또는 시간 제한을 너무 높게 설정하면 서버 성능에 부정적인 영향을 줄 수 있습니다.

4.3.1. 명령줄에서 검색 크기 및 시간 제한 조정

다음 텍스트는 명령줄에서 검색 크기 및 시간 제한을 조정하는 방법을 설명합니다.

  • 전 세계
  • 특정 항목의 경우

절차

  1. CLI에서 현재 검색 시간 및 크기 제한을 표시하려면 ipa config-show 명령을 사용합니다.

    $ ipa config-show
    
    Search time limit: 2
    Search size limit: 100
  2. 모든 쿼리에 대해 제한을 전역적으로 조정하려면 ipa config-mod 명령을 사용하고 --searchrecordslimit--searchtimelimit 옵션을 추가합니다. 예를 들면 다음과 같습니다.

    $ ipa config-mod --searchrecordslimit=500 --searchtimelimit=5
  3. 특정 쿼리에 대해서만 제한을 조정하려면 명령에 --sizelimit 또는 --timelimit 옵션을 추가합니다. 예를 들면 다음과 같습니다.
$ ipa user-find --sizelimit=200 --timelimit=120

4.3.2. 웹 UI에서 검색 크기 및 시간 제한 조정

다음 텍스트는 IdM 웹 UI에서 검색 크기 및 시간 제한을 조정하는 방법을 설명합니다.

  • 전 세계
  • 특정 항목의 경우

절차

모든 쿼리에 대해 제한을 전역적으로 조정하려면 다음을 수행합니다.

  1. IdM 웹 UI에 로그인합니다.
  2. IPA Server (IPA 서버)를 클릭합니다.

    Screenshot of the IdM Web UI highlighting the "IPA Server" tab from the top menu

  3. IPA Server(IPA 서버 ) 탭에서 Configuration(구성)을 클릭합니다.
  4. Search Options (검색 옵션) 영역에 필요한 값을 설정합니다.

    기본값은 다음과 같습니다.

    • 검색 크기 제한: 100개 항목
    • 검색 시간 제한 : 2초
  5. 페이지 상단에 있는 Save(저장 )를 클릭합니다.

    Screenshot of the IdM Web UI highlighting the Save button which is below the "Configuration" title at the top of the Configuration page

값을 저장한 후 항목을 검색하고 결과를 확인합니다.

5장. 웹 브라우저에서 IdM 웹 UI에 액세스

다음 섹션에서는 IdM(ID 관리) 웹 UI에 대한 개요를 제공하고 액세스하는 방법을 설명합니다.

5.1. IdM 웹 UI란 무엇입니까

IdM(Identity Management) 웹 UI는 IdM 관리를 위한 웹 애플리케이션으로, IdM 명령줄 툴의 그래픽 대안입니다.

IdM 웹 UI에 다음과 같이 액세스할 수 있습니다.

  • IdM 사용자: IdM 서버의 사용자에게 부여된 권한에 따라 제한된 작업 집합입니다. 기본적으로 활성 IdM 사용자는 IdM 서버에 로그인하여 자체 계정을 구성할 수 있습니다. 다른 사용자 또는 IdM 서버 설정의 설정을 변경할 수 없습니다.
  • 관리자: IdM 서버에 대한 전체 액세스 권한.
  • Active Directory 사용자: 사용자에게 부여된 권한에 따라 작업 집합입니다. 이제 Active Directory 사용자가 Identity Management의 관리자가 될 수 있습니다. 자세한 내용은 AD users to manage IdM을 참조하십시오.

5.2. 웹 UI에 액세스하는 데 지원되는 웹 브라우저

IdM(Identity Management)은 웹 UI에 연결하기 위해 다음 브라우저를 지원합니다.

  • Mozilla Firefox 38 이상
  • Google Chrome 46 이상

5.3. 웹 UI에 액세스

다음 절차에서는 암호를 사용하여 IdM(Identity Management) 웹 UI에 처음 로그인하는 방법을 설명합니다.

처음 로그인한 후 인증할 IdM 서버를 구성할 수 있습니다.

절차

  1. IdM 서버 URL을 브라우저 주소 표시줄에 입력합니다. 이름은 다음 예와 유사하게 표시됩니다.

    https://server.example.com

    IdM 서버의 DNS 이름을 사용하여 server.example.com 을 변경하면 됩니다.

    그러면 브라우저에서 IdM 웹 UI 로그인 화면이 열립니다.

    Screenshot of the IdM Web UI accessed within a web browser displaying a "Username" field and a "Password" field. There is a blue "Log in" button below and to the right of those two fields.

    • 서버가 응답하지 않거나 로그인 화면이 열려 있지 않으면 연결 중인 IdM 서버의 DNS 설정을 확인합니다.
    • 자체 서명 인증서를 사용하는 경우 브라우저에서 경고를 발행합니다. 인증서를 확인하고 로그인을 진행하기 위해 보안 예외를 수락합니다.

      보안 예외를 방지하려면 인증 기관에서 서명한 인증서를 설치합니다.

  2. 웹 UI 로그인 화면에서 IdM 서버 설치 중에 추가한 관리자 계정 자격 증명을 입력합니다.

    자세한 내용은 ID 관리 서버 설치에서 참조하십시오. 통합 DNS를 사용하여 CA 를 통합했습니다.

    개인 계정 자격 증명을 입력하거나 IdM 서버에 이미 입력한 경우에도 입력할 수 있습니다.

    A Screenshot of the IdM Web UI with the "Username" field filled in with "admin" and the "Password" field displays several black circles obfuscating the password by replacing the characters tat were typed in.

  3. Log in (로그인)을 클릭합니다.

로그인에 성공한 후 IdM 서버 구성을 시작할 수 있습니다.

A screenshot of the first screen visible after logging in to the IdM Web UI. There are 5 tabs listed along the top of the screen: Identity - Policy - Authentication - Network Services - IPA Server. The Identity tab has been selected and it is displaying the Users page which is the first menu item among 6 choices just below the tabs: Users - Hosts - Services - Groups - ID Views - Automember. The Active users page displays a table of user logins and their information: First name - Last name - Status - UID - Email address - Telephone number - Job Title.

6장. 웹 UI에서 IdM에 로그인: Kerberos 티켓 사용

다음 섹션에서는 IdM 웹 UI에 Kerberos 로그인을 활성화하고 Kerberos 인증을 사용하여 IdM에 액세스하는 데 사용하는 환경의 초기 구성에 대해 설명합니다.

사전 요구 사항

6.1. Identity Management의 Kerberos 인증

IdM(Identity Management)은 Kerberos 프로토콜을 사용하여 SSO(Single Sign-On)를 지원합니다. SSO(Single Sign-On) 인증을 사용하면 올바른 사용자 이름과 암호를 한 번만 제공할 수 있으며 시스템에서 자격 증명을 다시 요구하지 않고 Identity Management 서비스에 액세스할 수 있습니다.

IdM 서버는 DNS 및 인증서 설정이 올바르게 구성된 경우 설치 직후 Kerberos 인증을 제공합니다. 자세한 내용은 Identity Management 설치를 참조하십시오.

호스트에서 Kerberos 인증을 사용하려면 다음을 설치합니다.

6.2. kinit 를 사용하여 IdM에 수동으로 로그인합니다.

이 절차에서는 kinit 유틸리티를 사용하여 IdM(Identity Management) 환경에 수동으로 인증하는 방법을 설명합니다. kinit 유틸리티는 IdM 사용자를 대신하여 Kerberos 티켓 부여 티켓(TGT)을 가져와 캐시합니다.

참고

초기 Kerberos TGT를 삭제했거나 만료된 경우에만 이 절차를 사용하십시오. IdM 사용자로 로컬 시스템에 로그인할 때도 IdM에 자동으로 로그인됩니다. 즉, 로그인한 후에는 kinit 유틸리티를 사용하여 IdM 리소스에 액세스할 필요가 없습니다.

절차

  1. IdM에 로그인하려면

    • 로컬 시스템에 현재 로그인한 사용자의 사용자 이름 아래에 사용자 이름을 지정하지 않고 kinit 를 사용합니다. 예를 들어 로컬 시스템에서 example_user 로 로그인한 경우 다음을 수행합니다.

      [example_user@server ~]$ kinit
      Password for example_user@EXAMPLE.COM:
      [example_user@server ~]$

      로컬 사용자의 사용자 이름이 IdM의 사용자 항목과 일치하지 않으면 인증 시도가 실패합니다.

      [example_user@server ~]$ kinit
      kinit: Client 'example_user@EXAMPLE.COM' not found in Kerberos database while getting initial credentials
    • 로컬 사용자 이름에 해당하지 않는 Kerberos 주체를 사용하여 필수 사용자 이름을 kinit 유틸리티에 전달합니다. 예를 들어 admin 사용자로 로그인하려면 다음을 수행합니다.

      [example_user@server ~]$ kinit admin
      Password for admin@EXAMPLE.COM:
      [example_user@server ~]$
  2. 선택적으로 로그인에 성공했는지 확인하려면 klist 유틸리티를 사용하여 캐시된 TGT를 표시합니다. 다음 예에서 캐시에는 example_user 주체의 티켓이 포함되어 있습니다. 즉, 이 특정 호스트에서는 현재 example_user 만 IdM 서비스에 액세스할 수 있습니다.

    $ klist
    Ticket cache: KEYRING:persistent:0:0
    Default principal: example_user@EXAMPLE.COM
    
    Valid starting     	Expires            	Service principal
    11/10/2019 08:35:45  	11/10/2019 18:35:45  	krbtgt/EXAMPLE.COM@EXAMPLE.COM

6.3. Kerberos 인증을 위한 브라우저 구성

Kerberos 티켓을 사용하여 인증을 활성화하려면 브라우저 구성이 필요할 수 있습니다.

다음 단계는 IdM 도메인에 액세스하기 위한 Kerberos 협상을 지원하는 데 도움이 됩니다.

각 브라우저는 Kerberos를 다른 방식으로 지원하므로 다른 설정이 필요합니다. IdM 웹 UI에는 다음 브라우저에 대한 지침이 포함되어 있습니다.

  • Firefox
  • Chrome

절차

  1. 웹 브라우저에서 IdM 웹 UI 로그인 대화 상자를 엽니다.
  2. Web UI 로그인 화면에서 브라우저 구성에 대한 링크를 클릭합니다.

    A screenshot of the IdM Web UI log in page with empty entry fields for the Username and Password and a blue "Log in" button below those fields. Text to the right of the "Log in" button explains "to log in with Kerberos please make sure you have valid tickets (obtainable via kinit) and configured the browser correctly then click Log in." The URL for the word "configured" has been highlighted.

  3. 구성 페이지의 단계를 따릅니다.

    A screenshot of a web browser with instructions for "Browser Kerberos Setup."

설정 후 IdM 웹 UI로 돌아가서 Log in (로그인)을 클릭합니다.

6.4. Kerberos 티켓을 사용하여 웹 UI에 로그인

이 절차에서는 Kerberos 티켓 부여 티켓(TGT)을 사용하여 IdM 웹 UI에 로그인하는 방법을 설명합니다.

TGT는 미리 정의된 시간에 만료됩니다. 기본 시간 간격은 24시간이며 IdM 웹 UI에서 변경할 수 있습니다.

시간 간격이 만료된 후 티켓을 갱신해야 합니다.

  • kinit 명령 사용.
  • 웹 UI 로그인 대화 상자에서 IdM 로그인 자격 증명 사용.

절차

  • IdM 웹 UI를 엽니다.

    Kerberos 인증이 올바르게 작동하고 유효한 티켓이 있으면 자동으로 인증되고 웹 UI가 열립니다.

    티켓이 만료되면 먼저 자격 증명을 사용하여 인증해야 합니다. 그러나 다음에 로그인 대화 상자를 열지 않고 IdM 웹 UI가 자동으로 열립니다.

    Authentication with Kerberos failed 라는 오류 메시지가 표시되면 브라우저가 Kerberos 인증에 맞게 구성되었는지 확인합니다. 6.3절. “Kerberos 인증을 위한 브라우저 구성”을 참조하십시오.

    IdM 웹 UI 로그인 화면 스크린샷은 비어 있는 Username(사용자 이름) 및 Password(암호) 필드 위에 오류를 표시합니다. 오류 메시지에는 "Authentication with Kerberos failed"가 표시됩니다.

6.5. Kerberos 인증을 위한 외부 시스템 구성

이 섹션에서는 IdM(Identity Management) 사용자가 Kerberos 자격 증명을 사용하여 외부 시스템에서 IdM에 로그인할 수 있도록 외부 시스템을 구성하는 방법에 대해 설명합니다.

외부 시스템에서 Kerberos 인증을 활성화하는 것은 인프라에 여러 영역 또는 중복되는 도메인이 포함된 경우 특히 유용합니다. 시스템이 ipa-client-install 을 통해 IdM 도메인에 등록되지 않은 경우에도 유용합니다.

IdM 도메인의 멤버가 아닌 시스템에서 IdM에 대한 Kerberos 인증을 활성화하려면 외부 시스템에 IdM별 Kerberos 구성 파일을 정의합니다.

사전 요구 사항

  • krb5-workstation 패키지는 외부 시스템에 설치됩니다.

    패키지가 설치되어 있는지 여부를 확인하려면 다음 CLI 명령을 사용합니다.

    # yum list installed krb5-workstation
    Installed Packages
    krb5-workstation.x86_64    1.16.1-19.el8     @BaseOS

절차

  1. IdM 서버에서 외부 시스템으로 /etc/krb5.conf 파일을 복사합니다. 예를 들면 다음과 같습니다.

    # scp /etc/krb5.conf root@externalsystem.example.com:/etc/krb5_ipa.conf
    주의

    외부 시스템의 기존 krb5.conf 파일을 덮어쓰지 마십시오.

  2. 외부 시스템에서 복사된 IdM Kerberos 구성 파일을 사용하도록 터미널 세션을 설정합니다.

    $ export KRB5_CONFIG=/etc/krb5_ipa.conf

    KRB5_CONFIG 변수는 로그아웃할 때까지 일시적으로만 존재합니다. 이 손실을 방지하려면 다른 파일 이름으로 변수를 내보냅니다.

  3. /etc/krb5.conf.d/ 디렉토리에서 외부 시스템으로 Kerberos 구성 조각을 복사합니다.
  4. 6.3절. “Kerberos 인증을 위한 브라우저 구성” 에 설명된 대로 외부 시스템에서 브라우저를 구성합니다.

이제 외부 시스템의 사용자는 kinit 유틸리티를 사용하여 IdM 서버에 대해 인증할 수 있습니다.

6.6. Active Directory 사용자를 위한 웹 UI 로그인

Active Directory 사용자에 대해 Web UI 로그인을 활성화하려면 기본 신뢰 보기에서 각 Active Directory 사용자에 대한 ID 재정의를 정의합니다. 예를 들면 다음과 같습니다.

[admin@server ~]$ ipa idoverrideuser-add 'Default Trust View' ad_user@ad.example.com

7장. 일회성 암호를 사용하여 ID 관리 웹 UI에 로그인

IdM 웹 UI에 대한 액세스는 여러 가지 방법으로 보안할 수 있습니다. 기본 항목은 암호 인증입니다.

암호 인증의 보안을 강화하려면 두 번째 단계를 추가하고 자동으로 생성된 일회성 암호(OTP)가 필요합니다. 가장 일반적인 용도는 사용자 계정과 하드웨어 또는 소프트웨어 토큰으로 생성된 한 번만 암호를 결합하는 것입니다.

다음 섹션은 다음을 수행하는 데 도움이 됩니다.

  • IdM에서 OTP 인증이 작동하는 방식을 이해합니다.
  • IdM 서버에서 OTP 인증을 구성합니다.
  • OTP 토큰을 생성하고 휴대폰의 FreeOTP 애플리케이션과 동기화합니다.
  • 사용자 암호와 일회성 암호의 조합을 사용하여 IdM 웹 UI에 인증합니다.
  • 웹 UI에서 토큰을 다시 동기화합니다.

7.1. 사전 요구 사항

7.2. Identity Management에서 한 번만 암호(OTP) 인증

일회성 암호는 인증 보안에 추가 단계를 수행합니다. 인증은 암호 + 자동으로 생성된 일회성 암호를 사용합니다.

한 번만 암호를 생성하려면 하드웨어 또는 소프트웨어 토큰을 사용할 수 있습니다. IdM은 소프트웨어 및 하드웨어 토큰을 모두 지원합니다.

ID 관리는 다음 두 가지 표준 OTP 메커니즘을 지원합니다.

  • HMAC 기반 일회성 암호(HOTP) 알고리즘은 카운터를 기반으로 합니다. HMAC는 Hashed Message Authentication Code를 나타냅니다.
  • TOTP(Time-Based One-Time Password) 알고리즘은 시간 기반 이동 요소를 지원하기 위한 HOTP의 확장입니다.
중요

IdM은 Active Directory 신뢰 사용자를 위한 OTP 로그인을 지원하지 않습니다.

7.3. 웹 UI에서 일회용 암호 활성화

The IdM Web UI allows you to configure hardware or software device to generate one-time passwords.

한 번 로그인 대화 상자의 전용 필드에 일반적인 암호를 입력한 직후에 암호가 입력됩니다.

관리자만 사용자 설정에서 OTP 인증을 활성화할 수 있습니다.

사전 요구 사항

  • 관리 권한

절차

  1. 사용자 이름과 암호를 사용하여 IdM 웹 UI에 로그인합니다.
  2. ID → 사용자 → 활성 사용자 탭을 엽니다.

    A screenshot of the IdM Web UI displaying the "Active Users" page which is a sub-page of the Users sub-menu from the Identity tab.

  3. 사용자 이름을 클릭하여 사용자 설정을 엽니다.
  4. 사용자 인증 유형에서 2단계 인증(암호 + OTP) 을 선택합니다.
  5. 저장을 클릭합니다.

이때 IdM 서버에서 OTP 인증이 활성화됩니다.

이제 사용자 또는 사용자 자체에서 새 토큰 ID를 사용자 계정에 할당해야 합니다.

7.4. 웹 UI에서 OTP 토큰 추가

다음 섹션에서는 IdM 웹 UI 및 소프트웨어 토큰 생성기에 토큰을 추가하는 데 도움이 됩니다.

사전 요구 사항

  • IdM 서버의 활성 사용자 계정.
  • 관리자가 IdM 웹 UI의 특정 사용자 계정에 대해 OTP를 활성화했습니다.
  • OTP 토큰을 생성하는 소프트웨어 장치입니다(예: FreeOTP).

절차

  1. 사용자 이름과 암호를 사용하여 IdM 웹 UI에 로그인합니다.
  2. 휴대폰에서 토큰을 생성하려면 인증 → OTP 토큰 탭을 엽니다.
  3. 추가를 클릭합니다.

    Screenshot of the IdM Web UI highlighting the Add button near the top-right of the OTP Tokens page which is a sub-page of the Authentication section

  4. OTP 토큰 추가 대화 상자에서 모두 채워지지 않은 상태로 두고 Add(추가 )를 클릭합니다.

    이 단계에서 IdM 서버는 서버에서 기본 매개 변수를 사용하여 토큰을 생성하고, 코드로 페이지를 엽니다.

  5. 스마트폰 코드를 휴대폰에 복사합니다.
  6. OK(확인 )를 클릭하여 create code를 닫습니다.

이제 한 번 암호를 생성하여 IdM 웹 UI에 로그인할 수 있습니다.

Screenshot of the FreeOTP application from a mobile telephone displaying two entries for OTP tokens. The first OTP token is for the example.user@IDM.EXAMPLE.COM domain and its entry displays a 6-digit OTP while its timer is running out.

7.5. 일회성 암호로 웹 UI에 로그인

이 절차에서는 일회성 암호(OTP)를 사용하여 IdM 웹 UI에 처음 로그인하는 방법을 설명합니다.

사전 요구 사항

  • OTP 인증에 사용 중인 사용자 계정의 ID 관리 서버에서 OTP 구성이 활성화됩니다. 관리자뿐 아니라 사용자 자체도 OTP를 활성화할 수 있습니다.

    OTP 구성을 활성화하려면 를 참조하십시오. 7.3절. “웹 UI에서 일회용 암호 활성화”

  • 구성된 OTP 토큰을 생성하는 하드웨어 또는 소프트웨어 장치입니다.

절차

  1. Identity Management 로그인 화면에서 사용자 이름 또는 IdM 서버 관리자 계정의 사용자 이름을 입력합니다.
  2. 위에 입력한 사용자 이름의 암호를 추가합니다.
  3. 장치에서 한 번만 암호를 생성합니다.
  4. 암호 바로 뒤에(공백 없음) 한 번 암호를 입력합니다.
  5. Log in (로그인)을 클릭합니다.

    인증에 실패하면 OTP 토큰을 동기화합니다.

    CA에서 자체 서명된 인증서를 사용하는 경우 브라우저에서 경고를 발행합니다. 인증서를 확인하고 로그인을 진행하기 위해 보안 예외를 수락합니다.

    IdM 웹 UI가 열려 있지 않으면 ID 관리 서버의 DNS 구성을 확인합니다.

로그인에 성공하면 IdM 웹 UI가 나타납니다.

A screenshot of the first screen visible after logging in to the IdM Web UI. There are 5 tabs listed along the top of the screen: Identity - Policy - Authentication - Network Services - IPA Server. The Identity tab has been selected and it is displaying the Users page which is the first menu item among 6 choices just below the tabs: Users - Hosts - Services - Groups - ID Views - Automember. The Active users page displays a table of user logins and their information: First name - Last name - Status - UID - Email address - Telephone number - Job Title.

7.6. 웹 UI를 사용하여 OTP 토큰 동기화

OTP(One Time Password)의 로그인에 실패하면 OTP 토큰이 올바르게 동기화되지 않습니다.

다음 텍스트는 토큰 재동기화에 대해 설명합니다.

사전 요구 사항

  • 로그인 화면이 열립니다.
  • OTP 토큰을 생성하는 장치입니다.

절차

  1. IdM 웹 UI 로그인 화면에서 Sync OTP Token (OTP 토큰 동기화)을 클릭합니다.

    A screenshot of the IdM Web UI log in page. The "Username" and "Password" fields are empty. A link to "Sync OTP Token" at the bottom right next to the "Log In" button is highlighted.

  2. 로그인 화면에서 사용자 이름과 ID 관리 암호를 입력합니다.
  3. 1회 암호를 생성하고 첫 번째 OTP 필드에 입력합니다.
  4. 한 번 더 생성하고 Second OTP(두 번째 OTP ) 필드에 입력합니다.
  5. 필요한 경우 토큰 ID를 입력합니다.

    A screenshot of the screen to change the OTP token. The "Username" field has been filled in with "admin". The password in the "Password" field has been obfuscated with solid circles. The "First OTP" and "Second OTP" fields also have their 6-character entries obfuscated. The last field is labeled "Token ID" and has 16 hexadecimal characters such as "18c5d06cfcbd4927". There are "Cancel" and "Sync OTP Token" buttons at the bottom right.

  6. Sync OTP Token (OTP 토큰 동기화)을 클릭합니다.

동기화가 완료되면 IdM 서버에 로그인할 수 있습니다.

7.7. 만료된 암호 변경

ID 관리 관리자는 다음 로그인 시 암호를 변경해야 할 수 있습니다. 즉, 암호를 변경할 때까지 IdM 웹 UI에 성공적으로 로그인할 수 없습니다.

웹 UI에 처음 로그인하는 동안 암호 만료가 발생할 수 있습니다.

만료 암호 대화 상자가 나타나면 절차에 있는 지침을 따릅니다.

사전 요구 사항

  • 로그인 화면이 열립니다.
  • IdM 서버에 대한 활성 계정입니다.

절차

  1. 암호 만료 로그인 화면에서 사용자 이름을 입력합니다.
  2. 위에 입력한 사용자 이름의 암호를 추가합니다.
  3. 일회성 암호 인증을 사용하는 경우 OTP 필드에서 일회성 암호를 생성합니다.

    OTP 인증을 활성화하지 않은 경우 필드를 비워 둡니다.

  4. 확인을 위해 새 암호를 두 번 입력합니다.
  5. Reset Password (암호 재설정)를 클릭합니다.

    A screenshot of the IdM Web UI with a banner across the top that states "Your password has expired. Please enter a new password." The "Username" field displays "example.user" and cannot be edited. The following fields have been filled in but their contents have been replaced with dots to obfuscate the passwords: "Current Password" - "OTP" - "New Password" - "Verify Password."

암호가 성공적으로 변경되면 일반적인 로그인 대화 상자가 표시됩니다. 새 암호로 로그인합니다.

8장. IdM의 SSSD를 사용한 인증 문제 해결

IdM(Identity Management) 환경의 인증에는 많은 구성 요소가 포함됩니다.

IdM 클라이언트에서 다음을 수행합니다.

  • SSSD 서비스.
  • NSS(Name Services Switch).
  • PAM(Pluggable Authentication Module).

IdM 서버에서 다음을 수행합니다.

  • SSSD 서비스.
  • IdM 디렉터리 서버.
  • IdM Kerberos KDC(키 배포 센터).

AD(Active Directory) 사용자로 인증하는 경우:

  • AD 도메인 컨트롤러의 디렉터리 서버.
  • AD 도메인 컨트롤러의 Kerberos 서버.

사용자를 인증하려면 SSSD 서비스를 사용하여 다음 기능을 수행할 수 있어야 합니다.

  • 인증 서버에서 사용자 정보를 검색합니다.
  • 사용자에게 자격 증명을 요청하고 해당 자격 증명을 인증 서버에 전달한 다음 결과를 처리합니다.

다음 섹션에서는 사용자 정보를 저장하는 SSSD 서비스와 서버 간에 정보가 이동하는 방법에 대해 설명하여 환경에서 인증 시도 실패 문제를 해결할 수 있습니다.

8.1. SSSD를 사용하여 IdM 사용자 정보를 검색할 때 데이터 흐름

다음 다이어그램은 getent passwd <idm_user_name> 명령을 사용하여 IdM 사용자 정보를 요청하는 동안 IdM 클라이언트와 IdM 서버 간의 정보 흐름을 간소화한 것입니다.

A diagram with numbered arrows representing the flow of information between an IdM client and an IdM server. The following numbered list describes each step in the process.

  1. getent 명령은 libc 라이브러리의 getpwnam 호출을 트리거합니다.
  2. libc 라이브러리는 /etc/nsswitch.conf 구성 파일을 참조하여 사용자 정보를 제공하는 서비스를 확인하고 SSSD 서비스에 대한 항목 sss 를 검색합니다.
  3. libc 라이브러리는 nss_sss 모듈을 엽니다.
  4. nss_sss 모듈은 메모리 매핑된 캐시에서 사용자 정보를 확인합니다. 데이터가 캐시에 있으면 nss_sss 모듈에서 해당 데이터가 반환됩니다.
  5. 사용자 정보가 메모리 매핑 캐시에 없는 경우 요청이 SSSD sssd_nss 응답자 프로세스에 전달됩니다.
  6. SSSD 서비스는 캐시를 확인합니다. 데이터가 캐시에 있고 유효한 경우 sssd_nss 응답자가 캐시에서 데이터를 읽고 애플리케이션에 반환합니다.
  7. 데이터가 캐시에 없거나 만료된 경우 sssd_nss 응답자는 적절한 백엔드 프로세스를 쿼리하고 응답을 기다립니다. SSSD 서비스는 sssd.conf 구성 파일의 id_provider=ipa 설정을 통해 활성화되는 IdM 환경에서 IPA 백엔드를 사용합니다.
  8. sssd_be 백엔드 프로세스는 IdM 서버에 연결하고 IdM LDAP 디렉터리 서버에서 정보를 요청합니다.
  9. IdM 서버의 SSSD 백엔드는 IdM 클라이언트의 SSSD 백엔드 프로세스에 응답합니다.
  10. 클라이언트의 SSSD 백엔드는 결과 데이터를 SSSD 캐시에 저장하고 응답자 프로세스에 캐시가 업데이트되었음을 경고합니다.
  11. sssd_nss 프런트 엔드 응답자 프로세스는 SSSD 캐시에서 정보를 검색합니다.
  12. sssd_nss 응답자는 사용자 정보를 nss_sss 응답자에게 전송하여 요청을 완료합니다.
  13. libc 라이브러리는 사용자 정보를 요청한 애플리케이션에 반환합니다.

8.2. SSSD를 사용하여 AD 사용자 정보를 검색할 때 데이터 흐름

IdM 환경과 AD(Active Directory) 도메인 간에 교차 포드 신뢰를 구축한 경우 IdM 클라이언트에서 AD 사용자 정보를 검색할 때 IdM 사용자 정보를 검색할 때 정보 흐름과 매우 유사하며 AD 사용자 데이터베이스에 연결하는 추가 단계가 있습니다.

다음 다이어그램은 사용자가 getent passwd <ad_user_name@ad.example.com> 명령을 사용하여 AD 사용자에 대한 정보를 요청할 때 정보 흐름을 간소화한 것입니다. 이 다이어그램에는 SSSD 섹션을 사용하여 IdM 사용자 정보를 검색할 때 데이터 흐름에 설명된 내부 세부 정보가 포함되지 않습니다. IdM 클라이언트에서 SSSD 서비스, IdM 서버의 SSSD 서비스 및 AD 도메인 컨트롤러의 LDAP 데이터베이스 간 통신에 중점을 둡니다.

A diagram with numbered arrows representing the flow of information between an IdM client, an IdM server, and an AD Domain Controller. The following numbered list describes each step in the process.

  1. IdM 클라이언트는 AD 사용자 정보를 위해 로컬 SSSD 캐시를 찾습니다.
  2. IdM 클라이언트에 사용자 정보가 없거나 정보가 오래된 경우 클라이언트의 SSSD 서비스는 IdM 서버의 extdom_extop 플러그인에 연결하여 LDAP 확장 작업을 수행하고 정보를 요청합니다.
  3. IdM 서버의 SSSD 서비스는 로컬 캐시에서 AD 사용자 정보를 찾습니다.
  4. IdM 서버에 SSSD 캐시에 사용자 정보가 없거나 해당 정보가 오래된 경우 LDAP 검색을 수행하여 AD 도메인 컨트롤러에서 사용자 정보를 요청합니다.
  5. IdM 서버의 SSSD 서비스는 AD 도메인 컨트롤러에서 AD 사용자 정보를 수신하여 해당 캐시에 저장합니다.
  6. extdom_extop 플러그인은 IdM 서버의 SSSD 서비스에서 정보를 수신하여 LDAP 확장 작업을 완료합니다.
  7. IdM 클라이언트의 SSSD 서비스는 LDAP 확장 작업에서 AD 사용자 정보를 수신합니다.
  8. IdM 클라이언트는 AD 사용자 정보를 SSSD 캐시에 저장하고 정보를 요청한 애플리케이션에 반환합니다.

8.3. IdM에서 SSSD를 사용하여 사용자로 인증할 때 데이터 흐름

IdM 서버 또는 클라이언트에 사용자로 인증에는 다음 구성 요소가 포함됩니다.

  • sshd 서비스와 같은 인증 요청을 시작하는 서비스입니다.
  • PAM(Pluggable Authentication Module) 라이브러리 및 해당 모듈.
  • SSSD 서비스, 해당 응답자 및 백엔드.
  • 스마트 카드 인증이 구성된 경우 스마트 카드 리더.
  • 인증 서버:

    • IdM 사용자는 IdM KDC(Kerberos Key Distribution Center)에 대해 인증됩니다.
    • AD(Active Directory) 사용자는 DC(AD 도메인 컨트롤러)에 대해 인증됩니다.

다음 다이어그램은 사용자가 명령줄의 SSH 서비스를 통해 호스트에 로컬로 로그인해야 하는 경우 정보 흐름을 단순화한 것입니다.

A diagram with numbered arrows representing the flow of information between an IdM client and an IdM server or AD Domain Controller during an authentication attempt. The following numbered list describes each step in the process.

  1. ssh 명령의 인증 시도는 libpam 라이브러리를 트리거합니다.
  2. libpam 라이브러리는 인증 시도를 요청하는 서비스에 해당하는 /etc/pam.d/ 디렉터리의 PAM 파일을 참조합니다. 로컬 호스트의 SSH 서비스를 통한 인증과 관련된 이 예제에서 libpam 라이브러리는 /etc/pam.d/system-auth 구성 파일을 확인하고 SSSD PAM에 대한 pam_ss.so 항목을 검색합니다.

    auth    sufficient    pam_sss.so
  3. 사용 가능한 인증 방법을 확인하기 위해 libpam 라이브러리는 pam_sss 모듈을 열고 SSSD 서비스의 sssd _pam PAM 응답자로 SSS_ PAM_PREAUTH 요청을 보냅니다.
  4. 스마트 카드 인증이 구성된 경우 SSSD 서비스는 임시 p11_child 프로세스를 생성하여 스마트 카드를 확인하고 인증서를 검색합니다.
  5. 사용자에 대해 스마트 카드 인증이 구성된 경우 sssd_pam 응답자가 스마트 카드의 인증서와 사용자와 일치하려고 시도합니다. sssd_pam 응답자는 그룹 멤버십이 액세스 제어에 영향을 줄 수 있으므로 사용자가 속한 그룹을 검색합니다.
  6. sssd_pam 응답자는 SSS_PAM_PREAUTH 요청을 sssd_be 백엔드 응답자에게 전송하여 서버가 지원하는 인증 방법(예: 암호 또는 2 단계 인증)을 확인합니다. SSSD 서비스에서 IPA 응답자를 사용하는 IdM 환경에서 기본 인증 방법은 Kerberos입니다. 이 예에서 사용자는 간단한 Kerberos 암호로 인증합니다.
  7. sssd_be 응답자는 임시 krb5_child 프로세스를 생성합니다.
  8. krb5_child 프로세스는 IdM 서버의 KDC에 연결하여 사용 가능한 인증 방법을 확인합니다.
  9. KDC는 요청에 응답합니다.

    1. krb5_child 프로세스는 응답을 평가하고 결과를 sssd_be 백엔드 프로세스로 다시 보냅니다.
    2. sssd_be backend 프로세스는 결과를 수신합니다.
    3. sssd_pam 응답자가 결과를 수신합니다.
    4. pam_sss 모듈은 결과를 수신합니다.
  10. 암호 인증이 사용자에 대해 구성된 경우 pam_sss 모듈은 사용자에게 암호를 묻는 메시지를 표시합니다. 스마트 카드 인증이 구성된 경우 pam_sss 모듈은 사용자에게 스마트 카드 PIN을 요청합니다.
  11. 이 모듈은 다음을 이동하는 사용자 이름과 암호를 사용하여 SSS_PAM_AUTHENTICATE 요청을 보냅니다.

    1. sssd_pam 응답자.
    2. sssd_be 백엔드 프로세스.
  12. sssd_be 프로세스는 KDC에 연결할 임시 krb5_child 프로세스를 생성합니다.
  13. krb5_child 프로세스는 KDC에서 사용자가 제공한 암호와 함께 Kerberos 티켓 부여 티켓(TGT)을 검색하려고 합니다.
  14. krb5_child 프로세스는 인증 시도 결과를 수신합니다.
  15. krb5_child 프로세스는 다음과 같습니다.

    1. TGT를 자격 증명 캐시에 저장합니다.
    2. 인증 결과를 sssd_be 백엔드 프로세스에 반환합니다.
  16. 인증 결과는 sssd_be 프로세스에서 다음으로 이동합니다.

    1. sssd_pam 응답자.
    2. pam_sss 모듈.
  17. pam_sss 모듈은 다른 애플리케이션에서 참조할 수 있도록 사용자 TGT 위치가 있는 환경 변수를 설정합니다.

8.4. 인증 문제 범위 줄이기

사용자를 인증하려면 사용자 정보를 저장하는 데이터베이스에서 SSSD 서비스를 사용하여 사용자 정보를 검색할 수 있어야 합니다. 다음 절차에서는 인증 프로세스의 다양한 구성 요소를 테스트하는 단계에 대해 설명하므로 사용자가 로그인할 수 없는 경우 인증 문제의 범위를 좁힐 수 있습니다.

절차

  1. SSSD 서비스 및 해당 프로세스가 실행 중인지 확인합니다.

    [root@client ~]# pstree -a | grep sssd
      |-sssd -i --logger=files
      |   |-sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files
      |   |-sssd_be --domain example.com --uid 0 --gid 0 --logger=files
      |   |-sssd_ifp --uid 0 --gid 0 --logger=files
      |   |-sssd_nss --uid 0 --gid 0 --logger=files
      |   |-sssd_pac --uid 0 --gid 0 --logger=files
      |   |-sssd_pam --uid 0 --gid 0 --logger=files
      |   |-sssd_ssh --uid 0 --gid 0 --logger=files
      |   `-sssd_sudo --uid 0 --gid 0 --logger=files
      |-sssd_kcm --uid 0 --gid 0 --logger=files
  2. 클라이언트가 IP 주소를 통해 사용자 데이터베이스 서버에 연결할 수 있는지 확인합니다.

    [user@client ~]$ ping <IP_address_of_the_database_server>

    이 단계가 실패하는 경우 네트워크와 방화벽 설정이 IdM 클라이언트와 서버 간의 직접 통신을 허용하는지 확인합니다. firewalld 사용 및 구성을 참조하십시오.

  3. 클라이언트가 정규화된 호스트 이름을 통해 IdM LDAP 서버( IdM 사용자) 또는 AD 도메인 컨트롤러(AD 사용자의 경우)를 검색하고 연결할 수 있는지 확인합니다.

    [user@client ~]$ dig -t SRV _ldap._tcp.example.com @<name_server>
    [user@client ~]$ ping <fully_qualified_host_name_of_the_server>

    이 단계가 실패하면 /etc/resolv.conf 파일을 포함하여 DNS(동적 이름 서비스) 설정을 확인합니다. DNS 서버 순서 구성을 참조하십시오.

    참고

    기본적으로 SSSD 서비스는 SRV(DNS 서비스) 레코드를 통해 LDAP 서버 및 AD DC를 자동으로 검색하려고 합니다. 또는 sssd.conf 구성 파일에서 다음 옵션을 설정하여 특정 서버를 사용하도록 SSSD 서비스를 제한할 수 있습니다.

    • ipa_server = <fully_qualified_host_name_of_the_server>
    • ad_server = <fully_qualified_host_name_of_the_server>
    • ldap_uri = <fully_qualified_host_name_of_the_server>

    이러한 옵션을 사용하는 경우 해당 옵션에 나열된 서버에 연결할 수 있는지 확인합니다.

  4. 클라이언트가 LDAP 서버에 인증하고 ldapsearch 명령을 사용하여 사용자 정보를 검색할 수 있는지 확인합니다.

    1. LDAP 서버가 server.example.com 과 같은 IdM 서버인 경우 호스트에 대한 Kerberos 티켓을 검색하고 호스트 Kerberos 주체를 사용하여 데이터베이스 검색 인증을 수행합니다.

      [user@client ~]$ kinit -t 'host/client.example.com@EXAMPLE.COM'
      [user@client ~]$ ldapsearch -LLL -Y GSSAPI -h server.example.com -b “dc=example,dc=com” uid=<user_name>
    2. LDAP 서버가 server.ad.example.com 과 같은 DC(Active Directory) 도메인 컨트롤러인 경우 호스트에 대한 Kerberos 티켓을 검색하고 호스트 Kerberos 주체를 사용하여 데이터베이스 검색을 수행합니다.

      [user@client ~]$ kinit -t 'CLIENT$@AD.EXAMPLE.COM'
      [user@client ~]$ ldapsearch -LLL -Y GSSAPI -h server.ad.example.com -b “dc=example,dc=com” sAMAccountname=<user_name>
    3. LDAP 서버가 일반 LDAP 서버이고 sssd.conf 파일에 ldap_default_bind_dnldap_default_authtok 옵션을 설정한 경우 동일한 ldap_default_bind_dn 계정으로 인증합니다.

      [user@client ~]$ ldapsearch -xLLL -D "cn=ldap_default_bind_dn_value" -W -h ldapserver.example.com -b “dc=example,dc=com” uid=<user_name>

    이 단계가 실패하면 데이터베이스 설정이 호스트가 LDAP 서버를 검색할 수 있도록 허용하는지 확인합니다.

  5. SSSD 서비스는 Kerberos 암호화를 사용하므로 로그인할 수 없는 사용자로 Kerberos 티켓을 가져올 수 있는지 확인합니다.

    1. LDAP 서버가 IdM 서버인 경우:

      [user@client ~]$ kinit <user_name>
    2. LDAP 서버 데이터베이스가 AD 서버인 경우:

      [user@client ~]$ kinit <user_name@AD.EXAMPLE.COM>

    이 단계가 실패하면 Kerberos 서버가 제대로 작동하고 모든 서버가 시간 동기화되며 사용자 계정이 잠겨 있지 않은지 확인합니다.

  6. 명령줄에서 사용자 정보를 검색할 수 있는지 확인합니다.

    [user@client ~]$ getent passwd <user_name>
    [user@client ~]$ id <user_name>

    이 단계가 실패하면 클라이언트의 SSSD 서비스가 사용자 데이터베이스에서 정보를 수신할 수 있는지 확인합니다.

    1. /var/log/messages 로그 파일의 오류를 검토합니다.
    2. SSSD 서비스에서 자세한 로깅을 활성화하고 디버깅 로그를 수집한 다음 로그에서 문제 소스에 대한 표시를 확인합니다.
    3. (선택 사항) Red Hat 기술 지원 케이스를 열고 수집한 문제 해결 정보를 제공합니다.
  7. sssctl 유틸리티를 사용하여 사용자가 로그인할 수 있는지 확인합니다.

    [user@client ~]$ sssctl user-checks -a auth -s ssh <user_name>

    이 단계가 실패하면 PAM 구성, IdM HBAC 규칙 및 IdM RBAC 규칙과 같은 인증 설정을 확인합니다.

    1. /var/log/secure 및 /var/log /messages 로그 파일에서 인증 오류를 검토합니다.
    2. SSSD 서비스에서 자세한 로깅을 활성화하고 디버깅 로그를 수집한 다음 로그에서 문제 소스에 대한 표시를 확인합니다.
    3. (선택 사항) Red Hat 기술 지원 케이스를 열고 수집한 문제 해결 정보를 제공합니다.

8.5. SSSD 로그 파일 및 로깅 수준

각 SSSD 서비스는 /var/log/sssd/ 디렉토리에 있는 자체 로그 파일에 로그인합니다. example.com IdM 도메인에 있는 IdM 서버의 경우 로그 파일은 다음과 같을 수 있습니다.

[root@server ~]# ls -l /var/log/sssd/
total 620
-rw-------.  1 root root      0 Mar 29 09:21 krb5_child.log
-rw-------.  1 root root  14324 Mar 29 09:50 ldap_child.log
-rw-------.  1 root root 212870 Mar 29 09:50 sssd_example.com.log
-rw-------.  1 root root      0 Mar 29 09:21 sssd_ifp.log
-rw-------.  1 root root      0 Mar 29 09:21 sssd_implicit_files.log
-rw-------.  1 root root      0 Mar 29 09:21 sssd.log
-rw-------.  1 root root 219873 Mar 29 10:03 sssd_nss.log
-rw-------.  1 root root      0 Mar 29 09:21 sssd_pac.log
-rw-------.  1 root root  13105 Mar 29 09:21 sssd_pam.log
-rw-------.  1 root root   9390 Mar 29 09:21 sssd_ssh.log
-rw-------.  1 root root      0 Mar 29 09:21 sssd_sudo.log

8.5.1. SSSD 로그 파일 목적

krb5_child.log
Kerberos 인증과 관련된 수명이 짧은 도우미 프로세스에 대한 로그 파일입니다.
ldap_child.log
LDAP 서버와의 통신을 위한 Kerberos 티켓을 가져오는 데 관련된 수명이 짧은 도우미 프로세스의 로그 파일입니다.
sssd_<example.com>.log

sssd.conf 파일의 각 도메인 섹션에 대해 SSSD 서비스는 LDAP 서버와의 통신에 대한 정보를 별도의 로그 파일에 기록합니다. 예를 들어, example.com 이라는 IdM 도메인이 있는 환경에서 SSSD 서비스는 sssd_example.com.log 라는 파일에 해당 정보를 기록합니다. 호스트가 ad.example.com 이라는 AD 도메인과 직접 통합되는 경우 정보는 sssd_ad.example.com.log 라는 파일에 기록됩니다.

참고

IdM 환경과 AD 도메인을 사용하는 교차 포트 신뢰가 있는 경우에도 AD 도메인에 대한 정보는 여전히 IdM 도메인의 로그 파일에 기록됩니다.

마찬가지로 호스트가 AD 도메인에 직접 통합되면 하위 도메인에 대한 정보는 기본 도메인의 로그 파일에 작성됩니다.

selinux_child.log
SELinux 정보를 검색하고 설정하는 수명이 짧은 도우미 프로세스에 대한 로그 파일입니다.
sssd.log
SSSD 모니터링 및 응답자 및 백엔드 프로세스와 통신하기 위한 로그 파일입니다.
sssd_ifp.log
시스템 버스를 통해 액세스할 수 있는 공용 D-Bus 인터페이스를 제공하는 InfoPipe 응답자의 로그 파일입니다.
sssd_nss.log
사용자 및 그룹 정보를 검색하는 NSS(Name Services Switch) 응답자의 로그 파일입니다.
sssd_pac.log
AD Kerberos 티켓에서 PAC를 수집하고 PAC에 대한 AD 사용자에 대한 정보를 파생하여 AD에서 직접 요청하지 않도록 하는 Microsoft 권한 속성 인증서(PAC) 응답자의 로그 파일입니다.
sssd_pam.log
PAM(Pluggable Authentication Module) 응답자의 로그 파일입니다.
sssd_ssh.log
SSH 응답자 프로세스에 대한 로그 파일입니다.

8.5.2. SSSD 로깅 수준

디버그 수준을 설정하면 그 아래의 모든 디버그 수준도 활성화됩니다. 예를 들어 6에서 디버그 수준을 설정하면 디버그 수준 0 ~ 5도 활성화됩니다.

표 8.1. SSSD 로깅 수준

level설명

0

치명적인 오류. SSSD 서비스가 시작되지 않거나 종료되는 오류입니다. RHEL 8.3 이전 버전의 기본 디버그 로그 수준입니다.

1

중요한 오류. SSSD 서비스를 종료하지 않지만 하나 이상의 주요 기능이 제대로 작동하지 않는 오류입니다.

2

심각한 오류. 특정 요청 또는 작업이 실패했음을 확인하는 동안 오류가 발생했습니다. RHEL 8.4 이상의 기본 디버그 로그 수준입니다.

3

사소한 오류. 레벨 2에서 작업 실패를 일으키는 오류.

4

구성 설정.

5

기능 데이터.

6

작업 기능에 대한 메시지를 추적합니다.

7

내부 제어 기능에 대한 메시지를 추적합니다.

8

함수 내부 변수의 내용.

9

매우 낮은 수준의 추적 정보.

8.6. sssd.conf 파일에서 SSSD에 대한 세부 로깅 활성화

기본적으로 RHEL 8.4 이상의 SSSD 서비스는 심각한 오류(디버그 수준 2)만 로깅하지만 인증 문제 해결에 필요한 세부적인 수준에는 기록되지 않습니다.

SSSD 서비스 재시작 시 세부 로깅을 영구적으로 사용하려면 /etc/sssd/sssd.conf 구성 파일의 각 섹션에 debug_level=<integer&gt; 옵션을 추가합니다. 여기서 <integer> 값은 0에서 9 사이의 숫자입니다. 최대 3개의 로그 실패를 디버그하고, 수준 8 이상에서는 많은 수의 세부 로그 메시지를 제공합니다. 수준 6 은 인증 문제를 디버깅하기 위한 좋은 시작 지점입니다.

사전 요구 사항

  • sssd.conf 구성 파일을 편집하고 SSSD 서비스를 다시 시작하려면 루트 암호가 필요합니다.

절차

  1. 텍스트 편집기에서 /etc/sssd/sssd.conf 파일을 엽니다.
  2. debug_level 옵션을 파일의 모든 섹션에 추가하고 디버그 수준을 선택한 세부 정보 표시로 설정합니다.

    [domain/example.com]
    debug_level = 6
    id_provider = ipa
    ...
    
    [sssd]
    debug_level = 6
    services = nss, pam, ifp, ssh, sudo
    domains = example.com
    
    [nss]
    debug_level = 6
    
    [pam]
    debug_level = 6
    
    [sudo]
    debug_level = 6
    
    [ssh]
    debug_level = 6
    
    [pac]
    debug_level = 6
    
    [ifp]
    debug_level = 6
  3. sssd.conf 파일을 저장하고 닫습니다.
  4. SSSD 서비스를 다시 시작하여 새 구성 설정을 로드합니다.

    [root@server ~]# systemctl restart sssd

8.7. sssctl 명령을 사용하여 SSSD에 대한 세부 로깅 활성화

기본적으로 RHEL 8.4 이상의 SSSD 서비스는 심각한 오류(디버그 수준 2)만 로깅하지만 인증 문제 해결에 필요한 세부적인 수준에는 기록되지 않습니다.

sssctl debug-level <integer> 명령을 사용하여 명령줄에서 SSSD 서비스의 디버그 수준을 변경할 수 있습니다. 여기서 <integer> 값은 0에서 9 사이의 숫자입니다. 최대 3개의 로그 실패를 디버그하고, 수준 8 이상에서는 많은 수의 세부 로그 메시지를 제공합니다. 수준 6은 인증 문제를 디버깅하기 위한 좋은 시작 지점입니다.

사전 요구 사항

  • sssctl 명령을 실행하려면 루트 암호가 필요합니다.

절차

  • sssctl debug-level 명령을 사용하여 선택한 디버그 수준을 원하는 세부 정보 표시 수준으로 설정합니다.

    [root@server ~]# sssctl debug-level 6

8.8. IdM 서버의 인증 문제 해결을 위해 SSSD 서비스에서 디버깅 로그 수집

IdM 서버로 IdM 사용자로 인증하려고 할 때 문제가 발생하는 경우 서버의 SSSD 서비스에서 자세한 디버그 로깅을 활성화하고 사용자 정보 검색 시도의 로그를 수집합니다.

사전 요구 사항

  • sssctl 명령을 실행하고 SSSD 서비스를 다시 시작하려면 루트 암호가 필요합니다.

절차

  1. IdM 서버에서 자세한 SSSD 디버그 로깅을 활성화합니다.

    [root@server ~]# sssctl debug-level 6
  2. 인증 문제가 발생한 사용자에 대해 SSSD 캐시의 오브젝트를 무효화하므로 LDAP 서버를 우회하지 않고 SSSD가 이미 캐시된 정보를 검색하지 않습니다.

    [root@server ~]# sssctl cache-expire -u idmuser
  3. 이전 SSSD 로그를 제거하여 데이터 세트 문제 해결을 최소화합니다.

    [root@server ~]# sssctl logs-remove
  4. 시도 전후에 타임스탬프를 수집하는 동시에 인증 문제가 발생한 사용자로 전환합니다. 이러한 타임스탬프는 데이터 세트의 범위를 더욱 좁힙니다.

    [root@server sssd]# date; su idmuser; date
    Mon Mar 29 15:33:48 EDT 2021
    su: user idmuser does not exist
    Mon Mar 29 15:33:49 EDT 2021
  5. (선택 사항) 자세한 SSSD 로그를 계속 수집하지 않으려면 디버그 수준을 낮춥니다.

    [root@server ~]# sssctl debug-level 2
  6. 실패한 요청에 대한 정보는 SSSD 로그를 검토하십시오. 예를 들어 /var/log/sssd/sssd_example.com.log 파일을 검토하면 SSSD 서비스에서 cn=accounts,dc=example,dc=com LDAP 하위 트리에서 사용자를 찾지 못했습니다. 이는 사용자가 없거나 다른 위치에 있음을 나타낼 수 있습니다.

    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [dp_get_account_info_send] (0x0200): Got request for [0x1][BE_REQ_USER][name=idmuser@example.com]
    ...
    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [sdap_get_generic_ext_step] (0x0400): calling ldap_search_ext with [(&(uid=idmuser)(objectclass=posixAccount)(uid=)(&(uidNumber=)(!(uidNumber=0))))][cn=accounts,dc=example,dc=com].
    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [sdap_get_generic_op_finished] (0x0400): Search result: Success(0), no errmsg set
    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [sdap_search_user_process] (0x0400): Search for users, returned 0 results.
    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [sysdb_search_by_name] (0x0400): No such entry
    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [sysdb_delete_user] (0x0400): Error: 2 (No such file or directory)
    (Mon Mar 29 15:33:48 2021) [sssd[be[example.com]]] [sysdb_search_by_name] (0x0400): No such entry
    (Mon Mar 29 15:33:49 2021) [sssd[be[example.com]]] [ipa_id_get_account_info_orig_done] (0x0080): Object not found, ending request
  7. 인증 문제의 원인을 확인할 수 없는 경우:

    1. 최근에 생성된 SSSD 로그를 수집합니다.

      [root@server ~]# sssctl logs-fetch sssd-logs-Mar29.tar
    2. Red Hat 기술 지원 케이스를 열고 다음을 제공합니다.

      1. SSSD 로그: sssd-logs-29.tar
      2. 로그에 해당하는 요청의 타임스탬프 및 사용자 이름을 포함한 콘솔 출력은 다음과 같습니다.

        [root@server sssd]# date; id idmuser; date
        Mon Mar 29 15:33:48 EDT 2021
        id: ‘idmuser’: no such user
        Mon Mar 29 15:33:49 EDT 2021

8.9. IdM 클라이언트의 인증 문제를 해결하기 위해 SSSD 서비스에서 디버깅 로그 수집

IdM 클라이언트에 IdM 사용자로 인증하려고 할 때 문제가 발생하는 경우 IdM 서버에 대한 사용자 정보를 검색할 수 있는지 확인합니다. IdM 서버에서 사용자 정보를 검색할 수 없는 경우 IdM 서버에서 정보를 검색하는 IdM 클라이언트에서 해당 정보를 검색할 수 없습니다.

인증 문제가 IdM 서버에서 발생하지 않았다는 것을 확인한 후 IdM 서버와 IdM 클라이언트에서 SSSD 디버깅 로그를 수집합니다.

사전 요구 사항

  • 사용자는 IdM 서버가 아닌 IdM 클라이언트에만 인증 문제가 있습니다.
  • sssctl 명령을 실행하고 SSSD 서비스를 다시 시작하려면 루트 암호가 필요합니다.

절차

  1. 클라이언트에서 다음을 수행합니다. 텍스트 편집기에서 /etc/sssd/sssd.conf 파일을 엽니다.
  2. 클라이언트에서 다음을 수행합니다. ipa_server 옵션을 파일의 [domain] 섹션에 추가하고 IdM 서버로 설정합니다. 이렇게 하면 IdM 클라이언트가 다른 IdM 서버를 자동 검색하지 않으므로 이 테스트를 하나의 클라이언트와 하나의 서버로만 제한합니다.

    [domain/example.com]
    ipa_server = server.example.com
    ...
  3. 클라이언트에서 다음을 수행합니다. sssd.conf 파일을 저장하고 닫습니다.
  4. 클라이언트에서 다음을 수행합니다. SSSD 서비스를 다시 시작하여 구성 변경 사항을 로드합니다.

    [root@client ~]# systemctl restart sssd
  5. 서버 및 클라이언트에서 다음을 수행합니다. 자세한 SSSD 디버그 로깅을 활성화합니다.

    [root@server ~]# sssctl debug-level 6
    [root@client ~]# sssctl debug-level 6
  6. 서버 및 클라이언트에서 다음을 수행합니다. 인증 문제가 발생한 사용자의 경우 SSSD 캐시에서 오브젝트를 무효화하므로 LDAP 데이터베이스를 무시하고 SSSD가 이미 캐시된 정보를 검색하지 않습니다.

    [root@server ~]# sssctl cache-expire -u idmuser
    [root@client ~]# sssctl cache-expire -u idmuser
  7. 서버 및 클라이언트에서 다음을 수행합니다. 이전 SSSD 로그를 제거하여 데이터 세트 문제 해결을 최소화합니다.

    [root@server ~]# sssctl logs-remove
    [root@server ~]# sssctl logs-remove
  8. 클라이언트에서 다음을 수행합니다. 시도 전후에 타임스탬프를 수집하는 동안 인증 문제가 발생하는 사용자로 전환합니다. 이러한 타임스탬프는 데이터 세트의 범위를 더욱 좁힙니다.

    [root@client sssd]# date; su idmuser; date
    Mon Mar 29 16:20:13 EDT 2021
    su: user idmuser does not exist
    Mon Mar 29 16:20:14 EDT 2021
  9. (선택 사항) 서버와 클라이언트에서 다음을 수행합니다. 자세한 SSSD 로그를 계속 수집하지 않으려면 디버그 수준을 낮춥니다.

    [root@server ~]# sssctl debug-level 0
    [root@client ~]# sssctl debug-level 0
  10. 서버 및 클라이언트에서 다음을 수행합니다. 실패한 요청에 대한 정보는 SSSD 로그를 검토하십시오.

    1. 클라이언트 로그의 클라이언트에서 요청을 검토합니다.
    2. 서버 로그의 클라이언트에서 요청을 검토합니다.
    3. 서버 로그에서 요청 결과를 검토합니다.
    4. 서버에서 요청 결과를 수신하는 클라이언트의 결과를 검토합니다.
  11. 인증 문제의 원인을 확인할 수 없는 경우:

    1. 최근 IdM 서버 및 IdM 클라이언트에서 생성된 SSSD 로그를 수집합니다. 호스트 이름 또는 역할에 따라 레이블을 지정합니다.

      [root@server ~]# sssctl logs-fetch sssd-logs-server-Mar29.tar
      [root@client ~]# sssctl logs-fetch sssd-logs-client-Mar29.tar
    2. Red Hat 기술 지원 케이스를 열고 다음을 제공합니다.

      1. SSSD 디버그 로그:

        1. 서버의 sssd-logs-server-29.tar
        2. 클라이언트에서 sssd-logs-client-29.tar 을 클라이언트에서 실행
      2. 로그에 해당하는 요청의 타임스탬프 및 사용자 이름을 포함한 콘솔 출력은 다음과 같습니다.

        [root@client sssd]# date; su idmuser; date
        Mon Mar 29 16:20:13 EDT 2021
        su: user idmuser does not exist
        Mon Mar 29 16:20:14 EDT 2021

8.10. SSSD 백엔드에서 클라이언트 요청 추적

SSSD는 요청을 비동기적으로 처리하고 다른 요청의 메시지가 동일한 로그 파일에 추가되므로 고유한 요청 식별자와 클라이언트 ID를 사용하여 백엔드 로그에서 클라이언트 요청을 추적할 수 있습니다. 고유한 요청 식별자는 RID#<integer> 형식의 디버그 로그에 추가되고 [CID #< integer] 형식의 클라이언트 ID가 추가됩니다. 이를 통해 개별 요청과 관련된 로그를 격리하고 요청을 여러 SSSD 구성 요소의 로그 파일에서 처음부터 끝까지 추적할 수 있습니다.

사전 요구 사항

  • 디버그 로깅을 활성화했으며 IdM 클라이언트에서 요청이 제출되었습니다.
  • SSSD 로그 파일의 내용을 표시하려면 루트 권한이 있어야 합니다.

절차

  1. SSSD 로그 파일을 검토하려면 less 유틸리티를 사용하여 로그 파일을 엽니다. 예를 들어 /var/log/sssd/sssd_example.com.log:

    [root@server ~]# less /var/log/sssd/sssd_example.com.log
  2. 클라이언트 요청에 대한 정보는 SSSD 로그를 검토합니다.

    (2021-07-26 18:26:37): [be[testidm.com]] [dp_req_destructor] (0x0400): [RID#3] Number of active DP request: 0
    (2021-07-26 18:26:37): [be[testidm.com]] [dp_req_reply_std] (0x1000): [RID#3] DP Request AccountDomain #3: Returning [Internal Error]: 3,1432158301,GetAccountDomain() not supported
    (2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): [RID#4] DP Request Account #4: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
    (2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): [RID#4] Number of active DP request: 1

    SSSD 로그 파일의 이 샘플 출력은 두 개의 다른 요청에 대한 고유 식별자 RID#3RID#4 를 보여줍니다.

그러나 SSSD 클라이언트 인터페이스에 대한 단일 클라이언트 요청은 백엔드에서 여러 요청을 트리거하는 경우가 많으며 이로 인해 백엔드의 클라이언트 요청과 요청 간에 1-to-1의 상관 관계가 아닙니다. 백엔드의 여러 요청에는 RID 번호가 다르지만 각 초기 백엔드 요청에는 고유한 클라이언트 ID가 포함되어 있으므로 관리자는 여러 RID 번호를 단일 클라이언트 요청에 대해 추적할 수 있습니다.

다음 예제에서는 하나의 클라이언트 요청 [sssd.nss CID #1] 및 백엔드에서 생성된 여러 요청 [RID#5] 을 [RID#13]으로 보여줍니다.

(2021-10-29 13:24:16): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#5] DP Request [Account #5]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:16): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#6] DP Request [AccountDomain #6]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:16): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#7] DP Request [Account #7]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:17): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#8] DP Request [Initgroups #8]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:17): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#9] DP Request [Account #9]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:17): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#10] DP Request [Account #10]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:17): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#11] DP Request [Account #11]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:17): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#12] DP Request [Account #12]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].
(2021-10-29 13:24:17): [be[ad.vm]] [dp_attach_req] (0x0400): [RID#13] DP Request [Account #13]: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001].

9장. Ansible 플레이북을 사용하여 글로벌 IdM 설정 구성

Ansible config 모듈을 사용하면 IdM(Identity Management)에 대한 글로벌 구성 매개 변수를 검색하고 설정할 수 있습니다.

이 장에는 다음 섹션이 포함되어 있습니다.

9.1. Ansible 플레이북을 사용하여 IdM 구성 검색

다음 절차에서는 Ansible 플레이북을 사용하여 현재 글로벌 IdM 구성에 대한 정보를 검색하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.

절차

  1. inventory 파일(예: inventory.file )을 생성하고 [ipaserver] 섹션에서 IdM 구성을 검색하려는 IdM 서버를 정의합니다. 예를 들어 server.idm.example.com에서 데이터를 검색하도록 Ansible에 지시하려면 다음을 입력합니다.

    [ipaserver]
    server.idm.example.com
  2. 편집을 위해 /usr/share/doc/ansible-freeipa/playbooks/config/retmasterve-config.yml Ansible 플레이북 파일을 엽니다.

    ---
    - name: Playbook to handle global IdM configuration
      hosts: ipaserver
      become: no
      gather_facts: no
    
      tasks:
      - name: Query IPA global configuration
        ipaconfig:
          ipaadmin_password: Secret123
        register: serverconfig
    
      - debug:
          msg: "{{ serverconfig }}"
  3. 다음을 변경하여 파일을 조정합니다.

    • IdM 관리자의 암호입니다.
    • 필요한 경우 기타 값입니다.
  4. 파일을 저장합니다.
  5. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/retrieve-config.yml
    [...]
    TASK [debug]
    ok: [server.idm.example.com] => {
        "msg": {
            "ansible_facts": {
                "discovered_interpreter_
            },
            "changed": false,
            "config": {
                "ca_renewal_master_server": "server.idm.example.com",
                "configstring": [
                    "AllowNThash",
                    "KDC:Disable Last Success"
                ],
                "defaultgroup": "ipausers",
                "defaultshell": "/bin/bash",
                "emaildomain": "idm.example.com",
                "enable_migration": false,
                "groupsearch": [
                    "cn",
                    "description"
                ],
                "homedirectory": "/home",
                "maxhostname": "64",
                "maxusername": "64",
                "pac_type": [
                    "MS-PAC",
                    "nfs:NONE"
                ],
                "pwdexpnotify": "4",
                "searchrecordslimit": "100",
                "searchtimelimit": "2",
                "selinuxusermapdefault": "unconfined_u:s0-s0:c0.c1023",
                "selinuxusermaporder": [
                    "guest_u:s0$xguest_u:s0$user_
                ],
                "usersearch": [
                    "uid",
                    "givenname",
                    "sn",
                    "telephonenumber",
                    "ou",
                    "title"
                ]
            },
            "failed": false
        }
    }

9.2. Ansible 플레이북을 사용하여 IdM CA 갱신 서버 구성

임베디드 CA(인증 기관)를 사용하는 IdM(Identity Management) 배포에서 CA 갱신 서버는 IdM 시스템 인증서를 유지 관리하고 갱신합니다. 강력한 IdM 배포를 보장합니다.

IdM CA 갱신 서버의 역할에 대한 자세한 내용은 IdM CA 갱신 서버 사용을 참조하십시오.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM CA 갱신 서버를 구성하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.

절차

  1. 선택 사항: 현재 IdM CA 갱신 서버를 식별합니다.

    $ ipa config-show | grep 'CA renewal'
      IPA CA renewal master: server.idm.example.com
  2. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  3. 편집을 위해 /usr/share/doc/ansible-freeipa/playbooks/config/set-ca-renewal-master-server.yml Ansible 플레이북 파일을 엽니다.

    ---
    - name: Playbook to handle global DNS configuration
      hosts: ipaserver
      become: no
      gather_facts: no
    
      tasks:
      - name: set ca_renewal_master_server
        ipaconfig:
          ipaadmin_password: SomeADMINpassword
          ca_renewal_master_server: carenewal.idm.example.com
  4. 다음과 같이 변경하여 파일을 조정합니다.

    • ipaadmin_password 변수로 설정한 IdM 관리자의 암호입니다.
    • ca_renewal_master_server 변수에서 설정한 CA 갱신 서버의 이름입니다.
  5. 파일을 저장합니다.
  6. Ansible 플레이북을 실행합니다. 플레이북 파일과 인벤토리 파일을 지정합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/set-ca-renewal-master-server.yml

검증 단계

CA 갱신 서버가 변경되었는지 확인할 수 있습니다.

  1. IdM 관리자로 ipaserver 에 로그인합니다.

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. IdM CA 갱신 서버의 ID를 요청합니다.

    $ ipa config-show | grep ‘CA renewal’
    IPA CA renewal master:  carenewal.idm.example.com

    출력에 carenewal.idm.example.com 서버가 새 CA 갱신 서버임을 보여줍니다.

9.3. Ansible 플레이북을 사용하여 IdM 사용자에 대한 기본 쉘 구성

쉘은 명령을 수락하고 해석하는 프로그램입니다. bash,sh,ksh,zsh 등의 RHEL(Red Hat Enterprise Linux)에서 몇 가지 쉘 사용할 수 있습니다. Bash 또는 /bin/bash 는 대부분의 Linux 시스템에서 널리 사용되는 쉘이며, 일반적으로 RHEL의 사용자 계정의 기본 쉘입니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM 사용자의 기본 쉘로 대체 쉘인 sh 를 구성하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.

절차

  1. 선택 사항: retrieve-config.yml Ansible 플레이북을 사용하여 IdM 사용자의 현재 쉘을 식별합니다. 자세한 내용은 Ansible 플레이북을 사용하여 IdM 구성 검색을 참조하십시오.
  2. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  3. 편집을 위해 /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml Ansible 플레이북 파일을 엽니다.

    ---
    - name: Playbook to ensure some config options are set
      hosts: ipaserver
      become: true
    
      tasks:
      # Set defaultlogin and maxusername
      - ipaconfig:
          ipaadmin_password: Secret123
          defaultshell: /bin/bash
          maxusername: 64
  4. 다음을 변경하여 파일을 조정합니다.

    • ipaadmin_password 변수로 설정한 IdM 관리자의 암호입니다.
    • default shell 변수로 설정한 IdM 사용자의 기본 쉘은 /bin/sh 에 있습니다.
  5. 파일을 저장합니다.
  6. Ansible 플레이북을 실행합니다. 플레이북 파일과 인벤토리 파일을 지정합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml

검증 단계

IdM에서 새 세션을 시작하여 기본 사용자 쉘이 변경되었는지 확인할 수 있습니다.

  1. IdM 관리자로 ipaserver 에 로그인합니다.

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. 현재 쉘을 표시합니다.

    [admin@server /]$ echo "$SHELL"
    /bin/sh

    로그인한 사용자는 sh 쉘을 사용하고 있습니다.

추가 리소스

  • /usr/share/doc/ansible-freeipa/ 디렉터리에 있는 README-config.md Markdown 파일에서 글로벌 IdM 설정 및 가능한 변수 목록을 구성하는 샘플 Ansible 플레이북을 볼 수 있습니다.
  • /usr/share/doc/ansible-freeipa/playbooks/config 디렉터리에서 다양한 IdM 구성 관련 작업에 대한 샘플 Ansible 플레이북을 볼 수 있습니다.

10장. 명령줄을 사용하여 사용자 계정 관리

이 장에는 IdM의 사용자 라이프사이클에 대한 기본 설명(ID 관리)이 포함되어 있습니다. 다음 섹션에서는 다음을 수행하는 방법을 보여줍니다.

  • 사용자 계정 만들기
  • 단계 사용자 계정 활성화
  • 사용자 계정 보존
  • 활성, 스테이징 또는 사용자 계정 삭제
  • 보존된 사용자 계정 복원

10.1. 사용자 라이프 사이클

IdM(Identity Management)은 다음 세 가지 사용자 계정 상태를 지원합니다.

  • 스테이징 사용자는 인증이 허용되지 않습니다. 초기 상태입니다. 활성 사용자에게 필요한 일부 사용자 계정 속성은 예를 들어 그룹 멤버십을 설정할 수 없습니다.
  • 활성 사용자는 인증을 허용합니다. 필요한 모든 사용자 계정 속성은 이 상태에서 설정해야 합니다.
  • 보존된 사용자는 비활성으로 간주되고 IdM에 인증할 수 없는 이전 활성 사용자입니다. 보존된 사용자는 활성 사용자로 보유한 계정 속성의 대부분을 유지하지만 사용자 그룹의 일부가 아닙니다.

A flow chart displaying 4 items: Active users - Stage users - Preserved users - Deleted users. Arrows communicate the relationships between each kind of user: Active users can be "preserved" as Preserved users. Preserved users can be "restored" as Active users. Preserved users can be "staged" as Stage users and Stage users can be "activated" into Active users. All users can be deleted to become "Deleted users".

IdM 데이터베이스에서 영구적으로 사용자 항목을 삭제할 수 있습니다.

중요

삭제된 사용자 계정은 복원할 수 없습니다. 사용자 계정을 삭제하면 계정과 연결된 모든 정보가 영구적으로 손실됩니다.

새 관리자는 기본 admin 사용자와 같은 관리자 권한이 있는 사용자만 만들 수 있습니다. 모든 관리자 계정을 실수로 삭제한 경우 Directory Manager에서 Directory Server에서 새 관리자를 수동으로 생성해야 합니다.

주의

admin 사용자를 삭제하지 마십시오. admin 은 IdM에 필요한 사전 정의된 사용자이므로 이 작업으로 인해 특정 명령에서 문제가 발생합니다. 대체 admin 사용자를 정의하고 사용하려는 경우 하나 이상의 다른 사용자에게 admin 권한을 부여한 후 ipa 사용자 비활성화 admin으로 사전 정의된 admin 사용자를 비활성화합니다.

주의

IdM에 로컬 사용자를 추가하지 마십시오. NSS(Name Service Switch)는 로컬 사용자 및 그룹을 확인하기 전에 항상 IdM 사용자 및 그룹을 확인합니다. 즉, IdM 그룹 멤버십은 로컬 사용자에게 작동하지 않습니다.

10.2. 명령줄을 사용하여 사용자 추가

다음과 같이 사용자를 추가할 수 있습니다.

  • 활성 메세지 - 사용자가 적극적으로 사용할 수 있는 사용자 계정.
  • 스테이징 -암호사용자는 이러한 계정을 사용할 수 없습니다. 새 사용자 계정을 준비하려면 이 파일을 사용합니다. 사용자가 자신의 계정을 사용할 준비가 되면 활성화할 수 있습니다.

다음 절차에서는 ipa user-add 명령을 사용하여 IdM 서버에 활성 사용자를 추가하는 방법을 설명합니다.

마찬가지로 ipa stageuser-add 명령을 사용하여 스테이징 사용자 계정을 생성할 수 있습니다.

참고

IdM은 고유한 사용자 ID(UID)를 새 사용자 계정에 자동으로 할당합니다. 이 작업을 수동으로 수행할 수도 있지만 서버에서 UID 번호가 고유한지 여부를 확인하지 않습니다. 이로 인해 여러 사용자 항목이 동일한 ID 번호가 할당될 수 있습니다. 동일한 UID가 있는 여러 항목이 없는 것을 방지하는 것이 좋습니다.

사전 요구 사항

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 사용자 로그인, 사용자의 이름, 성을 추가하고 필요한 경우 이메일 주소를 추가할 수도 있습니다.

    $ ipa user-add user_login --first=first_name --last=last_name --email=email_address

    IdM에서는 다음 정규식으로 설명할 수 있는 사용자 이름을 지원합니다.

    [a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,252}[a-zA-Z0-9_.$-]?
    참고

    후행 달러 기호($)로 끝나는 사용자 이름은 Samba 3.x 시스템 지원을 활성화하기 위해 지원됩니다.

    대문자가 포함된 사용자 이름을 추가하는 경우 IdM은 자동으로 이름을 저장할 때 소문자로 변환합니다. 따라서 IdM은 로그인할 때 항상 사용자 이름을 소문자로 입력해야 합니다. 또한 사용자 및 사용자 등 문자 캐싱에서만 다른 사용자 이름을 추가할 수 없습니다 .

    사용자 이름의 기본 최대 길이는 32자입니다. 변경하려면 ipa config-mod --maxusername 명령을 사용합니다. 예를 들어 최대 사용자 이름 길이를 64자로 늘리려면 다음을 수행합니다.

    $ ipa config-mod --maxusername=64
     Maximum username length: 64
     ...

    ipa user-add 명령에는 많은 매개 변수가 포함되어 있습니다. 모두 나열하려면 ipa help 명령을 사용합니다.

    $ ipa help user-add

    ipa help 명령에 대한 자세한 내용은 IPA 도움말을 참조하십시오.

모든 IdM 사용자 계정을 나열하여 새 사용자 계정이 성공적으로 생성되었는지 확인할 수 있습니다.

$ ipa user-find

이 명령은 세부 정보가 있는 모든 사용자 계정을 나열합니다.

10.3. 명령줄을 사용하여 사용자 활성화

사용자 계정을 스테이지에서 활성으로 이동하여 활성화하려면 ipa stageuser-activate 명령을 사용합니다.

사전 요구 사항

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 다음 명령으로 사용자 계정을 활성화합니다.

    $ ipa stageuser-activate user_login
    -------------------------
    Stage user user_login activated
    -------------------------
    ...

모든 IdM 사용자 계정을 나열하여 새 사용자 계정이 성공적으로 생성되었는지 확인할 수 있습니다.

$ ipa user-find

이 명령은 세부 정보가 있는 모든 사용자 계정을 나열합니다.

10.4. 명령줄을 사용하여 사용자 보존

제거하려는 경우 사용자 계정을 보존할 수 있지만 옵션을 유지하여 나중에 복원할 수 있습니다. 사용자 계정을 보존하려면 ipa user-del 또는 ipa stageuser-del 명령에 --preserve 옵션을 사용합니다.

사전 요구 사항

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 다음 명령을 사용하여 사용자 계정을 보존합니다.

    $ ipa user-del --preserve user_login
    --------------------
    Deleted user "user_login"
    --------------------
    참고

    사용자 계정이 삭제되었음을 나타내는 출력에도 불구하고 보존되었습니다.

10.5. 명령줄을 사용하여 사용자 삭제

IdM(ID 관리)을 사용하면 사용자를 영구적으로 삭제할 수 있습니다. 다음을 삭제할 수 있습니다.

  • 다음 명령을 사용하는 활성 사용자: ipa user-del
  • 다음 명령을 사용하여 사용자 준비: ipa stageuser-del
  • 다음 명령을 사용하여 사용자 보존: ipa user-del

여러 사용자를 삭제하는 경우 --continue 옵션을 사용하여 오류에 관계없이 명령이 계속되도록 합니다. 명령이 완료되면 성공 및 실패한 작업의 요약이 stdout 표준 출력 스트림에 출력됩니다.

$ ipa user-del --continue user1 user2 user3

--continue 를 사용하지 않는 경우 명령은 오류가 발생할 때까지 사용자 삭제를 진행합니다. 이 경우 이 명령이 중지되고 종료됩니다.

사전 요구 사항

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 다음 명령을 사용하여 사용자 계정을 삭제합니다.

    $ ipa user-del user_login
    --------------------
    Deleted user "user_login"
    --------------------

사용자 계정이 IdM에서 영구적으로 삭제되었습니다.

10.6. 명령줄을 사용하여 사용자 복원

보존된 사용자를 다음과 같이 복원할 수 있습니다.

  • 활성 사용자: ipa user-undel
  • 단계 사용자: ipa 사용자 단계

사용자 계정을 복원해도 계정의 이전 속성이 모두 복원되지는 않습니다. 예를 들어 사용자의 암호가 복원되지 않으므로 다시 설정해야 합니다.

사전 요구 사항

절차

  1. 터미널을 열고 IdM 서버에 연결합니다.
  2. 다음 명령으로 사용자 계정을 활성화합니다.

    $ ipa user-undel user_login
    ------------------------------
    Undeleted user account "user_login"
    ------------------------------

    또는 사용자 계정을 스테이징된 상태로 복원할 수 있습니다.

    $ ipa user-stage user_login
    ------------------------------
    Staged user account "user_login"
    ------------------------------

검증 단계

  • 모든 IdM 사용자 계정을 나열하여 새 사용자 계정이 성공적으로 생성되었는지 확인할 수 있습니다.

    $ ipa user-find

    이 명령은 세부 정보가 있는 모든 사용자 계정을 나열합니다.

11장. IdM 웹 UI를 사용하여 사용자 계정 관리

IdM(Identity Management)은 다양한 사용자 작업 환경을 관리하는 데 도움이 되는 여러 단계를 제공합니다.

사용자 계정 생성

직원이 회사에서 경력을 시작하기 전에 단계 사용자 계정을 만들고 직원이 사무실에 나타나면 계정을 활성화하려는 날을 미리 준비하십시오.

이 단계를 생략하고 활성 사용자 계정을 직접 만들 수 있습니다. 절차는 stage 사용자 계정 생성과 유사합니다.

사용자 계정 활성화
직원의 첫 근무일 계정 활성화.
사용자 계정 비활성화
사용자가 몇 개월 동안 부모의 휴가 로 이동하는 경우 계정을 일시적으로 비활성화해야 합니다.
사용자 계정 활성화
사용자가 반환되면 계정을 다시 활성화해야 합니다.
사용자 계정 보존
사용자가 퇴사하려는 경우 계정이 다시 복원될 가능성이 있는 경우 나중에 회사로 돌아갈 수 있기 때문에 계정을 삭제해야 합니다.
사용자 계정 복원
2년 후 사용자가 다시 시작되어 보존된 계정을 복원해야 합니다.
사용자 계정 삭제
직원이 해당 직원이 거부되면 백업 없이 계정을 삭제합니다.

11.1. 사용자 라이프 사이클

IdM(Identity Management)은 다음 세 가지 사용자 계정 상태를 지원합니다.

  • 스테이징 사용자는 인증이 허용되지 않습니다. 초기 상태입니다. 활성 사용자에게 필요한 일부 사용자 계정 속성은 예를 들어 그룹 멤버십을 설정할 수 없습니다.
  • 활성 사용자는 인증을 허용합니다. 필요한 모든 사용자 계정 속성은 이 상태에서 설정해야 합니다.
  • 보존된 사용자는 비활성으로 간주되고 IdM에 인증할 수 없는 이전 활성 사용자입니다. 보존된 사용자는 활성 사용자로 보유한 계정 속성의 대부분을 유지하지만 사용자 그룹의 일부가 아닙니다.

A flow chart displaying 4 items: Active users - Stage users - Preserved users - Deleted users. Arrows communicate the relationships between each kind of user: Active users can be "preserved" as Preserved users. Preserved users can be "restored" as Active users. Preserved users can be "staged" as Stage users and Stage users can be "activated" into Active users. All users can be deleted to become "Deleted users".

IdM 데이터베이스에서 영구적으로 사용자 항목을 삭제할 수 있습니다.

중요

삭제된 사용자 계정은 복원할 수 없습니다. 사용자 계정을 삭제하면 계정과 연결된 모든 정보가 영구적으로 손실됩니다.

새 관리자는 기본 admin 사용자와 같은 관리자 권한이 있는 사용자만 만들 수 있습니다. 모든 관리자 계정을 실수로 삭제한 경우 Directory Manager에서 Directory Server에서 새 관리자를 수동으로 생성해야 합니다.

주의

admin 사용자를 삭제하지 마십시오. admin 은 IdM에 필요한 사전 정의된 사용자이므로 이 작업으로 인해 특정 명령에서 문제가 발생합니다. 대체 admin 사용자를 정의하고 사용하려는 경우 하나 이상의 다른 사용자에게 admin 권한을 부여한 후 ipa 사용자 비활성화 admin으로 사전 정의된 admin 사용자를 비활성화합니다.

주의

IdM에 로컬 사용자를 추가하지 마십시오. NSS(Name Service Switch)는 로컬 사용자 및 그룹을 확인하기 전에 항상 IdM 사용자 및 그룹을 확인합니다. 즉, IdM 그룹 멤버십은 로컬 사용자에게 작동하지 않습니다.

11.2. 웹 UI에서 사용자 추가

일반적으로 새 직원이 작동하기 전에 새 사용자 계정을 만들어야 합니다. 이러한 단계 계정에 액세스할 수 없으며 나중에 활성화해야 합니다.

참고

또는 활성 사용자 계정을 직접 만들 수도 있습니다. 활성 사용자를 추가하려면 아래 절차를 따르고 Active users (활성 사용자) 탭에 사용자 계정을 추가합니다.

사전 요구 사항

  • IdM 또는 사용자 관리자 역할을 관리하기 위한 관리자 권한.

절차

  1. IdM 웹 UI에 로그인합니다.

    자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

  2. 사용자 → 사용자 단계 탭으로 이동합니다.

    또는 사용자 → 활성 사용자에게 사용자 계정을 추가할 수도 있지만 계정에 사용자 그룹을 추가할 수는 없습니다.

  3. + Add(추가) 아이콘을 클릭합니다.
  4. Add stage user ( 단계 사용자 추가) 대화 상자에 새 사용자의 이름 및 이름을 입력합니다.
  5. [선택 사항] 사용자 로그인 필드에 로그인 이름을 추가합니다.

    비워 두면 IdM 서버에서 다음 패턴으로 로그인 이름을 생성합니다. 이름 및 성의 첫 글자. 전체 로그인 이름은 최대 32자를 가질 수 있습니다.

  6. [선택 사항] GID 드롭다운 메뉴에서 사용자가 포함해야 하는 그룹을 선택합니다.
  7. [선택 사항] Password and Verify password (암호 및 암호 확인) 필드에 암호를 입력하고 확인한 후 둘 다 일치하는지 확인합니다.
  8. Add(추가) 단추를 클릭합니다.

    Screenshot of the "Add stage user" pop-up window with the "New Password" the "Verify Password" fields filled in. The "Add" button is at the bottom left.

이때 Stage Users (사용자 단계) 테이블에 사용자 계정을 볼 수 있습니다.

Screenshot of the IdM Web UI showing user entries in the Stage Users table. This is selected from the Identity tab - the Users sub-tab - and the Stage users category listed on the left.

참고

사용자 이름을 클릭하면 전화 번호, 주소 또는 바우처 추가와 같은 고급 설정을 편집할 수 있습니다.

11.3. IdM 웹 UI에서 단계 사용자 활성화

사용자가 IdM에 로그인하고 사용자를 IdM 그룹에 추가하려면 먼저 스테이징 사용자 계정을 활성화해야 합니다. 이 섹션에서는 단계 사용자 계정을 활성화하는 방법에 대해 설명합니다.

사전 요구 사항

  • IdM 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.
  • IdM에서 하나 이상의 준비 사용자 계정.

절차

  1. IdM 웹 UI에 로그인합니다.

    자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

  2. 사용자 → 사용자 탭으로 이동합니다.
  3. 활성화하려는 사용자 계정의 확인란을 클릭합니다.
  4. Activate(활성화 ) 버튼을 클릭합니다.

    Screenshot of the IdM Web UI showing user entries in the "Stage Users" table. This is selected from the Identity tab - the Users sub-tab - and the Stage users category listed on the left.

  5. Confirmation(확인 ) 대화 상자에서 OK (확인) 버튼을 클릭합니다.

활성화에 성공하면 IdM 웹 UI에 사용자가 활성화되고 사용자 계정이 Active users 로 이동한 녹색 확인이 표시됩니다. 계정이 활성 상태이며 사용자가 IdM 도메인 및 IdM 웹 UI에 인증할 수 있습니다. 처음 로그인할 때 암호를 변경하라는 메시지가 표시됩니다.

Screenshot of the IdM Web UI showing the "staged.user" user entry in the "Active Users" table. Its status is "enabled."

참고

이 단계에서는 활성 사용자 계정을 사용자 그룹에 추가할 수 있습니다.

11.4. 웹 UI에서 사용자 계정 비활성화

활성 사용자 계정을 비활성화할 수 있습니다. 사용자 계정을 비활성화하면 계정을 비활성화하므로 사용자 계정을 사용하여 Kerberos와 같은 IdM 서비스를 인증하거나 모든 작업을 수행할 수 없습니다.

비활성화된 사용자 계정은 IdM 내에 계속 있으며 연결된 모든 정보는 변경되지 않습니다. 보존된 사용자 계정과 달리 비활성화된 사용자 계정이 활성 상태로 유지되며 사용자 그룹의 멤버가 될 수 있습니다.

참고

사용자 계정을 비활성화한 후 기존 연결은 사용자의 Kerberos TGT 및 기타 티켓이 만료될 때까지 유효합니다. 티켓이 만료되면 사용자는 이를 갱신할 수 없습니다.

사전 요구 사항

  • IdM 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.

절차

  1. IdM 웹 UI에 로그인합니다.

    자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

  2. 사용자 → 활성 사용자 탭으로 이동합니다.
  3. 비활성화하려는 사용자 계정의 확인란을 클릭합니다.
  4. Disable(비활성화 ) 버튼을 클릭합니다.

    Screenshot of the "Active Users" page with a table displaying attributes for several users such as User login - First name - Last name - Status - UID - Email address - Telephone Number - Job Title. The entry for the "euser" account has been highlighted and so have the "Enable" and "Disable" buttons at the top right.

  5. Confirmation(확인 ) 대화 상자에서 OK (확인) 버튼을 클릭합니다.

비활성화 절차가 성공한 경우 Active users (활성 사용자) 테이블의 Status(상태) 열에서 확인할 수 있습니다.

Screenshot of the same "Active Users" page with the table displaying attributes for several users. The "euser" account is now greyed-out and shows "Disabled" in its "Status" column.

11.5. 웹 UI에서 사용자 계정 활성화

IdM을 사용하면 비활성화된 활성 사용자 계정을 활성화할 수 있습니다. 사용자 계정을 활성화하면 비활성화된 계정을 활성화합니다.

사전 요구 사항

  • IdM 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.

절차

  1. IdM 웹 UI에 로그인합니다.
  2. 사용자 → 활성 사용자 탭으로 이동합니다.
  3. 활성화하려는 사용자 계정의 확인란을 클릭합니다.
  4. Enable 단추를 클릭합니다.

    Screenshot of the "Active Users" page with a table displaying attributes for several users such as User login - First name - Last name - Status - UID - Email address - Telephone Number - Job Title. The entry for the "euser" account has been highlighted and so have the "Enable" and "Disable" buttons at the top right.

  5. Confirmation(확인 ) 대화 상자에서 OK (확인) 버튼을 클릭합니다.

변경이 성공적으로 수행된 경우 Active users (활성 사용자) 테이블의 Status(상태) 열에서 확인할 수 있습니다.

11.6. IdM 웹 UI에서 활성 사용자 보존

사용자 계정을 보존하면 Active users 탭에서 계정을 제거할 수 있지만 이러한 계정을 IdM에 유지할 수 있습니다.

직원이 퇴사하는 경우 사용자 계정을 보존합니다. 몇 주 또는 몇 달 동안 사용자 계정을 비활성화하려면(예:임시 휴가) 계정을 비활성화하십시오. 자세한 내용은 11.4절. “웹 UI에서 사용자 계정 비활성화” 의 내용을 참조하십시오. 보존된 계정은 활성 상태가 아니므로 사용자가 내부 네트워크에 액세스하는 데 사용할 수 없지만 계정은 모든 데이터가 있는 데이터베이스에 남아 있습니다.

복원된 계정을 활성 모드로 다시 이동할 수 있습니다.

참고

보존 상태에 있는 사용자 목록은 과거 사용자 계정 기록을 제공할 수 있습니다.

사전 요구 사항

  • IdM(ID 관리) 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.

절차

  1. IdM 웹 UI에 로그인합니다.

    자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

  2. 사용자 → 활성 사용자 탭으로 이동합니다.
  3. 보존할 사용자 계정의 확인란을 클릭합니다.
  4. Delete(삭제) 단추를 클릭합니다.

    A screenshot of the "Active Users" page displaying a table of users. The checkbox for the entry for the "preserved.user" account has been checked and the "Delete" button at the top is highlighted.

  5. Remove users(사용자 제거 ) 대화 상자에서 Delete mode(삭제 모드) 라디오 버튼을 전환하여 보존합니다.
  6. Delete(삭제) 단추를 클릭합니다.

    A screenshot of a pop-up window titled "Remove users." The contents say "Are you sure you want to delete selected entries?" and specifies "preserved.user" below. There is a label "Delete mode" with two radial options: "delete" and "preserve" (which is selected). There are "Delete" and "Cancel" buttons at the bottom right corner of the window.

결과적으로 사용자 계정이 보존된 사용자로 이동됩니다.

보존된 사용자를 복원해야 하는 경우 IdM 웹 UI에서 사용자 복원을 참조하십시오.

11.7. IdM 웹 UI에서 사용자 복원

IdM(ID 관리)을 사용하면 보존된 사용자 계정을 활성 상태로 다시 복원할 수 있습니다.

사전 요구 사항

  • IdM 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.

절차

  1. IdM 웹 UI에 로그인합니다.

    자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

  2. 사용자 → 보존된 사용자 탭으로 이동합니다.
  3. 복원할 사용자 계정에서 체크박스를 클릭합니다.
  4. Restore (복구) 버튼을 클릭합니다.

    A screenshot of the "Preserved users" page displaying a table of users and their attributes. The checkbox next to one user entry is checked and the "Restore" button at the top right is highlighted.

  5. Confirmation(확인 ) 대화 상자에서 OK (확인) 버튼을 클릭합니다.

IdM 웹 UI는 녹색 확인을 표시하고 사용자 계정을 Active users (활성 사용자) 탭으로 이동합니다.

11.8. IdM 웹 UI에서 사용자 삭제

사용자를 삭제하는 것은 되돌릴 수 없는 작업이므로 그룹 멤버십 및 암호를 포함하여 사용자 계정이 IdM 데이터베이스에서 영구적으로 삭제됩니다. 시스템 계정 및 홈 디렉터리와 같은 사용자의 외부 구성은 삭제되지 않지만 IdM을 통해 더 이상 액세스할 수 없습니다.

다음을 삭제할 수 있습니다.

  • 활성 사용자 정보 - IdM 웹 UI는 다음과 같은 옵션을 제공합니다.

  • 스테이징 사용자 - 단계 사용자를 영구적으로 삭제할 수 있습니다.
  • 보존된 사용자 - 보존된 사용자를 영구적으로 삭제할 수 있습니다.

다음 절차에서는 활성 사용자 삭제를 설명합니다. 마찬가지로 다음에서 사용자 계정을 삭제할 수 있습니다.

  • Stage users(단계 사용자 ) 탭
  • 보존된 사용자

사전 요구 사항

  • IdM 웹 UI 또는 사용자 관리자 역할을 관리하는 관리자 권한.

절차

  1. IdM 웹 UI에 로그인합니다.

    자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

  2. 사용자 → 활성 사용자 탭으로 이동합니다.

    또는 사용자 → 사용자 단계 또는 사용자 → 보존된 사용자의 사용자 계정을 삭제할 수 있습니다.

  3. Delete(삭제) 아이콘을 클릭합니다.
  4. Remove users(사용자 제거 ) 대화 상자에서 Delete mode(삭제 모드 ) 라디오 버튼을 삭제 하도록 전환합니다.
  5. Delete(삭제) 단추를 클릭합니다.

사용자 계정이 IdM에서 영구적으로 삭제되었습니다.

12장. Ansible 플레이북을 사용하여 사용자 계정 관리

Ansible 플레이북을 사용하여 IdM에서 사용자를 관리할 수 있습니다. 사용자 라이프사이클 을 제공한 후 이 장에서는 다음 작업에 Ansible 플레이북을 사용하는 방법을 설명합니다.

12.1. 사용자 라이프 사이클

IdM(Identity Management)은 다음 세 가지 사용자 계정 상태를 지원합니다.

  • 스테이징 사용자는 인증이 허용되지 않습니다. 초기 상태입니다. 활성 사용자에게 필요한 일부 사용자 계정 속성은 예를 들어 그룹 멤버십을 설정할 수 없습니다.
  • 활성 사용자는 인증을 허용합니다. 필요한 모든 사용자 계정 속성은 이 상태에서 설정해야 합니다.
  • 보존된 사용자는 비활성으로 간주되고 IdM에 인증할 수 없는 이전 활성 사용자입니다. 보존된 사용자는 활성 사용자로 보유한 계정 속성의 대부분을 유지하지만 사용자 그룹의 일부가 아닙니다.

A flow chart displaying 4 items: Active users - Stage users - Preserved users - Deleted users. Arrows communicate the relationships between each kind of user: Active users can be "preserved" as Preserved users. Preserved users can be "restored" as Active users. Preserved users can be "staged" as Stage users and Stage users can be "activated" into Active users. All users can be deleted to become "Deleted users".

IdM 데이터베이스에서 영구적으로 사용자 항목을 삭제할 수 있습니다.

중요

삭제된 사용자 계정은 복원할 수 없습니다. 사용자 계정을 삭제하면 계정과 연결된 모든 정보가 영구적으로 손실됩니다.

새 관리자는 기본 admin 사용자와 같은 관리자 권한이 있는 사용자만 만들 수 있습니다. 모든 관리자 계정을 실수로 삭제한 경우 Directory Manager에서 Directory Server에서 새 관리자를 수동으로 생성해야 합니다.

주의

admin 사용자를 삭제하지 마십시오. admin 은 IdM에 필요한 사전 정의된 사용자이므로 이 작업으로 인해 특정 명령에서 문제가 발생합니다. 대체 admin 사용자를 정의하고 사용하려는 경우 하나 이상의 다른 사용자에게 admin 권한을 부여한 후 ipa 사용자 비활성화 admin으로 사전 정의된 admin 사용자를 비활성화합니다.

주의

IdM에 로컬 사용자를 추가하지 마십시오. NSS(Name Service Switch)는 로컬 사용자 및 그룹을 확인하기 전에 항상 IdM 사용자 및 그룹을 확인합니다. 즉, IdM 그룹 멤버십은 로컬 사용자에게 작동하지 않습니다.

12.2. Ansible 플레이북을 사용하여 IdM 사용자가 있는지 확인

다음 절차에서는 Ansible 플레이북을 사용하여 IdM에 사용자가 있는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • ansible-freeipa 패키지는 Ansible 컨트롤러에 설치됩니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. IdM에 있는 사용자의 데이터를 사용하여 Ansible 플레이북 파일을 생성합니다. 이 단계를 간소화하기 위해 /usr/share/doc/ansible-freeipa/playbooks/user/add-user.yml 파일에서 예제를 복사하고 수정할 수 있습니다. 예를 들어 idm_user 라는 사용자를 생성하고 Password123 을 사용자 암호로 추가하려면 다음을 수행합니다.

    ---
    - name: Playbook to handle users
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Create user idm_user
        ipauser:
          ipaadmin_password: MySecret123
          name: idm_user
          first: Alice
          last: Acme
          uid: 1000111
          gid: 10011
          phone: "+555123457"
          email: idm_user@acme.com
          passwordexpiration: "2023-01-19 23:59:59"
          password: "Password123"
          update_password: on_create

    사용자를 추가하려면 다음 옵션을 사용해야 합니다.

    • name: 로그인 이름
    • first: 첫 번째 이름 문자열
    • last: 성 문자열

    사용 가능한 사용자 옵션의 전체 목록은 /usr/share/doc/ansible-freeipa/README-user.md Markdown 파일을 참조하십시오.

    참고

    update_password: on_create 옵션을 사용하는 경우 Ansible은 사용자를 생성할 때만 사용자 암호를 생성합니다. 사용자가 이미 암호를 사용하여 생성된 경우 Ansible에서 새 암호를 생성하지 않습니다.

  3. 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-IdM-user.yml

검증 단계

  • ipa user-show 명령을 사용하여 새 사용자 계정이 IdM에 있는지 확인할 수 있습니다.

    1. admin으로 ipaserver 에 로그인합니다.

      $ ssh admin@server.idm.example.com
      Password:
      [admin@server /]$
    2. 관리자용 Kerberos 티켓을 요청합니다.

      $ kinit admin
      Password for admin@IDM.EXAMPLE.COM:
    3. idm_user 에 대한 정보를 요청합니다.

      $ ipa user-show idm_user
        User login: idm_user
        First name: Alice
        Last name: Acme
        ....

    이름이 idm_user 인 사용자는 IdM에 있습니다.

12.3. Ansible Playbook을 사용하여 여러 IdM 사용자가 있는지 확인

다음 절차에서는 Ansible 플레이북을 사용하여 IdM에 여러 사용자가 있는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. IdM에서 확인할 사용자의 데이터로 Ansible 플레이북 파일을 생성합니다. 이 단계를 간소화하기 위해 /usr/share/doc/ansible-freeipa/playbooks/user/ensure-users-present.yml 파일에서 예제를 복사하고 수정할 수 있습니다. 예를 들어 idm_user_1, idm_user _2 및 idm_user _3 사용자를 생성하고, Password123idm_user_1 의 암호로 추가하려면 다음을 수행합니다.

    ---
    - name: Playbook to handle users
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Create user idm_users
        ipauser:
          ipaadmin_password: MySecret123
          users:
          - name: idm_user_1
            first: Alice
            last: Acme
            uid: 10001
            gid: 10011
            phone: "+555123457"
            email: idm_user@acme.com
            passwordexpiration: "2023-01-19 23:59:59"
            password: "Password123"
          - name: idm_user_2
            first: Bob
            last: Acme
            uid: 100011
            gid: 10011
          - name: idm_user_3
            first: Eve
            last: Acme
            uid: 1000111
            gid: 10011
    참고

    update_password: on_create 옵션을 지정하지 않으면 Ansible은 플레이북을 실행할 때마다 사용자 암호를 다시 설정합니다. 플레이북이 마지막으로 실행된 이후 사용자가 암호를 변경한 경우 Ansible은 암호를 다시 설정합니다.

  3. 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-users.yml

검증 단계

  • ipa user-show 명령을 사용하여 사용자 계정이 IdM에 있는지 확인할 수 있습니다.

    1. 관리자로 ipaserver 에 로그인합니다.

      $ ssh administrator@server.idm.example.com
      Password:
      [admin@server /]$
    2. idm_user_1 에 대한 정보 표시:

      $ ipa user-show idm_user_1
        User login: idm_user_1
        First name: Alice
        Last name: Acme
        Password: True
        ....

    IdM에 idm_user_1 이라는 사용자가 있습니다.

12.4. Ansible 플레이북을 사용하여 JSON 파일에서 여러 IdM 사용자가 있는지 확인

다음 절차에서는 Ansible 플레이북을 사용하여 IdM에 여러 사용자가 있는지 확인하는 방법을 설명합니다. 사용자는 JSON 파일에 저장됩니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. 필요한 작업을 사용하여 Ansible 플레이북 파일을 생성합니다. 확인하고자 하는 사용자의 데이터로 JSON 파일을 참조합니다. 이 단계를 간소화하기 위해 /usr/share/doc/ansible-freeipa/ensure-users-present-ymlfile.yml 파일에서 예제를 복사하고 수정할 수 있습니다.

    ---
    - name: Ensure users' presence
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Include users.json
        include_vars:
          file: users.json
    
      - name: Users present
        ipauser:
          ipaadmin_password: MySecret123
          users: "{{ users }}"
  3. users.json 파일을 생성하고 IdM 사용자를 추가합니다. 이 단계를 간소화하기 위해 /usr/share/doc/ansible-freeipa/playbooks/user/users.json 파일에서 예제를 복사하고 수정할 수 있습니다. 예를 들어 idm_user_1, idm_user _2 및 idm_user _3 사용자를 생성하고, Password123idm_user_1 의 암호로 추가하려면 다음을 수행합니다.

    {
      "users": [
       {
        "name": "idm_user_1",
        "first": "Alice",
        "last": "Acme",
        "password": "Password123"
       },
       {
        "name": "idm_user_2",
        "first": "Bob",
        "last": "Acme"
       },
       {
        "name": "idm_user_3",
        "first": "Eve",
        "last": "Acme"
       }
      ]
    }
  4. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-users-present-jsonfile.yml

검증 단계

  • ipa user-show 명령을 사용하여 사용자 계정이 IdM에 있는지 확인할 수 있습니다.

    1. 관리자로 ipaserver 에 로그인합니다.

      $ ssh administrator@server.idm.example.com
      Password:
      [admin@server /]$
    2. idm_user_1 에 대한 정보 표시:

      $ ipa user-show idm_user_1
        User login: idm_user_1
        First name: Alice
        Last name: Acme
        Password: True
        ....

    IdM에 idm_user_1 이라는 사용자가 있습니다.

12.5. Ansible 플레이북을 사용하여 사용자가 없는지 확인

다음 절차에서는 Ansible 플레이북을 사용하여 특정 사용자가 IdM에 없는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. IdM에 없는 사용자로 Ansible 플레이북 파일을 생성합니다. 이 단계를 간소화하기 위해 /usr/share/doc/ansible-freeipa/playbooks/user/ensure-users-present.yml 파일에서 예제를 복사하고 수정할 수 있습니다. 예를 들어 idm_user_1, idm_user _2 및 idm_user _3 사용자를 삭제하려면 다음을 수행합니다.

    ---
    - name: Playbook to handle users
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Delete users idm_user_1, idm_user_2, idm_user_3
        ipauser:
          ipaadmin_password: MySecret123
          users:
          - name: idm_user_1
          - name: idm_user_2
          - name: idm_user_3
          state: absent
  3. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/delete-users.yml

검증 단계

ipa user-show 명령을 사용하여 사용자 계정이 IdM에 없는지 확인할 수 있습니다.

  1. 관리자로 ipaserver 에 로그인합니다.

    $ ssh administrator@server.idm.example.com
    Password:
    [admin@server /]$
  2. idm_user_1 에 대한 정보를 요청합니다.

    $ ipa user-show idm_user_1
    ipa: ERROR: idm_user_1: user not found

    이름이 idm_user_1 인 사용자는 IdM에 없습니다.

추가 리소스

  • /usr/share/doc/ansible-freeipa/ 디렉터리에 있는 README-user.md Markdown 파일에서 사용자 보존, 삭제, 비활성화, 잠금 해제 및 삭제와 같은 다른 IdM 사용자 관련 작업에 대한 샘플 Ansible 플레이북을 볼 수 있습니다. 파일에는 ipauser 변수 정의도 포함되어 있습니다.
  • /usr/share/doc/ansible-freeipa/playbooks/user 디렉터리에 샘플 Ansible 플레이북을 볼 수도 있습니다.

13장. IdM CLI에서 사용자 그룹 관리

이 장에서는 IdM CLI를 사용한 사용자 그룹 관리 방법을 소개합니다.

사용자 그룹은 공통 권한, 암호 정책 및 기타 특성을 가진 사용자 집합입니다.

IdM(Identity Management)의 사용자 그룹은 다음을 포함할 수 있습니다.

  • IdM 사용자
  • 기타 IdM 사용자 그룹
  • 외부 사용자 - IdM 외부에 존재하는 사용자

13.1. IdM의 다양한 그룹 유형

IdM은 다음과 같은 유형의 그룹을 지원합니다.

POSIX 그룹(기본값)

POSIX 그룹은 구성원에 대해 Linux POSIX 특성을 지원합니다. Active Directory와 상호 작용하는 그룹은 POSIX 특성을 사용할 수 없습니다.

POSIX 속성은 사용자를 별도의 엔터티로 식별합니다. 사용자와 관련된 POSIX 속성의 예로는 사용자 번호(UID)인 uidNumber 와 그룹 번호(GID)인 gidNumber 가 있습니다.

postIX 이외의 그룹

POST 이외의 그룹은 POSIX 특성을 지원하지 않습니다. 예를 들어, 이러한 그룹에는 GID가 정의되어 있지 않습니다.

이 유형의 그룹의 모든 멤버는 IdM 도메인에 속해야 합니다.

외부 그룹

외부 그룹을 사용하여 IdM 도메인 외부의 ID 저장소에 있는 그룹 구성원을 추가합니다(예:).

  • 로컬 시스템
  • Active Directory 도메인
  • 디렉터리 서비스

외부 그룹은 POSIX 특성을 지원하지 않습니다. 예를 들어, 이러한 그룹에는 GID가 정의되어 있지 않습니다.

표 13.1. 기본적으로 생성된 사용자 그룹

그룹 이름기본 그룹 멤버

ipausers

모든 IdM 사용자

admins

기본 admin 사용자를 포함하여 관리 권한이 있는 사용자

편집기

이는 더 이상 특수 권한이 없는 레거시 그룹입니다.

신뢰 관리자

Active Directory 신뢰 관리를 위한 권한이 있는 사용자

사용자를 사용자 그룹에 추가하면 사용자에게 그룹과 관련된 권한 및 정책이 부여됩니다. 예를 들어 사용자에게 관리 권한을 부여하려면 사용자를 admins 그룹에 추가합니다.

주의

admins 그룹을 삭제하지 마십시오. admins 는 IdM에 필요한 사전 정의된 그룹이므로 이 작업으로 인해 특정 명령에 문제가 발생합니다.

또한 IdM에서 새 사용자가 생성될 때마다 IdM은 기본적으로 사용자 개인 그룹을 생성합니다. 개인 그룹에 대한 자세한 내용은 개인 그룹 없이 사용자 추가를 참조하십시오.

13.2. 직접 및 간접 그룹 구성원

IdM의 사용자 그룹 속성은 직접 및 간접 구성원 모두에 적용됩니다. B 그룹이 A 그룹의 구성원이면 B 그룹의 모든 사용자는 A 그룹의 간접 구성원으로 간주됩니다.

예를 들어 다음 다이어그램에서 다음을 수행합니다.

  • User 1 및 User 2는 A 그룹의 직접 구성원입니다.
  • User 3, User 4 및 User 5는 A 그룹의 간접 구성원입니다.

그림 13.1. 직접 및 간접 그룹 멤버십

그룹 A(사용자 2명) 및 그룹 B(사용자 3명 포함)가 포함된 차트. B 그룹은 A 그룹에 중첩되어 있으므로 A 그룹에는 총 5명의 사용자가 포함됩니다.

사용자 그룹 A에 대한 암호 정책을 설정하면 이 정책은 사용자 그룹 B의 모든 사용자에게도 적용됩니다.

13.3. IdM CLI를 사용하여 사용자 그룹 추가

이 섹션에서는 IdM CLI를 사용하여 사용자 그룹을 추가하는 방법에 대해 설명합니다.

사전 요구 사항

절차

  • ipa group-add group _name 명령을 사용하여 사용자 그룹을 추가합니다. 예를 들어 group_a를 생성하려면 다음을 수행합니다.

    $ ipa group-add group_a
    ---------------------
    Added group "group_a"
    ---------------------
      Group name: group_a
      GID: 1133400009

    기본적으로 ipa group-add 는 POSIX 사용자 그룹을 추가합니다. 다른 그룹 유형을 지정하려면 ipa group-add 에 옵션을 추가합니다.

    • --POSIX 이외의 그룹을 만드는 nonposix
    • 외부 그룹을 만드는 --external

      그룹 유형에 대한 자세한 내용은 IdM의 다양한 그룹 유형을 참조하십시오.

    --gid= custom_GID 옵션을 사용하여 사용자 그룹을 추가할 때 사용자 지정 GID를 지정할 수 있습니다. 이 작업을 수행하는 경우 ID 충돌을 피하십시오. 사용자 지정 GID를 지정하지 않으면 IdM에서 사용 가능한 ID 범위에서 GID를 자동으로 할당합니다.

주의

IdM에 로컬 그룹을 추가하지 마십시오. NSS(Name Service Switch)는 로컬 사용자 및 그룹을 확인하기 전에 항상 IdM 사용자 및 그룹을 확인합니다. 즉, IdM 그룹 멤버십은 로컬 사용자에게 작동하지 않습니다.

13.4. IdM CLI를 사용하여 사용자 그룹 검색

이 섹션에서는 IdM CLI를 사용하여 기존 사용자 그룹을 검색하는 방법을 설명합니다.

절차

  • ipa group-find 명령을 사용하여 모든 사용자 그룹을 표시합니다. 그룹 유형을 지정하려면 ipa group-find 에 옵션을 추가합니다.

    • ipa group-find --posix 명령을 사용하여 모든 POSIX 그룹을 표시합니다.
    • ipa group-find --nonposix 명령을 사용하여 모든 비POSIX 그룹을 표시합니다.
    • ipa group-find --external 명령을 사용하여 모든 외부 그룹을 표시합니다.

      다양한 그룹 유형에 대한 자세한 내용은 IdM의 다양한 그룹 유형에서 참조하십시오.

13.5. IdM CLI를 사용하여 사용자 그룹 삭제

이 섹션에서는 IdM CLI를 사용하여 사용자 그룹을 삭제하는 방법을 설명합니다. 그룹을 삭제해도 IdM에서 그룹 구성원이 삭제되지 않습니다.

사전 요구 사항

절차

  • ipa group-del group _name 명령을 사용하여 사용자 그룹을 삭제합니다. 예를 들어 group_a를 삭제하려면 다음을 수행합니다.

    $ ipa group-del group_a
    --------------------------
    Deleted group "group_a"
    --------------------------

13.6. IdM CLI를 사용하여 사용자 그룹에 멤버 추가

이 섹션에서는 IdM CLI를 사용하여 사용자 그룹에 멤버를 추가하는 방법을 설명합니다. 사용자 및 사용자 그룹을 사용자 그룹의 멤버로 추가할 수 있습니다. 자세한 내용은 IdM 및 직접 및 간접 그룹 구성원의 다양한 그룹 유형을 참조하십시오.

사전 요구 사항

절차

  • ipa group-add-member 명령을 사용하여 사용자 그룹에 멤버를 추가합니다.

    다음 옵션을 사용하여 멤버 유형을 지정합니다.

    • --users 는 IdM 사용자 추가
    • --external 은 IdM 도메인 외부에 있는 사용자 추가: sudoAIN \user_name 또는 user_name@domain형식으로
    • --groups 는 IdM 사용자 그룹 추가

    예를 들어 group_b를 group_a의 멤버로 추가하려면 다음을 수행합니다.

    $ ipa group-add-member group_a --groups=group_b
    Group name: group_a
    GID: 1133400009
    Member users: user_a
    Member groups: group_b
    Indirect Member users: user_b
    -------------------------
    Number of members added 1
    -------------------------

    group_b의 멤버는 이제 group_a의 간접 멤버입니다.

중요

그룹을 다른 그룹의 구성원으로 추가할 때 재귀 그룹을 만들지 마십시오. 예를 들어 그룹 A가 그룹 B의 구성원인 경우 그룹 A의 구성원으로 그룹 B를 추가하지 마십시오. 반복적인 그룹은 예측할 수 없는 동작이 발생할 수 있습니다.

참고

사용자 그룹에 멤버를 추가하고 나면 업데이트에 Identity Management 환경의 모든 클라이언트에 분배하는 데 다소 시간이 걸릴 수 있습니다. 이는 지정된 호스트에서 사용자, 그룹 및 넷 그룹을 확인할 때 먼저 SSSD(System Security Services Daemon )에서 캐시를 살펴보고 서버 조회를 누락되거나 만료된 레코드에 대해서만 수행하기 때문입니다.

13.7. 사용자 개인 그룹없이 사용자 추가

기본적으로 IdM은 새 사용자가 IdM에 생성될 때마다 사용자 개인 그룹(UPG)을 생성합니다. UPG는 특정 그룹 유형입니다.

  • UPG의 이름은 새로 생성된 사용자와 동일합니다.
  • 사용자는 UPG의 유일한 멤버입니다. UPG는 다른 멤버를 포함할 수 없습니다.
  • 개인 그룹의 GID는 사용자의 UID와 일치합니다.

그러나 UPG를 생성하지 않고 사용자를 추가할 수 있습니다.

13.7.1. 사용자 개인 그룹이 없는 사용자

NIS 그룹 또는 다른 시스템 그룹이 사용자 개인 그룹에 할당되는 GID를 이미 사용하는 경우 UPG를 생성하지 않아야 합니다.

다음 두 가지 방법으로 이 작업을 수행할 수 있습니다.

두 경우 모두 IdM은 새 사용자를 추가할 때 GID를 지정해야 합니다. 그렇지 않으면 작업이 실패합니다. IdM에는 새 사용자에 대한 GID가 필요하지만 기본 사용자 그룹 ipausers 는 POSTIX 그룹이 아니므로 GID가 연결되어 있지 않기 때문입니다. 지정한 GID는 기존 그룹에 해당하지 않아도 됩니다.

참고

GID를 지정해도 새 그룹이 생성되지 않습니다. IdM에서 속성이 필요하므로 새 사용자의 GID 속성만 설정합니다.

13.7.2. 개인 그룹이 전역적으로 활성화된 경우 사용자 개인 그룹이 없는 사용자 추가

UPG(사용자 개인 그룹)를 시스템에서 활성화된 경우에도 사용자를 만들 수 있습니다. 이를 위해서는 새 사용자에 대한 GID를 수동으로 설정해야 합니다. 이 기능이 필요한 이유에 대한 자세한 내용은 13.7.1절. “사용자 개인 그룹이 없는 사용자” 을 참조하십시오.

절차

  • IdM이 UPG를 생성하지 못하도록 하려면 ipa user-add 명령에 --noprivate 옵션을 추가합니다.

    명령이 성공하려면 사용자 지정 GID를 지정해야 합니다. 예를 들어 GID가 10000인 새 사용자를 추가하려면 다음을 수행합니다.

    $ ipa user-add jsmith --first=John --last=Smith --noprivate --gid 10000

13.7.3. 모든 사용자에 대해 사용자 개인 그룹 전역 비활성화

사용자 개인 그룹(UPG)을 전역적으로 비활성화할 수 있습니다. 이로 인해 모든 새 사용자에 대한 UPG가 생성되지 않습니다. 기존 사용자는 이 변경의 영향을 받지 않습니다.

절차

  1. 관리자 권한을 얻습니다.

    $ kinit admin
  2. IdM은 Directory Server Managed Entries 플러그인을 사용하여 UPG를 관리합니다. 플러그인 인스턴스를 나열합니다.

    $ ipa-managed-entries --list
  3. IdM이 UPG를 생성하지 않도록 하려면 사용자 개인 그룹 관리를 담당하는 플러그인 인스턴스를 비활성화합니다.

    $ ipa-managed-entries -e "UPG Definition" disable
    Disabling Plugin
    참고

    나중에 UPG 정의 인스턴스를 다시 활성화하려면 ipa-managed-entries -e "UPG Definition" enable 명령을 사용합니다.

  4. Directory Server를 다시 시작하여 새 구성을 로드합니다.

    $ sudo systemctl restart dirsrv.target

    UPG를 비활성화한 다음 사용자를 추가하려면 GID를 지정해야 합니다. 자세한 내용은 사용자 개인 그룹이 전역적으로 비활성화된 경우 사용자 추가를 참조하십시오.

검증 단계

  • UPG가 전역적으로 비활성화되어 있는지 확인하려면 disable 명령을 다시 사용합니다.

    $ ipa-managed-entries -e "UPG Definition" disable
    Plugin already disabled

13.7.4. 사용자 개인 그룹이 전역적으로 비활성화된 경우 사용자 추가

사용자 개인 그룹(UPG)이 전역적으로 비활성화되면 IdM에서 새 사용자에게 GID를 자동으로 할당하지 않습니다. 사용자를 성공적으로 추가하려면 수동으로 또는 automember 규칙을 사용하여 GID를 할당해야 합니다. 이 기능이 필요한 이유에 대한 자세한 내용은 13.7.1절. “사용자 개인 그룹이 없는 사용자” 를 참조하십시오.

전제 조건

절차

  • UPG를 생성할 때 새 사용자를 추가하는 것이 성공했는지 확인하려면 다음 중 하나를 선택하십시오.

    • 새 사용자를 추가할 때 사용자 지정 GID를 지정합니다. GID는 기존 사용자 그룹에 해당하지 않아도 됩니다.

      예를 들어 명령줄에서 사용자를 추가하는 경우 ipa user-add 명령에 --gid 옵션을 추가합니다.

    • automember 규칙을 사용하여 GID가 있는 기존 그룹에 사용자를 추가합니다.

13.8. IdM CLI를 사용하여 IdM 사용자 그룹에 멤버 관리자로 사용자 또는 그룹 추가

이 섹션에서는 IdM CLI를 사용하여 사용자 또는 그룹을 IdM 사용자 그룹에 구성원 관리자로 추가하는 방법에 대해 설명합니다. 멤버 관리자는 IdM 사용자 그룹에 사용자 또는 그룹을 추가할 수 있지만 그룹의 특성을 변경할 수는 없습니다.

사전 요구 사항

  • 관리자로 로그인해야 합니다. 자세한 내용은 Using kinit to log in IdM에서 수동으로 참조하십시오.
  • 멤버 관리자로 추가하려는 사용자 또는 그룹의 이름과 관리하려는 그룹의 이름이 있어야 합니다.

절차

  • ipa group-add-member-manager 명령을 사용하여 사용자를 IdM 사용자 그룹에 멤버 관리자로 추가합니다.

    예를 들어 사용자 testgroup_a 의 멤버 관리자로 추가하려면 다음을 수행합니다.

    $ ipa group-add-member-manager group_a --users=test
    Group name: group_a
    GID: 1133400009
    Membership managed by users: test
    -------------------------
    Number of members added 1
    -------------------------

    사용자 테스트는 이제 group_a 의 멤버를 관리할 수 있습니다.

  • ipa group-add-member-manager 명령을 사용하여 그룹을 IdM 사용자 그룹에 멤버 관리자로 추가합니다.

    예를 들어 group _admins 그룹을 group_ a 의 멤버 관리자로 추가하려면 :

    $ ipa group-add-member-manager group_a --groups=group_admins
    Group name: group_a
    GID: 1133400009
    Membership managed by groups: group_admins
    Membership managed by users: test
    -------------------------
    Number of members added 1
    -------------------------

    group_admins 그룹이 이제 group_a 의 멤버를 관리할 수 있습니다.

참고

사용자 그룹에 멤버 관리자를 추가한 후 업데이트에 Identity Management 환경의 모든 클라이언트에 분배하는 데 다소 시간이 걸릴 수 있습니다.

검증 단계

  • ipa group-show 명령을 사용하여 사용자와 그룹이 멤버 관리자로 추가되었는지 확인합니다.

    $ ipa group-show group_a
    Group name: group_a
    GID: 1133400009
    Membership managed by groups: group_admins
    Membership managed by users: test

추가 리소스

  • 자세한 내용은 ipa group-add-member-manager --help 를 참조하십시오.

13.9. IdM CLI를 사용하여 그룹 멤버 보기

이 섹션에서는 IdM CLI를 사용하여 그룹의 구성원을 보는 방법을 설명합니다. 직접 및 간접 그룹 구성원을 모두 볼 수 있습니다. 자세한 내용은 직접 및 간접 그룹 구성원을 참조하십시오.

절차:

  • 그룹의 구성원을 나열하려면 ipa group-show group_name 명령을 사용합니다. 예를 들면 다음과 같습니다.

    $ ipa group-show group_a
      ...
      Member users: user_a
      Member groups: group_b
      Indirect Member users: user_b
    참고

    간접 구성원 목록에는 신뢰할 수 있는 Active Directory 도메인의 외부 사용자가 포함되지 않습니다. Active Directory 신뢰 사용자 오브젝트는 Identity Management 내에 LDAP 오브젝트로 존재하지 않기 때문에 ID 관리 인터페이스에 표시되지 않습니다.

13.10. IdM CLI를 사용하여 사용자 그룹에서 멤버 제거

이 섹션에서는 IdM CLI를 사용하여 사용자 그룹에서 멤버를 제거하는 방법을 설명합니다.

사전 요구 사항

절차

  1. 선택 사항: ipa group-show 명령을 사용하여 그룹에 제거할 멤버가 포함되어 있는지 확인합니다.
  2. ipa group-remove-member 명령을 사용하여 사용자 그룹에서 멤버를 제거합니다.

    다음 옵션을 사용하여 제거할 멤버를 지정합니다.

    • --users 는 IdM 사용자를 제거합니다
    • --external 은 pamAIN \user_name 또는 user_name@domain 형식으로 IdM 도메인 외부에 있는 사용자를 제거합니다.
    • --groups 는 IdM 사용자 그룹을 제거합니다

    예를 들어 group _name 이라는 그룹에서 user1, user2group1 을 제거하려면 다음을 수행합니다.

    $ ipa group-remove-member group_name --users=user1 --users=user2 --groups=group1

13.11. IdM CLI를 사용하여 IdM 사용자 그룹에서 사용자 또는 그룹을 구성원 관리자로 제거

이 섹션에서는 IdM CLI를 사용하여 IdM 사용자 그룹에서 사용자 또는 그룹을 멤버 관리자로 제거하는 방법을 설명합니다. 멤버 관리자는 IdM 사용자 그룹에서 사용자 또는 그룹을 제거할 수 있지만 그룹의 특성을 변경할 수는 없습니다.

사전 요구 사항

  • 관리자로 로그인해야 합니다. 자세한 내용은 Using kinit to log in IdM에서 수동으로 참조하십시오.
  • 제거 중인 기존 멤버 관리자 사용자 또는 그룹의 이름과 관리 중인 그룹의 이름이 있어야 합니다.

절차

  • ipa group-remove-member-manager 명령을 사용하여 IdM 사용자 그룹의 멤버 관리자로 사용자를 제거합니다.

    예를 들어 user testgroup_a 의 멤버 관리자로 제거하려면 다음을 수행합니다.

    $ ipa group-remove-member-manager group_a --users=test
    Group name: group_a
    GID: 1133400009
    Membership managed by groups: group_admins
    ---------------------------
    Number of members removed 1
    ---------------------------

    사용자 테스트는 더 이상 group_a 의 구성원을 관리할 수 없습니다.

  • ipa group-remove-member-manager 명령을 사용하여 IdM 사용자 그룹의 멤버 관리자로 그룹을 제거합니다.

    예를 들어 group _admins 그룹을 group_ a 의 멤버 관리자로 제거하려면 다음을 수행합니다.

    $ ipa group-remove-member-manager group_a --groups=group_admins
    Group name: group_a
    GID: 1133400009
    ---------------------------
    Number of members removed 1
    ---------------------------

    그룹 group_admins는 더 이상 group_a 의 구성원을 관리할 수 없습니다.

참고

사용자 그룹에서 멤버 관리자를 제거한 후 업데이트에 Identity Management 환경의 모든 클라이언트에 분배하는 데 다소 시간이 걸릴 수 있습니다.

검증 단계

  • ipa group-show 명령을 사용하여 사용자와 그룹이 멤버 관리자로 제거되었는지 확인합니다.

    $ ipa group-show group_a
    Group name: group_a
    GID: 1133400009

추가 리소스

  • 자세한 내용은 ipa group-remove-member-manager --help 를 참조하십시오.

14장. IdM 웹 UI에서 사용자 그룹 관리

이 장에서는 IdM 웹 UI를 사용한 사용자 그룹 관리에 대해 소개합니다.

사용자 그룹은 공통 권한, 암호 정책 및 기타 특성을 가진 사용자 집합입니다.

IdM(Identity Management)의 사용자 그룹은 다음을 포함할 수 있습니다.

  • IdM 사용자
  • 기타 IdM 사용자 그룹
  • 외부 사용자 - IdM 외부에 존재하는 사용자

14.1. IdM의 다양한 그룹 유형

IdM은 다음과 같은 유형의 그룹을 지원합니다.

POSIX 그룹(기본값)

POSIX 그룹은 구성원에 대해 Linux POSIX 특성을 지원합니다. Active Directory와 상호 작용하는 그룹은 POSIX 특성을 사용할 수 없습니다.

POSIX 속성은 사용자를 별도의 엔터티로 식별합니다. 사용자와 관련된 POSIX 속성의 예로는 사용자 번호(UID)인 uidNumber 와 그룹 번호(GID)인 gidNumber 가 있습니다.

postIX 이외의 그룹

POST 이외의 그룹은 POSIX 특성을 지원하지 않습니다. 예를 들어, 이러한 그룹에는 GID가 정의되어 있지 않습니다.

이 유형의 그룹의 모든 멤버는 IdM 도메인에 속해야 합니다.

외부 그룹

외부 그룹을 사용하여 IdM 도메인 외부의 ID 저장소에 있는 그룹 구성원을 추가합니다(예:).

  • 로컬 시스템
  • Active Directory 도메인
  • 디렉터리 서비스

외부 그룹은 POSIX 특성을 지원하지 않습니다. 예를 들어, 이러한 그룹에는 GID가 정의되어 있지 않습니다.

표 14.1. 기본적으로 생성된 사용자 그룹

그룹 이름기본 그룹 멤버

ipausers

모든 IdM 사용자

admins

기본 admin 사용자를 포함하여 관리 권한이 있는 사용자

편집기

이는 더 이상 특수 권한이 없는 레거시 그룹입니다.

신뢰 관리자

Active Directory 신뢰 관리를 위한 권한이 있는 사용자

사용자를 사용자 그룹에 추가하면 사용자에게 그룹과 관련된 권한 및 정책이 부여됩니다. 예를 들어 사용자에게 관리 권한을 부여하려면 사용자를 admins 그룹에 추가합니다.

주의

admins 그룹을 삭제하지 마십시오. admins 는 IdM에 필요한 사전 정의된 그룹이므로 이 작업으로 인해 특정 명령에 문제가 발생합니다.

또한 IdM에서 새 사용자가 생성될 때마다 IdM은 기본적으로 사용자 개인 그룹을 생성합니다. 개인 그룹에 대한 자세한 내용은 개인 그룹 없이 사용자 추가를 참조하십시오.

14.2. 직접 및 간접 그룹 구성원

IdM의 사용자 그룹 속성은 직접 및 간접 구성원 모두에 적용됩니다. B 그룹이 A 그룹의 구성원이면 B 그룹의 모든 사용자는 A 그룹의 간접 구성원으로 간주됩니다.

예를 들어 다음 다이어그램에서 다음을 수행합니다.

  • User 1 및 User 2는 A 그룹의 직접 구성원입니다.
  • User 3, User 4 및 User 5는 A 그룹의 간접 구성원입니다.

그림 14.1. 직접 및 간접 그룹 멤버십

그룹 A(사용자 2명) 및 그룹 B(사용자 3명 포함)가 포함된 차트. B 그룹은 A 그룹에 중첩되어 있으므로 A 그룹에는 총 5명의 사용자가 포함됩니다.

사용자 그룹 A에 대한 암호 정책을 설정하면 이 정책은 사용자 그룹 B의 모든 사용자에게도 적용됩니다.

14.3. IdM 웹 UI를 사용하여 사용자 그룹 추가

이 섹션에서는 IdM 웹 UI를 사용하여 사용자 그룹을 추가하는 방법에 대해 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.

절차

  1. ID → 그룹을 클릭하고 왼쪽 사이드바 에서 사용자 그룹을 선택합니다.
  2. Add(추가) 를 클릭하여 그룹 추가를 시작합니다.
  3. 그룹에 대한 정보를 입력합니다. 사용자 그룹 유형에 대한 자세한 내용은 IdM의 다양한 그룹 유형에서 참조하십시오.

    그룹에 대한 사용자 지정 GID를 지정할 수 있습니다. 이 작업을 수행하는 경우 ID 충돌을 피하십시오. 사용자 지정 GID를 지정하지 않으면 IdM에서 사용 가능한 ID 범위에서 GID를 자동으로 할당합니다.

    다음 필드가 있는 "Add user group" 팝업 창의 스크린샷: 그룹 이름(필수 필드) - Description - Group Type - GID. "추가" 버튼이 맨 아래에 있습니다.
  4. Add(추가) 를 클릭하여 확인합니다.

14.4. IdM 웹 UI를 사용하여 사용자 그룹 삭제

이 섹션에서는 IdM 웹 UI를 사용하여 사용자 그룹을 삭제하는 방법을 설명합니다. 그룹을 삭제해도 IdM에서 그룹 구성원이 삭제되지 않습니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.

절차

  1. ID → 그룹을 클릭하고 사용자 그룹을 선택합니다.
  2. 삭제할 그룹을 선택합니다.
  3. 삭제를 클릭합니다.
  4. Delete(삭제) 를 클릭하여 확인합니다.

14.5. IdM 웹 UI를 사용하여 사용자 그룹에 멤버 추가

사용자 및 사용자 그룹을 사용자 그룹의 멤버로 추가할 수 있습니다. 자세한 내용은 IdM 및 직접 및 간접 그룹 구성원의 다양한 그룹 유형을 참조하십시오.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.

절차

  1. ID → 그룹을 클릭하고 왼쪽 사이드바 에서 사용자 그룹을 선택합니다.
  2. 그룹의 이름을 클릭합니다.
  3. 추가할 그룹 구성원 유형을 선택합니다. 사용자, 사용자 그룹 또는 외부.

    추가할 수 있는 그룹 구성원의 세 가지 범주에 대한 세 개의 버튼을 강조 표시하는 "User Group" 페이지의 스크린샷입니다. "사용자" - "사용자 그룹" - "외부 사용자".
  4. 추가를 클릭합니다.
  5. 추가할 구성원 하나 이상 옆에 있는 확인란을 선택합니다.
  6. 오른쪽 화살표를 클릭하여 선택한 구성원을 그룹으로 이동합니다.

    확인할 수 있는 "사용 가능한 사용자" 로그인이 왼쪽에 있는 열이 있는 "사용자 그룹 group_a" 팝업 창에 "사용자 추가" 팝업 창의 스크린샷입니다. 오른쪽의 "프로스펙티브(Prospective)" 목록에 사용자를 추가하려면 클릭할 수 있는 오른쪽 화살표가 있습니다.
  7. Add(추가) 를 클릭하여 확인합니다.

14.6. 웹 UI를 사용하여 IdM 사용자 그룹에 멤버 관리자로 사용자 또는 그룹 추가

이 섹션에서는 웹 UI를 사용하여 IdM 사용자 그룹에 구성원 관리자로 사용자 또는 그룹을 추가하는 방법에 대해 설명합니다. 멤버 관리자는 IdM 사용자 그룹에 사용자 또는 그룹을 추가할 수 있지만 그룹의 특성을 변경할 수는 없습니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • 멤버 관리자로 추가하려는 사용자 또는 그룹의 이름과 관리하려는 그룹의 이름이 있어야 합니다.

절차

  1. ID → 그룹을 클릭하고 왼쪽 사이드바 에서 사용자 그룹을 선택합니다.
  2. 그룹의 이름을 클릭합니다.
  3. 추가할 그룹 멤버 관리자 유형을 선택합니다. 사용자 또는 사용자 그룹.

    그룹 추가 멤버 관리자
  4. 추가를 클릭합니다.
  5. 추가할 구성원 하나 이상 옆에 있는 확인란을 선택합니다.
  6. 오른쪽 화살표를 클릭하여 선택한 구성원을 그룹으로 이동합니다.

    멤버 관리자 추가 사용자
  7. Add(추가) 를 클릭하여 확인합니다.
참고

사용자 그룹에 멤버 관리자를 추가한 후 업데이트에 Identity Management 환경의 모든 클라이언트에 분배하는 데 다소 시간이 걸릴 수 있습니다.

검증 단계

  • 새로 추가된 사용자 또는 사용자 그룹이 사용자 또는 사용자 그룹의 멤버 관리자 목록에 추가되었는지 확인합니다.

    그룹 멤버 관리자 추가

추가 리소스

  • 자세한 내용은 ipa group-add-member-manager --help 를 참조하십시오.

14.7. IdM 웹 UI를 사용하여 그룹 구성원 보기

이 섹션에서는 IdM 웹 UI를 사용하여 그룹의 구성원을 보는 방법을 설명합니다. 직접 및 간접 그룹 구성원을 모두 볼 수 있습니다. 자세한 내용은 직접 및 간접 그룹 구성원을 참조하십시오.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.

절차

  1. ID → 그룹을 선택합니다.
  2. 왼쪽 사이드바에서 User Groups 를 선택합니다.
  3. 보려는 그룹의 이름을 클릭합니다.
  4. Direct MembershipIndirect Membership 간에 전환합니다.

    "실패 표시" 옆의 "Direct Membership(직접 멤버십)" 및 "Indirect Membership(비디렉션)" 옵션 옆에 있는 RAIDial 버튼을 보여주는 스크린샷입니다.

14.8. IdM 웹 UI를 사용하여 사용자 그룹에서 멤버 제거

이 섹션에서는 IdM 웹 UI를 사용하여 사용자 그룹에서 멤버를 제거하는 방법을 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.

절차

  1. ID → 그룹을 클릭하고 왼쪽 사이드바 에서 사용자 그룹을 선택합니다.
  2. 그룹의 이름을 클릭합니다.
  3. 삭제할 그룹 구성원 유형을 선택합니다. 사용자, 사용자 그룹 또는 외부.

    추가할 수 있는 그룹 구성원의 세 가지 범주에 대한 세 개의 버튼을 강조 표시하는 "User Group" 페이지의 스크린샷입니다. "사용자" - "사용자 그룹" - "외부 사용자".
  4. 제거할 멤버 옆에 있는 확인란을 선택합니다.
  5. 삭제를 클릭합니다.
  6. Delete(삭제) 를 클릭하여 확인합니다.

14.9. Web UI를 사용하여 IdM 사용자 그룹에서 멤버 관리자로 사용자 또는 그룹 제거

이 섹션에서는 웹 UI를 사용하여 IdM 사용자 그룹에서 사용자 또는 그룹을 멤버 관리자로 제거하는 방법을 설명합니다. 멤버 관리자는 IdM 사용자 그룹에서 사용자 또는 그룹을 제거할 수 있지만 그룹의 특성을 변경할 수는 없습니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • 제거 중인 기존 멤버 관리자 사용자 또는 그룹의 이름과 관리 중인 그룹의 이름이 있어야 합니다.

절차

  1. ID → 그룹을 클릭하고 왼쪽 사이드바 에서 사용자 그룹을 선택합니다.
  2. 그룹의 이름을 클릭합니다.
  3. 삭제할 멤버 관리자 유형을 선택합니다. 사용자 또는 사용자 그룹.

    그룹 추가 멤버 관리자
  4. 제거할 멤버 관리자 옆의 확인란을 선택합니다.
  5. 삭제를 클릭합니다.
  6. Delete(삭제) 를 클릭하여 확인합니다.
참고

사용자 그룹에서 멤버 관리자를 제거한 후 업데이트에 Identity Management 환경의 모든 클라이언트에 분배하는 데 다소 시간이 걸릴 수 있습니다.

검증 단계

  • 사용자 또는 사용자 그룹의 멤버 관리자 목록에서 사용자 또는 사용자 그룹이 제거되었는지 확인합니다.

    그룹 멤버 관리자 제거

추가 리소스

  • 자세한 내용은 ipa group-add-member-manager --help 를 참조하십시오.

15장. Ansible 플레이북을 사용하여 사용자 그룹 관리

이 섹션에서는 Ansible 플레이북을 사용하여 사용자 그룹 관리를 소개합니다.

사용자 그룹은 공통 권한, 암호 정책 및 기타 특성을 가진 사용자 집합입니다.

IdM(Identity Management)의 사용자 그룹은 다음을 포함할 수 있습니다.

  • IdM 사용자
  • 기타 IdM 사용자 그룹
  • 외부 사용자 - IdM 외부에 존재하는 사용자

섹션에는 다음 항목이 포함되어 있습니다.

15.1. IdM의 다양한 그룹 유형

IdM은 다음과 같은 유형의 그룹을 지원합니다.

POSIX 그룹(기본값)

POSIX 그룹은 구성원에 대해 Linux POSIX 특성을 지원합니다. Active Directory와 상호 작용하는 그룹은 POSIX 특성을 사용할 수 없습니다.

POSIX 속성은 사용자를 별도의 엔터티로 식별합니다. 사용자와 관련된 POSIX 속성의 예로는 사용자 번호(UID)인 uidNumber 와 그룹 번호(GID)인 gidNumber 가 있습니다.

postIX 이외의 그룹

POST 이외의 그룹은 POSIX 특성을 지원하지 않습니다. 예를 들어, 이러한 그룹에는 GID가 정의되어 있지 않습니다.

이 유형의 그룹의 모든 멤버는 IdM 도메인에 속해야 합니다.

외부 그룹

외부 그룹을 사용하여 IdM 도메인 외부의 ID 저장소에 있는 그룹 구성원을 추가합니다(예:).

  • 로컬 시스템
  • Active Directory 도메인
  • 디렉터리 서비스

외부 그룹은 POSIX 특성을 지원하지 않습니다. 예를 들어, 이러한 그룹에는 GID가 정의되어 있지 않습니다.

표 15.1. 기본적으로 생성된 사용자 그룹

그룹 이름기본 그룹 멤버

ipausers

모든 IdM 사용자

admins

기본 admin 사용자를 포함하여 관리 권한이 있는 사용자

편집기

이는 더 이상 특수 권한이 없는 레거시 그룹입니다.

신뢰 관리자

Active Directory 신뢰 관리를 위한 권한이 있는 사용자

사용자를 사용자 그룹에 추가하면 사용자에게 그룹과 관련된 권한 및 정책이 부여됩니다. 예를 들어 사용자에게 관리 권한을 부여하려면 사용자를 admins 그룹에 추가합니다.

주의

admins 그룹을 삭제하지 마십시오. admins 는 IdM에 필요한 사전 정의된 그룹이므로 이 작업으로 인해 특정 명령에 문제가 발생합니다.

또한 IdM에서 새 사용자가 생성될 때마다 IdM은 기본적으로 사용자 개인 그룹을 생성합니다. 개인 그룹에 대한 자세한 내용은 개인 그룹 없이 사용자 추가를 참조하십시오.

15.2. 직접 및 간접 그룹 구성원

IdM의 사용자 그룹 속성은 직접 및 간접 구성원 모두에 적용됩니다. B 그룹이 A 그룹의 구성원이면 B 그룹의 모든 사용자는 A 그룹의 간접 구성원으로 간주됩니다.

예를 들어 다음 다이어그램에서 다음을 수행합니다.

  • User 1 및 User 2는 A 그룹의 직접 구성원입니다.
  • User 3, User 4 및 User 5는 A 그룹의 간접 구성원입니다.

그림 15.1. 직접 및 간접 그룹 멤버십

그룹 A(사용자 2명) 및 그룹 B(사용자 3명 포함)가 포함된 차트. B 그룹은 A 그룹에 중첩되어 있으므로 A 그룹에는 총 5명의 사용자가 포함됩니다.

사용자 그룹 A에 대한 암호 정책을 설정하면 이 정책은 사용자 그룹 B의 모든 사용자에게도 적용됩니다.

15.3. Ansible Playbook을 사용하여 IdM 그룹 및 그룹 구성원이 있는지 확인

다음 절차에서는 사용자 및 사용자 그룹 모두 Ansible 플레이북을 사용하여 IdM 그룹 및 그룹 구성원이 있는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.
  • Ansible 플레이북에서 참조하려는 사용자는 IdM에 있습니다. Ansible을 사용하여 사용자가 있는지 확인하는 방법에 대한 자세한 내용은 Ansible 플레이북을 사용하여 사용자 계정 관리를 참조하십시오.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. 필요한 사용자 및 그룹 정보를 사용하여 Ansible 플레이북 파일을 생성합니다.

    ---
    - name: Playbook to handle groups
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Create group ops with gid 1234
        ipagroup:
          ipaadmin_password: MySecret123
          name: ops
          gidnumber: 1234
    
      - name: Create group sysops
        ipagroup:
          ipaadmin_password: MySecret123
          name: sysops
          user:
          - idm_user
    
      - name: Create group appops
        ipagroup:
          ipaadmin_password: MySecret123
          name: appops
    
      - name: Add group members sysops and appops to group ops
        ipagroup:
          ipaadmin_password: MySecret123
          name: ops
          group:
          - sysops
          - appops
  3. 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-group-members.yml

검증 단계

ipa group-show 명령을 사용하여 ops 그룹에 sysopsappops 가 직접 멤버로 포함되고 idm_user 가 간접 구성원으로 포함되어 있는지 확인할 수 있습니다.

  1. 관리자로 ipaserver 에 로그인합니다.

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. ops 에 대한 정보를 표시합니다 :

    ipaserver]$ ipa group-show ops
      Group name: ops
      GID: 1234
      Member groups: sysops, appops
      Indirect Member users: idm_user

    appopssysops 그룹 - idm_user 사용자를 포함하는 후자는 IdM에 있습니다.

추가 리소스

  • Ansible을 사용하여 사용자 그룹이 있는지 확인하는 방법에 대한 자세한 내용은 /usr/share/doc/ansible-freeipa/README-group.md Markdown 파일을 참조하십시오.

15.4. Ansible Playbook을 사용하여 IdM 사용자 그룹에 멤버 관리자가 있는지 확인

다음 절차에서는 Ansible 플레이북을 사용하여 사용자 및 사용자 그룹 모두 IdM 멤버 관리자가 있는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.
  • 멤버 관리자로 추가하려는 사용자 또는 그룹의 이름과 관리하려는 그룹의 이름이 있어야 합니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. 필요한 사용자 및 그룹 구성원 관리 정보를 사용하여 Ansible 플레이북 파일을 생성합니다.

    ---
    - name: Playbook to handle membership management
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure user test is present for group_a
        ipagroup:
          ipaadmin_password: MySecret123
          name: group_a
          membermanager_user: test
    
      - name: Ensure group_admins is present for group_a
        ipagroup:
          ipaadmin_password: MySecret123
          name: group_a
          membermanager_group: group_admins
  3. 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-member-managers-user-groups.yml

검증 단계

ipa group-show 명령을 사용하여 group_a 그룹에 test 가 구성원 관리자로 포함되어 있고 group_adminsgroup_a 의 멤버 관리자인지 확인할 수 있습니다.

  1. 관리자로 ipaserver 에 로그인합니다.

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. managergroup1 에 대한 정보 표시 :

    ipaserver]$ ipa group-show group_a
      Group name: group_a
      GID: 1133400009
      Membership managed by groups: group_admins
      Membership managed by users: test

추가 리소스

  • ipa host-add-member-manager --help를 참조하십시오.
  • ipa 도움말 페이지를 참조하십시오.

15.5. Ansible Playbook을 사용하여 IdM 사용자 그룹에 멤버 관리자가 없는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM 멤버 관리자(사용자 및 사용자 그룹 모두)가 없는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • Ansible 컨트롤러에 ansible-freeipa 패키지를 설치했습니다.
  • 제거 중인 기존 멤버 관리자 사용자 또는 그룹의 이름과 관리 중인 그룹의 이름이 있어야 합니다.

절차

  1. 인벤토리 파일(예: inventory.file )을 생성하고 여기에 ipaserver 를 정의합니다.

    [ipaserver]
    server.idm.example.com
  2. 필요한 사용자 및 그룹 구성원 관리 정보를 사용하여 Ansible 플레이북 파일을 생성합니다.

    ---
    - name: Playbook to handle membership management
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure member manager user and group members are absent for group_a
        ipagroup:
          ipaadmin_password: MySecret123
          name: group_a
          membermanager_user: test
          membermanager_group: group_admins
          action: member
          state: absent
  3. 플레이북을 실행합니다.

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-member-managers-are-absent.yml

검증 단계

ipa group-show 명령을 사용하여 group_a 그룹에 test 가 구성원 관리자로 포함되어 있지 않은지, group_adminsgroup_a 의 멤버 관리자로 포함되어 있지 않은지 확인할 수 있습니다.

  1. 관리자로 ipaserver 에 로그인합니다.

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. group_a에 대한 정보를 표시합니다.

    ipaserver]$ ipa group-show group_a
      Group name: group_a
      GID: 1133400009

추가 리소스

  • ipa host-remove-member-manager --help를 참조하십시오.
  • ipa 도움말 페이지를 참조하십시오.

16장. IdM CLI를 사용하여 그룹 멤버십 자동화

자동 그룹 멤버십을 사용하면 속성에 따라 자동으로 사용자와 호스트를 그룹에 할당할 수 있습니다. 예를 들면 다음을 수행할 수 있습니다.

  • 직원 관리자, 위치 또는 기타 특성에 따라 직원의 사용자 항목을 그룹으로 나눕니다.
  • 클래스, 위치 또는 기타 특성을 기반으로 호스트를 나눕니다.
  • 모든 사용자 또는 모든 호스트를 하나의 글로벌 그룹에 추가합니다.

이 장에서는 다음 주제를 다룹니다.

16.1. 자동 그룹 멤버십의 이점

사용자에 대한 자동 멤버십을 사용하면 다음을 수행할 수 있습니다.

  • 그룹 멤버십을 수동으로 관리하는 오버헤드 감소

    더 이상 모든 사용자와 호스트를 수동으로 그룹에 할당할 필요가 없습니다.

  • 사용자 및 호스트 관리의 일관성 개선

    사용자와 호스트는 엄격하게 정의되고 자동으로 평가된 기준에 따라 그룹에 할당됩니다.

  • 그룹 기반 설정 관리 간소화

    그룹에 대해 다양한 설정이 정의되고 개별 그룹 구성원에 적용됩니다(예: sudo 규칙, 자동 마운트 또는 액세스 제어). 사용자와 호스트를 그룹에 추가하면 이러한 설정을 자동으로 관리하기가 쉬워집니다.

16.2. 자동 구성원 규칙

자동 그룹 멤버십을 구성할 때 관리자는 automember 규칙을 정의합니다. automember 규칙은 특정 사용자 또는 호스트 대상 그룹에 적용됩니다. 한 번에 둘 이상의 그룹에 적용할 수 없습니다.

규칙을 생성한 후에는 관리자가 조건을 추가합니다. 대상 그룹에서 포함하거나 제외되는 사용자 또는 호스트를 지정합니다.

  • 포함 조건

    사용자 또는 호스트 항목이 포함 조건을 충족하면 대상 그룹에 포함됩니다.

  • 배타적 조건

    사용자 또는 호스트 항목이 독점 조건을 충족하면 대상 그룹에 포함되지 않습니다.

조건은 Perl 호환 정규 표현식(PCRE) 형식으로 정규 표현식으로 지정됩니다. PCRE에 대한 자세한 내용은 pcresyntax(3) 도움말 페이지를 참조하십시오.

참고

IdM은 포함 조건보다 먼저 배타적 조건을 평가합니다. 충돌이 발생하는 경우 독점 조건이 포함된 조건보다 우선합니다.

automember 규칙은 향후 생성된 모든 항목에 적용됩니다. 이러한 항목은 지정된 대상 그룹에 자동으로 추가됩니다. 항목이 여러 automember 규칙에 지정된 조건을 충족하면 모든 해당 그룹에 추가됩니다.

기존 항목은 새 규칙의 영향을 받지 않습니다. 기존 항목을 변경하려면 IdM CLI를 사용하여 기존 항목에 자동 구성원 규칙 적용을 참조하십시오.

16.3. IdM CLI를 사용하여 자동 구성원 규칙 추가

이 섹션에서는 IdM CLI를 사용하여 자동 구성원 규칙을 추가하는 방법에 대해 설명합니다. 자동 구성원 규칙에 대한 자세한 내용은 Automember rules 을 참조하십시오.

automember 규칙을 추가한 후에는 automember 규칙에 조건 추가에 설명된 절차를 사용하여 조건을 추가할 수 있습니다.

참고

기존 항목은 새 규칙의 영향을 받지 않습니다. 기존 항목을 변경하려면 IdM CLI를 사용하여 기존 항목에 자동 구성원 규칙 적용을 참조하십시오.

사전 요구 사항

절차

  1. ipa automember-add 명령을 입력하여 automember 규칙을 추가합니다.
  2. 메시지가 표시되면 다음을 지정합니다.

    • 자동 구성원 규칙. 대상 그룹 이름입니다.
    • 그룹화 유형. 이는 규칙에서 사용자 그룹을 대상으로 하는지 또는 호스트 그룹을 대상으로 하는지 여부를 지정합니다. 사용자 그룹을 대상으로 지정하려면 그룹을 입력합니다. 호스트 그룹을 대상으로 지정하려면 hostgroup 을 입력합니다.

    예를 들어 user_group 이라는 사용자 그룹에 대한 자동 구성원 규칙을 추가하려면 다음을 수행합니다.

    $ ipa automember-add
    Automember Rule: user_group
    Grouping Type: group
    --------------------------------
    Added automember rule "user_group"
    --------------------------------
        Automember Rule: user_group

16.4. IdM CLI를 사용하여 자동 구성원 규칙에 조건 추가

이 섹션에서는 IdM CLI를 사용하여 automember 규칙에 조건을 추가하는 방법을 설명합니다. 자동 구성원 규칙에 대한 자세한 내용은 Automember rules 을 참조하십시오.

사전 요구 사항

절차

  1. ipa automember-add-condition 명령을 사용하여 하나 이상의 포함 또는 독점적 조건을 정의합니다.
  2. 메시지가 표시되면 다음을 지정합니다.

    • 자동 구성원 규칙. 대상 규칙 이름입니다. 자세한 내용은 자동 구성원 규칙을 참조하십시오.
    • 특성 키. 이는 필터를 적용할 항목 속성을 지정합니다. 예를 들어 사용자를 위한 uid.
    • 그룹화 유형. 이는 규칙에서 사용자 그룹을 대상으로 하는지 또는 호스트 그룹을 대상으로 하는지 여부를 지정합니다. 사용자 그룹을 대상으로 지정하려면 그룹을 입력합니다. 호스트 그룹을 대상으로 지정하려면 hostgroup 을 입력합니다.
    • 포함 정규식배타적 정규식. 이러한 조건은 하나 이상의 조건을 정규 표현식으로 지정합니다. 하나의 조건만 지정하려면 다른 조건을 입력하라는 메시지가 표시되면 Enter 키를 누릅니다.

    예를 들어 다음 조건은 사용자 로그인 특성(uid)에서 임의의 값(.*)을 가진 모든 사용자를 대상으로합니다.

    $ ipa automember-add-condition
    Automember Rule: user_group
    Attribute Key: uid
    Grouping Type: group
    [Inclusive Regex]: .*
    [Exclusive Regex]:
    ----------------------------------
    Added condition(s) to "user_group"
    ----------------------------------
      Automember Rule: user_group
      Inclusive Regex: uid=.*
    ----------------------------
    Number of conditions added 1
    ----------------------------

    또 다른 예로 automembership 규칙을 사용하여 AD(Active Directory)에서 동기화된 모든 Windows 사용자를 대상으로 할 수 있습니다. 이를 위해 모든 AD 사용자가 공유하는 objects Class 특성 에서 모든 사용자를 대상으로 하는 모든 사용자를 대상으로 하는 조건을 생성합니다.

    $ ipa automember-add-condition
    Automember Rule: ad_users
    Attribute Key: objectclass
    Grouping Type: group
    [Inclusive Regex]: ntUser
    [Exclusive Regex]:
    -------------------------------------
    Added condition(s) to "ad_users"
    -------------------------------------
      Automember Rule: ad_users
      Inclusive Regex: objectclass=ntUser
    ----------------------------
    Number of conditions added 1
    ----------------------------

16.5. IdM CLI를 사용하여 기존 자동 구성원 규칙 보기

이 섹션에서는 IdM CLI를 사용하여 기존 자동 구성원 규칙을 보는 방법에 대해 설명합니다.

사전 요구 사항

절차

  1. ipa automember-find 명령을 입력합니다.
  2. 메시지가 표시되면 그룹 유형을 지정합니다.

    • 사용자 그룹을 대상으로 지정하려면 그룹을 입력합니다.
    • 호스트 그룹을 대상으로 지정하려면 hostgroup 을 입력합니다.

      예를 들면 다음과 같습니다.

    $ ipa automember-find
    Grouping Type: group
    ---------------
    1 rules matched
    ---------------
      Automember Rule: user_group
      Inclusive Regex: uid=.*
    ----------------------------
    Number of entries returned 1
    ----------------------------

16.6. IdM CLI를 사용하여 자동 구성원 규칙 삭제

이 섹션에서는 IdM CLI를 사용하여 자동 구성원 규칙을 삭제하는 방법을 설명합니다.

자동 구성원 규칙을 삭제하면 규칙과 연결된 모든 조건도 삭제됩니다. 규칙에서 특정 조건만 제거하려면 IdM CLI를 사용하여 automember 규칙에서 조건 제거를 참조하십시오.

사전 요구 사항

절차

  1. ipa automember-del 명령을 입력합니다.
  2. 메시지가 표시되면 다음을 지정합니다.

    • 자동 구성원 규칙. 삭제할 규칙입니다.
    • 규칙 그룹화. 이는 삭제할 규칙이 사용자 그룹 또는 호스트 그룹에 대한지 여부를 지정합니다. 그룹 또는 호스트 그룹을 입력합니다.

16.7. IdM CLI를 사용하여 automember 규칙에서 조건 제거

이 섹션에서는 automember 규칙에서 특정 조건을 제거하는 방법을 설명합니다.

사전 요구 사항

절차

  1. ipa automember-remove-condition 명령을 입력합니다.
  2. 메시지가 표시되면 다음을 지정합니다.

    • 자동 구성원 규칙. 조건을 제거할 규칙의 이름입니다.
    • 특성 키. 대상 항목 속성입니다. 예를 들어 사용자를 위한 uid.
    • 그룹화 유형. 이는 삭제할 조건이 사용자 그룹 또는 호스트 그룹에 대한지 여부를 지정합니다. 그룹 또는 호스트 그룹을 입력합니다.
    • 포함 정규식배타적 정규식. 이러한 조건은 제거할 조건을 지정합니다. 하나의 조건만 지정하려면 다른 조건을 입력하라는 메시지가 표시되면 Enter 키를 누릅니다.

      예를 들면 다음과 같습니다.

    $ ipa automember-remove-condition
    Automember Rule: user_group
    Attribute Key: uid
    Grouping Type: group
    [Inclusive Regex]: .*
    [Exclusive Regex]:
    -----------------------------------
    Removed condition(s) from "user_group"
    -----------------------------------
      Automember Rule: user_group
    ------------------------------
    Number of conditions removed 1
    ------------------------------

16.8. IdM CLI를 사용하여 기존 항목에 자동 구성원 규칙 적용

automember 규칙은 규칙이 추가된 후 생성된 사용자 및 호스트 항목에 자동으로 적용됩니다. 규칙을 추가하기 전에 존재하는 항목에 소급으로 적용되지 않습니다.

이전에 추가한 항목에 자동 구성원 규칙을 적용하려면 자동 멤버십을 수동으로 다시 빌드해야 합니다. 자동 멤버십을 다시 빌드하면 기존의 모든 자동 구성원 규칙을 다시 평가하여 모든 사용자 또는 호스트 항목 또는 특정 항목에 적용합니다.

참고

자동 멤버십을 다시 빌드 해도 항목이 더 이상 그룹의 포함 조건과 일치하지 않는 경우에도 그룹에서 사용자 또는 호스트 항목이 제거되지 않습니다. 수동으로 제거하려면 IdM CLI 를 사용하여 사용자 그룹에서 멤버 제거 또는 CLI를 사용하여 IdM 호스트 그룹 구성원 제거를 참조하십시오.

사전 요구 사항

절차

  • 자동 멤버십을 다시 빌드하려면 ipa automember-rebuild 명령을 입력합니다. 다음 옵션을 사용하여 대상 항목을 지정합니다.

    • 모든 사용자에 대해 자동 멤버십을 다시 빌드하려면 --type=group 옵션을 사용합니다.

      $ ipa automember-rebuild --type=group
      --------------------------------------------------------
      Automember rebuild task finished. Processed (9) entries.
      --------------------------------------------------------
    • 모든 호스트에 대한 자동 멤버십을 다시 빌드하려면 --type=hostgroup 옵션을 사용합니다.
    • 지정된 사용자 또는 사용자의 자동 멤버십을 다시 빌드하려면 --users=target_user 옵션을 사용합니다.

      $ ipa automember-rebuild --users=target_user1 --users=target_user2
      --------------------------------------------------------
      Automember rebuild task finished. Processed (2) entries.
      --------------------------------------------------------
    • 지정된 호스트 또는 호스트에 대한 자동 멤버십을 다시 빌드하려면 --hosts=client.idm.example.com 옵션을 사용합니다.

16.9. IdM CLI를 사용하여 기본 자동 구성원 그룹 구성

기본 자동 구성원 그룹을 구성하면 automember 규칙과 일치하지 않는 새 사용자 또는 호스트 항목이 이 기본 그룹에 자동으로 추가됩니다.

사전 요구 사항

절차

  1. ipa automember-default-group-set 명령을 입력하여 기본 automember 그룹을 구성합니다.
  2. 메시지가 표시되면 다음을 지정합니다.

    • 대상 그룹 이름을 지정하는 default(fallback) 그룹입니다.
    • 타겟이 사용자 그룹인지 또는 호스트 그룹인지 여부를 지정하는 유형 그룹화입니다. 사용자 그룹을 대상으로 지정하려면 그룹을 입력합니다. 호스트 그룹을 대상으로 지정하려면 hostgroup 을 입력합니다.

      예를 들면 다음과 같습니다.

      $ ipa automember-default-group-set
      Default (fallback) Group: default_user_group
      Grouping Type: group
      ---------------------------------------------------
      Set default (fallback) group for automember "default_user_group"
      ---------------------------------------------------
        Default (fallback) Group: cn=default_user_group,cn=groups,cn=accounts,dc=example,dc=com
    참고

    현재 기본 automember 그룹을 제거하려면 ipa automember-default-group-remove 명령을 입력합니다.

검증 단계

  • 그룹이 올바르게 설정되었는지 확인하려면 ipa automember-default-group-show 명령을 입력합니다. 명령은 현재 기본 automember 그룹을 표시합니다. 예를 들면 다음과 같습니다.

    $ ipa automember-default-group-show
    Grouping Type: group
      Default (fallback) Group: cn=default_user_group,cn=groups,cn=accounts,dc=example,dc=com

17장. IdM 웹 UI를 사용하여 그룹 멤버십 자동화

자동 그룹 멤버십을 사용하면 속성에 따라 자동으로 사용자와 호스트를 그룹에 할당할 수 있습니다. 예를 들면 다음을 수행할 수 있습니다.

  • 직원 관리자, 위치 또는 기타 특성에 따라 직원의 사용자 항목을 그룹으로 나눕니다.
  • 클래스, 위치 또는 기타 특성을 기반으로 호스트를 나눕니다.
  • 모든 사용자 또는 모든 호스트를 하나의 글로벌 그룹에 추가합니다.

이 장에서는 다음 주제를 다룹니다.

17.1. 자동 그룹 멤버십의 이점

사용자에 대한 자동 멤버십을 사용하면 다음을 수행할 수 있습니다.

  • 그룹 멤버십을 수동으로 관리하는 오버헤드 감소

    더 이상 모든 사용자와 호스트를 수동으로 그룹에 할당할 필요가 없습니다.

  • 사용자 및 호스트 관리의 일관성 개선

    사용자와 호스트는 엄격하게 정의되고 자동으로 평가된 기준에 따라 그룹에 할당됩니다.

  • 그룹 기반 설정 관리 간소화

    그룹에 대해 다양한 설정이 정의되고 개별 그룹 구성원에 적용됩니다(예: sudo 규칙, 자동 마운트 또는 액세스 제어). 사용자와 호스트를 그룹에 추가하면 이러한 설정을 자동으로 관리하기가 쉬워집니다.

17.2. 자동 구성원 규칙

자동 그룹 멤버십을 구성할 때 관리자는 automember 규칙을 정의합니다. automember 규칙은 특정 사용자 또는 호스트 대상 그룹에 적용됩니다. 한 번에 둘 이상의 그룹에 적용할 수 없습니다.

규칙을 생성한 후에는 관리자가 조건을 추가합니다. 대상 그룹에서 포함하거나 제외되는 사용자 또는 호스트를 지정합니다.

  • 포함 조건

    사용자 또는 호스트 항목이 포함 조건을 충족하면 대상 그룹에 포함됩니다.

  • 배타적 조건

    사용자 또는 호스트 항목이 독점 조건을 충족하면 대상 그룹에 포함되지 않습니다.

조건은 Perl 호환 정규 표현식(PCRE) 형식으로 정규 표현식으로 지정됩니다. PCRE에 대한 자세한 내용은 pcresyntax(3) 도움말 페이지를 참조하십시오.

참고

IdM은 포함 조건보다 먼저 배타적 조건을 평가합니다. 충돌이 발생하는 경우 독점 조건이 포함된 조건보다 우선합니다.

automember 규칙은 향후 생성된 모든 항목에 적용됩니다. 이러한 항목은 지정된 대상 그룹에 자동으로 추가됩니다. 항목이 여러 automember 규칙에 지정된 조건을 충족하면 모든 해당 그룹에 추가됩니다.

기존 항목은 새 규칙의 영향을 받지 않습니다. 기존 항목을 변경하려면 IdM 웹 UI를 사용하여 기존 항목에 자동 구성원 규칙 적용을 참조하십시오.

17.3. IdM 웹 UI를 사용하여 자동 구성원 규칙 추가

이 섹션에서는 IdM 웹 UI를 사용하여 자동 구성원 규칙을 추가하는 방법에 대해 설명합니다. 자동 구성원 규칙에 대한 자세한 내용은 Automember rules 을 참조하십시오.

참고

기존 항목은 새 규칙의 영향을 받지 않습니다. 기존 항목을 변경하려면 IdM 웹 UI를 사용하여 기존 항목에 자동 구성원 규칙 적용을 참조하십시오.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.
  • 새 규칙의 대상 그룹은 IdM에 있습니다.

절차

  1. ID → 자동 구성원을 클릭하고 사용자 그룹 규칙 또는 호스트 그룹 규칙을 선택합니다.
  2. 추가를 클릭합니다.
  3. Automember 규칙 필드에서 규칙이 적용할 그룹을 선택합니다. 대상 그룹 이름입니다.

    이전에 정의한 규칙 중에서 선택할 수 있는 Automember Rule(자동 구성원 규칙)의 드롭다운 필드를 표시하는 "Add Rule(규칙 추가)" 창의 스크린샷입니다.
  4. Add(추가) 를 클릭하여 확인합니다.
  5. 선택 사항: IdM 웹 UI를 사용하여 automember 규칙에 조건 추가에 설명된 절차를 사용하여 새 규칙에 조건을 추가할 수 있습니다.

17.4. IdM 웹 UI를 사용하여 자동 구성원 규칙에 조건 추가

이 섹션에서는 IdM 웹 UI를 사용하여 automember 규칙에 조건을 추가하는 방법을 설명합니다. 자동 구성원 규칙에 대한 자세한 내용은 Automember rules 을 참조하십시오.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.
  • 대상 규칙은 IdM에 있습니다.

절차

  1. ID → 자동 구성원을 클릭하고 사용자 그룹 규칙 또는 호스트 그룹 규칙을 선택합니다.
  2. 조건을 추가할 규칙을 클릭합니다.
  3. Inclusive (포함) 또는 Exclusive (독점) 섹션에서 Add(추가)를 클릭합니다.

    user_group 규칙의 속성을 표시하는 User 그룹 규칙 페이지의 스크린샷입니다. "Inclusive" 섹션에는 "Attribute" 열과 Attribute "uid"에 대한 항목이 있는 "Expression" 열이 있는 테이블이 있으며 해당 표현식은 ".*"입니다. 맨 아래에는 Attribute 열과 Expression 열이 있는 테이블도 있지만 항목이 없는 Exclusive 섹션이 있습니다.
  4. Attribute (특성) 필드에서 required 속성을 선택합니다(예: uid ).
  5. Expression(표현식 ) 필드에 정규 표현식을 정의합니다.
  6. 추가를 클릭합니다.

    예를 들어 다음 조건은 사용자 ID(uid) 속성에서 임의의 값(.*)을 가진 모든 사용자를 대상으로 합니다.

    "Add Condition into automember" 팝업 창에서 Attribute(uid)의 드롭다운 메뉴와 해당 "Expression"(필수 및 .*)의 필드를 표시합니다. "추가" 버튼은 창의 아래쪽에 있습니다.

17.5. IdM 웹 UI를 사용하여 기존 자동 구성원 규칙 및 조건 보기

이 섹션에서는 IdM 웹 UI를 사용하여 기존의 자동 구성원 규칙 및 조건을 보는 방법에 대해 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.

절차

  1. ID → 자동 구성원을 클릭하고 사용자 그룹 규칙 또는 호스트 그룹 규칙을 선택하여 해당 자동 구성원 규칙을 확인합니다.
  2. 선택 사항: 규칙을 클릭하여 Inclusive 또는 Exclusive 섹션에서 해당 규칙의 조건을 확인합니다.

    사용자 그룹 규칙 "user_group"의 세부 정보 스크린샷입니다. Automember 규칙의 이름과 "설명"을 표시하는 "일반" 섹션이 있습니다. 아래에는 "특성" 및 "표현식"이라는 레이블이 지정된 항목이 표시된 항목을 표시하는 "통합" 섹션이 있습니다. 이 테이블에는 Attribute로 uid, 표현식으로 .* 항목이 있습니다. 맨 아래에는 "Inclusive"(통합) 테이블의 구조와 일치하는 테이블이 있는 "Exclusive"(확장) 섹션이 있지만 항목이 없습니다.

17.6. IdM 웹 UI를 사용하여 자동 구성원 규칙 삭제

이 섹션에서는 IdM 웹 UI를 사용하여 자동 구성원 규칙을 삭제하는 방법을 설명합니다.

자동 구성원 규칙을 삭제하면 규칙과 연결된 모든 조건도 삭제됩니다. 규칙에서 특정 조건만 제거하려면 IdM 웹 UI를 사용하여 automember 규칙에서 조건 제거를 참조하십시오.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.

절차

  1. ID → 자동 구성원을 클릭하고 사용자 그룹 규칙 또는 호스트 그룹 규칙을 선택하여 해당 자동 구성원 규칙을 확인합니다.
  2. 제거할 규칙 옆에 있는 확인란을 선택합니다.
  3. 삭제를 클릭합니다.

    automember 규칙 테이블을 표시하는 "사용자 그룹 규칙" 페이지의 스크린샷입니다. "user_group" 항목의 확인란이 선택되었으며 "Delete"(삭제) 버튼이 강조 표시되었습니다.
  4. Delete(삭제) 를 클릭하여 확인합니다.

17.7. IdM 웹 UI를 사용하여 automember 규칙에서 조건 제거

이 섹션에서는 IdM 웹 UI를 사용하여 automember 규칙에서 특정 조건을 제거하는 방법을 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.

절차

  1. ID → 자동 구성원을 클릭하고 사용자 그룹 규칙 또는 호스트 그룹 규칙을 선택하여 해당 자동 구성원 규칙을 확인합니다.
  2. 규칙을 클릭하여 Inclusive 또는 Exclusive 섹션에서 해당 규칙의 조건을 확인합니다.
  3. 제거할 조건 옆에 있는 확인란을 선택합니다.
  4. 삭제를 클릭합니다.

    "User group rule" 페이지의 스크린샷은 "user_group"에 대한 정보를 표시합니다. "Inclusive"(통합) 섹션의 항목이 선택되어 있으며 "Inclusive"(통합) 섹션과 관련된 "Delete"(삭제) 버튼이 강조 표시됩니다.
  5. Delete(삭제) 를 클릭하여 확인합니다.

17.8. IdM 웹 UI를 사용하여 기존 항목에 자동 구성원 규칙 적용

automember 규칙은 규칙이 추가된 후 생성된 사용자 및 호스트 항목에 자동으로 적용됩니다. 규칙을 추가하기 전에 존재하는 항목에 소급으로 적용되지 않습니다.

이전에 추가한 항목에 자동 구성원 규칙을 적용하려면 자동 멤버십을 수동으로 다시 빌드해야 합니다. 자동 멤버십을 다시 빌드하면 기존의 모든 자동 구성원 규칙을 다시 평가하여 모든 사용자 또는 호스트 항목 또는 특정 항목에 적용합니다.

참고

자동 멤버십을 다시 빌드 해도 항목이 더 이상 그룹의 포함 조건과 일치하지 않는 경우에도 그룹에서 사용자 또는 호스트 항목이 제거되지 않습니다. 수동으로 제거하려면 IdM 웹 UI 를 사용하여 사용자 그룹에서 멤버 제거 또는 IdM 웹 UI 에서 호스트 그룹 구성원 제거를 참조하십시오.

17.8.1. 모든 사용자 또는 호스트에 대한 자동 멤버십 다시 빌드

이 섹션에서는 모든 사용자 또는 호스트 항목에 대한 자동 멤버십을 다시 빌드하는 방법을 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.

절차

  1. ID사용자 또는 호스트 를 선택합니다.
  2. 작업자동 멤버십 다시 빌드를 클릭합니다.

    "자동 멤버십 재구축"을 강조 표시하는 스크린샷은 "작업" 드롭다운 메뉴의 옵션입니다.

17.8.2. 단일 사용자 또는 호스트에 대한 자동 멤버십 다시 빌드

이 섹션에서는 특정 사용자 또는 호스트 항목에 대한 자동 멤버십을 다시 빌드하는 방법을 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.

절차

  1. ID사용자 또는 호스트 를 선택합니다.
  2. 필요한 사용자 또는 호스트 이름을 클릭합니다.
  3. 작업자동 멤버십 다시 빌드를 클릭합니다.

    "Actions(작업)" 드롭다운 메뉴의 콘텐츠에 있는 "Rebuild auto membership(자동 멤버십 다시 빌드)" 옵션을 강조 표시하는 스크린샷입니다.

17.9. IdM 웹 UI를 사용하여 기본 사용자 그룹 구성

기본 사용자 그룹을 구성하면 automember 규칙과 일치하지 않는 새 사용자 항목이 이 기본 그룹에 자동으로 추가됩니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.
  • IdM에 기본값으로 설정할 대상 사용자 그룹이 있습니다.

절차

  1. Identity → Automember 를 클릭하고 사용자 그룹 규칙을 선택합니다.
  2. Default 사용자 그룹 필드에서 기본 사용자 그룹으로 설정할 그룹을 선택합니다.

    기본 사용자 그룹 설정

17.10. IdM 웹 UI를 사용하여 기본 호스트 그룹 구성

기본 호스트 그룹을 구성하면 automember 규칙과 일치하지 않는 새 호스트 항목이 이 기본 그룹에 자동으로 추가됩니다.

사전 요구 사항

  • IdM 웹 UI에 로그인되어 있습니다.
  • admins 그룹의 멤버여야 합니다.
  • IdM에 기본값으로 설정할 대상 호스트 그룹이 있습니다.

절차

  1. ID → 자동 구성원을 클릭하고 호스트 그룹 규칙을 선택합니다.
  2. Default 호스트 그룹 필드에서 기본 호스트 그룹으로 설정할 그룹을 선택합니다.

    기본 호스트 그룹 설정

18장. Ansible을 사용하여 IdM의 그룹 멤버십 자동화

자동 그룹 멤버십을 사용하면 사용자 및 호스트 사용자 그룹과 호스트 그룹을 속성에 따라 자동으로 할당할 수 있습니다. 예를 들면 다음을 수행할 수 있습니다.

  • 직원의 사용자 항목을 직원 관리자, 위치, 위치 또는 기타 특성에 따라 그룹으로 나눕니다. 명령행에 ipa user-add --help 를 입력하여 모든 속성을 나열할 수 있습니다.
  • 호스트를 클래스, 위치 또는 기타 특성에 따라 그룹으로 나눕니다. 명령행에 ipa host-add --help 를 입력하여 모든 특성을 나열할 수 있습니다.
  • 모든 사용자 또는 모든 호스트를 하나의 글로벌 그룹에 추가합니다.

Red Hat Ansible Engine을 사용하여 IdM(Identity Management)에서 자동 그룹 멤버십 관리를 자동화할 수 있습니다.

이 섹션에서는 다음 주제를 다룹니다.

추가 리소스

18.1. IdM 관리를 위한 Ansible 제어 노드 준비

IdM(Identity Management)을 관리하는 시스템 관리자로서 Red Hat Ansible Engine을 사용하여 작업할 때 다음을 수행하는 것이 좋습니다.

  • 홈 디렉터리에서 Ansible 플레이북 전용 하위 디렉터리(예: ~/MyPlaybooks )를 생성합니다.
  • /usr /share/doc/ansible-freeipa/* 및 /usr/share/doc /rhel-system-roles/* 디렉터리 및 하위 디렉터리에서 ~/MyPlaybooks 디렉터리에 샘플 Ansible 플레이북을 복사 및 조정합니다.
  • 인벤토리 파일을 ~/MyPlaybooks 디렉터리에 포함합니다.

이 연습을 수행하면 모든 플레이북을 한 곳에서 찾을 수 있으며 root 권한을 호출하지 않고 플레이북을 실행할 수 있습니다.

참고

관리 노드에서 root 권한만 있으면 ipaserver, ipareplica, ipa client 및 ipa backup ansible-freeipa 역할을 실행할 수 있습니다. 이러한 역할을 수행하려면 디렉토리 및 dnf 소프트웨어 패키지 관리자에 대한 권한 있는 액세스 권한이 필요합니다.

이 섹션에서는 ~/MyPlaybooks 디렉터리를 만들고 Ansible 플레이북을 저장하고 실행하는 데 사용할 수 있도록 구성하는 방법을 설명합니다.

사전 요구 사항

  • 관리형 노드인 server.idm.example .com 및 replica.idm.example.com에 IdM 서버를 설치했습니다.
  • 제어 노드에서 직접 관리형 노드인 server.idm.example.com 및 replica.idm.example.com 에 로그인할 수 있도록 DNS 및 네트워킹을 구성했습니다.
  • IdM 관리자 암호를 알고 있습니다.

절차

  1. 홈 디렉터리에서 Ansible 구성 및 플레이북의 디렉터리를 생성합니다.

    $ mkdir ~/MyPlaybooks/
  2. ~/MyPlaybooks/ 디렉터리로 변경합니다.

    $ cd ~/MyPlaybooks
  3. 다음 콘텐츠를 사용하여 ~/Myplaybooks/ansible.cfg 파일을 만듭니다.

    [defaults]
    inventory = /home/your_username/MyPlaybooks/inventory
    
    [privilege_escalation]
    become=True
  4. 다음 콘텐츠를 사용하여 ~/Myplaybooks/inventory 파일을 만듭니다.

    [eu]
    server.idm.example.com
    
    [us]
    replica.idm.example.com
    
    [ipaserver:children]
    eu
    us

    이 구성은 이러한 위치에 있는 호스트에 대한 두 개의 호스트 그룹인 euus 를 정의합니다. 또한 이 구성은 euus 그룹의 모든 호스트를 포함하는 ipaserver 호스트 그룹을 정의합니다.

  5. [선택 사항] SSH 공개 및 개인 키를 생성합니다. 테스트 환경에서 액세스를 간소화하려면 개인 키에 암호를 설정하지 마십시오.

    $ ssh-keygen
  6. SSH 공개 키를 각 관리 노드의 IdM admin 계정에 복사합니다.

    $ ssh-copy-id admin@server.idm.example.com
    $ ssh-copy-id admin@replica.idm.example.com

    이러한 명령을 입력할 때 IdM 관리자 암호를 입력해야 합니다.

18.2. Ansible을 사용하여 IdM 사용자 그룹에 대한 자동 관리 규칙이 있는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM(Identity Management) 그룹에 대한 자동 관리 규칙이 있는지 확인하는 방법을 설명합니다. 이 예제에서는 testing_group 사용자 그룹에 대해 automember 규칙이 있는지 확인합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • testing_group 사용자 그룹이 IdM에 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에서 이러한 옵션을 구성하는 IdM 서버의 FQDN(정규화된 도메인 이름)으로 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/automember/ 디렉터리에 있는 automember- group-present.yml Ansible 플레이북 파일을 복사합니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-group-present.yml automember-group-present-copy.yml
  3. 편집을 위해 automember-group-present-copy.yml 파일을 엽니다.
  4. ipaautomember 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 testing_group 으로 설정합니다.
    • automember_type 변수를 group 으로 설정합니다.
    • state 변수가 present로 설정되어 있는지 확인합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Automember group present example
      hosts: ipaserver
      become: true
      tasks:
      - name: Ensure group automember rule admins is present
        ipaautomember:
          ipaadmin_password: Secret123
          name: testing_group
          automember_type: group
          state: present
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory automember-group-present-copy.yml

추가 리소스

18.3. Ansible을 사용하여 지정된 조건이 IdM 사용자 그룹 automember 규칙에 있는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM(Identity Management) 그룹의 automember 규칙에 지정된 조건이 있는지 확인하는 방법을 설명합니다. 이 예제에서는 testing_group 그룹에 대해 automember 규칙에 UID 관련 조건이 있어야 합니다. .* 조건을 지정하면 향후 모든 IdM 사용자가 자동으로 testing_group 의 구성원이 되도록 합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • testing_group 사용자 그룹과 automember 사용자 그룹 규칙이 IdM에 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에서 이러한 옵션을 구성하는 IdM 서버의 FQDN(정규화된 도메인 이름)으로 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/automember/ 디렉터리에 있는 automember-hostgroup- rule-present.yml Ansible 플레이북 파일을 복사하고 이름을 로 지정합니다(예: automember-usergroup-rule-present.yml ):

    $ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-present.yml automember-usergroup-rule-present.yml
  3. 편집을 위해 automember-usergroup-rule-present.yml 파일을 엽니다.
  4. 다음 매개변수를 수정하여 파일을 조정합니다.

    • 예를 들어, 사용 사례에 해당하는 플레이북 이름을 로 변경합니다. 사용자 그룹 규칙 멤버 present 자동 메모리.
    • 사용 사례에 해당하는 작업의 이름을 변경합니다. 예를 들면 다음과 같습니다. 사용자 그룹의 automember 조건이 있는지 확인합니다.
    • ipaautomember 작업 섹션에서 다음 변수를 설정합니다.

      • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
      • name 변수를 testing_group 으로 설정합니다.
      • automember_type 변수를 group 으로 설정합니다.
      • state 변수가 present로 설정되어 있는지 확인합니다.
      • action 변수가 member 로 설정되어 있는지 확인합니다.
      • 포함 변수를 UID 로 설정합니다.
      • 포함 표현식 변수를 로 설정합니다 .*

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Automember user group rule member present
      hosts: ipaserver
      become: true
      tasks:
      - name: Ensure an automember condition for a user group is present
        ipaautomember:
          ipaadmin_password: Secret123
          name: testing_group
          automember_type: group
          state: present
          action: member
          inclusive:
            - key: UID
              expression: .*
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory automember-usergroup-rule-present.yml

검증 단계

  1. IdM 관리자로 로그인합니다.

    $ kinit admin
  2. 사용자를 추가합니다. 예를 들면 다음과 같습니다.

    $ ipa user-add user101 --first user --last 101
    -----------------------
    Added user "user101"
    -----------------------
      User login: user101
      First name: user
      Last name: 101
      ...
      Member of groups: ipausers, testing_group
      ...

추가 리소스

18.4. Ansible을 사용하여 IdM 사용자 그룹 automember 규칙에서 조건이 없는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM(Identity Management) 그룹의 자동 관리 규칙에서 상태가 없는지 확인하는 방법을 설명합니다. 이 예제에서는 automember 규칙에 조건이 없으면 초기화가 dp 인 사용자를 포함하도록 지정합니다. automember 규칙은 testing_group 그룹에 적용됩니다. 조건을 적용하면 초기 사용자의 dptesting_group 의 구성원이 될 수 없게 됩니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • testing_group 사용자 그룹과 automember 사용자 그룹 규칙이 IdM에 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에서 이러한 옵션을 구성하는 IdM 서버의 FQDN(정규화된 도메인 이름)으로 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/automember/ 디렉터리에 있는 automember-hostgroup-rule- absent.yml Ansible 플레이북 파일을 복사하고 이름을 로 지정합니다(예: automember-usergroup-rule-absent.yml:

    $ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-absent.yml automember-usergroup-rule-absent.yml
  3. 편집을 위해 automember-usergroup-rule-absent.yml 파일을 엽니다.
  4. 다음 매개변수를 수정하여 파일을 조정합니다.

    • 예를 들어, 사용 사례에 해당하는 플레이북 이름을 로 변경합니다. 사용자 그룹 규칙 멤버가 없습니다.
    • 사용 사례에 해당하는 작업의 이름을 변경합니다. 예를 들면 다음과 같습니다. 사용자 그룹의 automember 조건이 없는지 확인합니다.
    • ipaautomember 작업 섹션에서 다음 변수를 설정합니다.

      • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
      • name 변수를 testing_group 으로 설정합니다.
      • automember_type 변수를 group 으로 설정합니다.
      • state 변수가 absent 로 설정되어 있는지 확인합니다.
      • action 변수가 member 로 설정되어 있는지 확인합니다.
      • 포함 변수를 initials 로 설정합니다.
      • 포함 표현식 변수를 dp 로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Automember user group rule member absent
      hosts: ipaserver
      become: true
      tasks:
      - name: Ensure an automember condition for a user group is absent
        ipaautomember:
          ipaadmin_password: Secret123
          name: testing_group
          automember_type: group
          state: absent
          action: member
          inclusive:
            - key: initials
              expression: dp
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory automember-usergroup-rule-absent.yml

검증 단계

  1. IdM 관리자로 로그인합니다.

    $ kinit admin
  2. automember 그룹을 확인합니다.

    $ ipa automember-show --type=group testing_group
     Automember Rule: testing_group

출력에 Inclusive Regex: initials=dp 항목이 없으면 testing_group automember 규칙에 지정된 조건이 포함되어 있지 않음을 확인합니다.

추가 리소스

18.5. Ansible을 사용하여 IdM 사용자 그룹에 대한 자동 관리 규칙이 없는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM(Identity Management) 그룹에 대해 automember 규칙이 없는지 확인하는 방법을 설명합니다. 이 예제에서는 testing_group 그룹에 대해 automember 규칙이 없습니다.

참고

자동 구성원 규칙을 삭제하면 규칙과 연결된 모든 조건도 삭제됩니다. 규칙에서 특정 조건만 제거하려면 Ansible 사용을 통해 IdM 사용자 그룹 automember 규칙에 조건이 없는지 확인합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에서 이러한 옵션을 구성하는 IdM 서버의 FQDN(정규화된 도메인 이름)으로 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/automember/ 디렉터리에 있는 automember-group- absent.yml Ansible 플레이북 파일을 복사합니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-group-absent.yml automember-group-absent-copy.yml
  3. 편집을 위해 automember-group-absent-copy.yml 파일을 엽니다.
  4. ipaautomember 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 testing_group 으로 설정합니다.
    • automember_type 변수를 group 으로 설정합니다.
    • state 변수가 absent 로 설정되어 있는지 확인합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Automember group absent example
      hosts: ipaserver
      become: true
      tasks:
      - name: Ensure group automember rule admins is absent
        ipaautomember:
          ipaadmin_password: Secret123
          name: testing_group
          automember_type: group
          state: absent
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory automember-group-absent.yml

추가 리소스

  • 자동 관리 규칙의 개념에 대한 자세한 내용은 자동 그룹 멤버십 및 자동 관리 규칙의 이점을 참조하십시오.
  • ipaautomember 모듈을 사용하는 추가 샘플 Ansible 플레이북은 다음을 참조하십시오.

    • /usr/share/doc/ansible -freeipa/ 디렉토리의 README- automember.md 파일. 이 파일에는 ipaautomember 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/automember 디렉토리.

18.6. Ansible을 사용하여 IdM 호스트 그룹 automember 규칙에 조건이 있는지 확인합니다.

이 섹션에서는 Ansible을 사용하여 IdM 호스트 그룹 automember 규칙에 조건이 있는지 확인하는 방법을 설명합니다. 이 예제에서는 FQDN.*.idm.example.com 인 호스트가 primary_dns_domain_hosts 호스트 그룹의 구성원 인지 확인하는 방법을 설명합니다 .*.example.orgprimary_dns_domain_hosts 호스트 그룹의 멤버가 아닙니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • IdM에는 primary_dns_domain_hosts 호스트 그룹과 automember 호스트 그룹 규칙이 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에서 이러한 옵션을 구성하는 IdM 서버의 FQDN(정규화된 도메인 이름)으로 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/automember/ 디렉터리에 있는 automember-hostgroup- rule-present.yml Ansible 플레이북 파일을 복사합니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/automember/automember-hostgroup-rule-present.yml automember-hostgroup-rule-present-copy.yml
  3. 편집을 위해 automember-hostgroup-rule-present-copy.yml 파일을 엽니다.
  4. ipaautomember 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 primary_dns_domain_hosts 로 설정합니다.
    • automember_type 변수를 hostgroup 으로 설정합니다.
    • state 변수가 present로 설정되어 있는지 확인합니다.
    • action 변수가 member 로 설정되어 있는지 확인합니다.
    • 포함 변수가 fqdn; 으로 설정되어 있는지 확인합니다.
    • 해당 포함 표현식 변수를 .*.idm.example.com 으로 설정합니다.
    • 독점 변수를 fqdn; 으로 설정합니다.
    • 해당 배타적 표현식 변수를 .*.example.org 로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Automember user group rule member present
      hosts: ipaserver
      become: true
      tasks:
      - name: Ensure an automember condition for a user group is present
        ipaautomember:
          ipaadmin_password: Secret123
          name: primary_dns_domain_hosts
          automember_type: hostgroup
          state: present
          action: member
          inclusive:
            - key: fqdn
              expression: .*.idm.example.com
          exclusive:
            - key: fqdn
              expression: .*.example.org
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory automember-hostgroup-rule-present-copy.yml

추가 리소스

19장. CLI를 사용하여 IdM에서 셀프 서비스 규칙 관리

이 장에서는 IdM(Identity Management)의 셀프 서비스 규칙을 소개하고 명령줄 인터페이스(CLI)에서 셀프 서비스 액세스 규칙을 생성하고 편집하는 방법을 설명합니다.

19.1. IdM의 셀프 서비스 액세스 제어

셀프 서비스 액세스 제어 규칙은 IdM(Identity Management) 엔터티가 IdM Directory Server 항목에서 수행할 수 있는 작업을 정의합니다. 예를 들어 IdM 사용자는 자신의 암호를 업데이트할 수 있습니다.

이 제어 방법을 사용하면 인증된 IdM 엔터티에서 LDAP 항목 내에서 특정 속성을 편집할 수 있지만 전체 항목에서 작업을 추가하거나 삭제할 수는 없습니다.

주의

셀프 서비스 액세스 제어 규칙으로 작업할 때 주의하십시오. 액세스 제어 규칙을 부적절하게 구성하면 엔터티의 권한을 의도치 않게 높일 수 있습니다.

19.2. CLI를 사용하여 셀프 서비스 규칙 생성

이 절차에서는 CLI(명령줄 인터페이스)를 사용하여 IdM에서 셀프 서비스 액세스 규칙을 생성하는 방법을 설명합니다.

사전 요구 사항

절차

  • 셀프 서비스 규칙을 추가하려면 ipa selfservice-add 명령을 사용하고 다음 두 가지 옵션을 지정합니다.

    --permissions
    읽기쓰기 권한을 설정합니다. ACI(액세스 제어 명령)가 부여됩니다.
    --attrs
    이 ACI에서 권한을 부여하는 전체 속성 목록을 설정합니다.

예를 들어 사용자가 자신의 이름 세부 정보를 수정할 수 있는 셀프 서비스 규칙을 생성하려면 다음을 수행합니다.

$ ipa selfservice-add "Users can manage their own name details" --permissions=write --attrs=givenname --attrs=displayname --attrs=title --attrs=initials
-----------------------------------------------------------
Added selfservice "Users can manage their own name details"
-----------------------------------------------------------
    Self-service name: Users can manage their own name details
    Permissions: write
    Attributes: givenname, displayname, title, initials

19.3. CLI를 사용하여 셀프 서비스 규칙 편집

이 절차에서는 명령줄 인터페이스(CLI)를 사용하여 IdM에서 셀프 서비스 액세스 규칙 편집을 설명합니다.

사전 요구 사항

절차

  1. 선택 사항: ipa selfservice-find 명령을 사용하여 기존 셀프 서비스 규칙을 표시합니다.
  2. 선택 사항: ipa selfservice-show 명령을 사용하여 수정할 셀프 서비스 규칙에 대한 세부 정보를 표시합니다.
  3. ipa selfservice-mod 명령을 사용하여 셀프 서비스 규칙을 편집합니다.

예를 들면 다음과 같습니다.

$ ipa selfservice-mod "Users can manage their own name details" --attrs=givenname --attrs=displayname --attrs=title --attrs=initials --attrs=surname
--------------------------------------------------------------
Modified selfservice "Users can manage their own name details"
--------------------------------------------------------------
Self-service name: Users can manage their own name details
Permissions: write
Attributes: givenname, displayname, title, initials
중요

ipa selfservice-mod 명령을 사용하면 이전에 정의한 권한 및 속성을 덮어쓰므로 항상 기존 권한 및 속성의 전체 목록과 정의하고자 하는 새 권한 목록을 포함합니다.

검증 단계

  • ipa selfservice-show 명령을 사용하여 편집한 셀프 서비스 규칙을 표시합니다.
$ ipa selfservice-show "Users can manage their own name details"
--------------------------------------------------------------
Self-service name: Users can manage their own name details
Permissions: write
Attributes: givenname, displayname, title, initials

19.4. CLI를 사용하여 셀프 서비스 규칙 삭제

이 절차에서는 명령줄 인터페이스(CLI)를 사용하여 IdM에서 셀프 서비스 액세스 규칙 삭제를 설명합니다.

사전 요구 사항

절차

  • ipa selfservice-del 명령을 사용하여 셀프 서비스 규칙을 삭제합니다.

예를 들면 다음과 같습니다.

$ ipa selfservice-del "Users can manage their own name details"
-----------------------------------------------------------
Deleted selfservice "Users can manage their own name details"
-----------------------------------------------------------

검증 단계

  • ipa selfservice-find 명령을 사용하여 모든 셀프 서비스 규칙을 표시합니다. 방금 삭제한 규칙이 누락되어야 합니다.

20장. IdM 웹 UI를 사용하여 셀프 서비스 규칙 관리

이 장에서는 IdM(Identity Management)의 셀프 서비스 규칙을 소개하고 웹 인터페이스(IdM Web UI)에서 셀프 서비스 액세스 규칙을 생성하고 편집하는 방법을 설명합니다.

20.1. IdM의 셀프 서비스 액세스 제어

셀프 서비스 액세스 제어 규칙은 IdM(Identity Management) 엔터티가 IdM Directory Server 항목에서 수행할 수 있는 작업을 정의합니다. 예를 들어 IdM 사용자는 자신의 암호를 업데이트할 수 있습니다.

이 제어 방법을 사용하면 인증된 IdM 엔터티에서 LDAP 항목 내에서 특정 속성을 편집할 수 있지만 전체 항목에서 작업을 추가하거나 삭제할 수는 없습니다.

주의

셀프 서비스 액세스 제어 규칙으로 작업할 때 주의하십시오. 액세스 제어 규칙을 부적절하게 구성하면 엔터티의 권한을 의도치 않게 높일 수 있습니다.

20.2. IdM 웹 UI를 사용하여 셀프 서비스 규칙 생성

다음 절차에서는 웹 인터페이스(IdM Web UI)를 사용하여 IdM에서 셀프 서비스 액세스 규칙을 생성하는 방법을 설명합니다.

사전 요구 사항

  • IdM 또는 사용자 관리자 역할을 관리하기 위한 관리자 권한.
  • IdM 웹 UI에 로그인되어 있습니다. 자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

절차

  1. IPA Server 탭에서 Role-Based Access Control (역할 기반 액세스 제어) 하위 메뉴를 열고 셀프 서비스 권한을 선택합니다.
  2. 셀프 서비스 액세스 규칙 목록의 오른쪽 상단에 있는 Add (추가)를 클릭합니다.

    Adding a self-service rule

  3. Add self Service Permission(셀프 서비스 권한 추가) 창이 열립니다. 셀프 서비스 이름 필드에 새 셀프 서비스 규칙의 이름을 입력합니다. 공백을 사용할 수 있습니다.

    Form for adding a self-service rule

  4. 사용자가 편집할 속성 옆에 있는 확인란을 선택합니다.
  5. 선택 사항: 액세스를 제공할 속성이 나열되지 않은 경우 목록을 추가할 수 있습니다.

    1. Add(추가) 버튼을 클릭합니다.
    2. 다음 Add Custom Attribute(사용자 지정 속성 추가) 창의 Attribute (특성) 텍스트 필드에 특성 이름을 입력합니다.
    3. OK(확인 ) 버튼을 클릭하여 속성을 추가합니다.
    4. 새 속성이 선택되었는지 확인합니다.
  6. 양식 하단에서 Add(추가 ) 버튼을 클릭하여 새 셀프 서비스 규칙을 저장합니다.
    또는 Add and Edit (추가 및 편집) 버튼을 클릭하여 셀프 서비스 규칙을 저장하고 계속 편집하거나 추가 및 추가 버튼을 클릭하여 추가 규칙을 저장하고 추가할 수 있습니다.

20.3. IdM 웹 UI를 사용하여 셀프 서비스 규칙 편집

다음 절차에서는 웹 인터페이스(IdM 웹 UI)를 사용하여 IdM에서 셀프 서비스 액세스 규칙을 편집하는 방법을 설명합니다.

사전 요구 사항

  • IdM 또는 사용자 관리자 역할을 관리하기 위한 관리자 권한.
  • IdM 웹 UI에 로그인되어 있습니다. 자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

절차

  1. IPA Server 탭에서 Role-Based Access Control (역할 기반 액세스 제어) 하위 메뉴를 열고 셀프 서비스 권한을 선택합니다.
  2. 수정할 셀프 서비스 규칙의 이름을 클릭합니다.

    Editing an existing self-service rule

  3. 편집 페이지에서만 셀프 서비스 규칙에 추가하거나 제거할 속성 목록을 편집할 수 있습니다. 적절한 확인란을 선택하거나 선택 취소합니다.
  4. Save(저장 ) 버튼을 클릭하여 셀프 서비스 규칙에 변경 사항을 저장합니다.

20.4. IdM 웹 UI를 사용하여 셀프 서비스 규칙 삭제

다음 절차에서는 웹 인터페이스(IdM Web UI)를 사용하여 IdM에서 셀프 서비스 액세스 규칙을 삭제하는 방법을 설명합니다.

사전 요구 사항

  • IdM 또는 사용자 관리자 역할을 관리하기 위한 관리자 권한.
  • IdM 웹 UI에 로그인되어 있습니다. 자세한 내용은 웹 브라우저에서 IdM 웹 UI 액세스를 참조하십시오.

절차

  1. IPA Server 탭에서 Role-Based Access Control (역할 기반 액세스 제어) 하위 메뉴를 열고 셀프 서비스 권한을 선택합니다.
  2. 삭제할 규칙 옆에 있는 확인란을 선택한 다음 목록 오른쪽에 있는 Delete (삭제) 버튼을 클릭합니다.

    Deleting a self-service rule

  3. 대화 상자가 열리고 Delete(삭제)를 클릭하여 확인합니다.

21장. Ansible 플레이북을 사용하여 IdM에서 셀프 서비스 규칙 관리

이 섹션에서는 IdM(Identity Management)의 셀프 서비스 규칙을 소개하고 Ansible 플레이북을 사용하여 셀프 서비스 액세스 규칙을 생성하고 편집하는 방법을 설명합니다. 셀프 서비스 액세스 제어 규칙을 사용하면 IdM 엔터티에서 IdM 디렉터리 서버 항목에서 지정된 작업을 수행할 수 있습니다.

이 섹션에서는 다음 주제를 다룹니다.

21.1. IdM의 셀프 서비스 액세스 제어

셀프 서비스 액세스 제어 규칙은 IdM(Identity Management) 엔터티가 IdM Directory Server 항목에서 수행할 수 있는 작업을 정의합니다. 예를 들어 IdM 사용자는 자신의 암호를 업데이트할 수 있습니다.

이 제어 방법을 사용하면 인증된 IdM 엔터티에서 LDAP 항목 내에서 특정 속성을 편집할 수 있지만 전체 항목에서 작업을 추가하거나 삭제할 수는 없습니다.

주의

셀프 서비스 액세스 제어 규칙으로 작업할 때 주의하십시오. 액세스 제어 규칙을 부적절하게 구성하면 엔터티의 권한을 의도치 않게 높일 수 있습니다.

21.2. Ansible을 사용하여 셀프 서비스 규칙이 있는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 셀프 서비스 규칙을 정의하고 IdM(Identity Management) 서버에 있는지 확인하는 방법을 설명합니다. 이 예에서 새 사용자는 자신의 이름 세부 정보 규칙을 관리할 수 있으며 사용자에게 자신의 지정된 이름,디스플레이 이름, 제목초기 속성을 변경할 수 있습니다. 이를 통해 원하는 경우 표시 이름 또는 초기값을 변경할 수 있습니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/selfservice/ 디렉터리에 있는 selfservice- present.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-present.yml selfservice-present-copy.yml
  3. 편집할 selfservice-present-copy.yml Ansible 플레이북 파일을 엽니다.
  4. ipaselfservice 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 새 셀프 서비스 규칙의 이름으로 설정합니다.
    • 권한 변수를 쉼표로 구분된 권한 목록( 읽기쓰기 )으로 설정합니다.
    • attribute 변수를 givenname,displayname ,title, initials 등 사용자가 자체적으로 관리할 수 있는 속성 목록으로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Self-service present
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure self-service rule "Users can manage their own name details" is present
        ipaselfservice:
          ipaadmin_password: Secret123
          name: "Users can manage their own name details"
          permission: read, write
          attribute:
          - givenname
          - displayname
          - title
          - initials
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory selfservice-present-copy.yml

추가 리소스

  • 셀프 서비스 규칙 개념에 대한 자세한 내용은 IdM의 셀프 서비스 액세스 제어를 참조하십시오.
  • ipaselfservice 모듈을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible -freeipa/ 디렉터리에 있는 README- selfservice.md 파일. 이 파일에는 ipaselfservice 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/selfservice 디렉토리.

21.3. Ansible을 사용하여 셀프 서비스 규칙이 없는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM 구성에 지정된 셀프 서비스 규칙이 없는지 확인하는 방법을 설명합니다. 아래 예제에서는 IdM에 사용자가 자체 이름 세부 정보 셀프 서비스 규칙이 없는지 확인하는 방법을 설명합니다. 이렇게 하면 사용자가 예를 들어 자체 표시 이름 또는 초기값을 변경할 수 없습니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/selfservice/ 디렉터리에 있는 selfservice- absent.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-absent.yml selfservice-absent-copy.yml
  3. selfservice-absent-copy.yml Ansible 플레이북 파일을 편집하여 편집합니다.
  4. ipaselfservice 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 셀프 서비스 규칙의 이름으로 설정합니다.
    • state 변수를 absent 로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Self-service absent
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure self-service rule "Users can manage their own name details" is absent
        ipaselfservice:
          ipaadmin_password: Secret123
          name: "Users can manage their own name details"
          state: absent
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory selfservice-absent-copy.yml

추가 리소스

  • 셀프 서비스 규칙 개념에 대한 자세한 내용은 IdM의 셀프 서비스 액세스 제어를 참조하십시오.
  • ipaselfservice 모듈을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible -freeipa/ 디렉터리에 있는 README- selfservice.md 파일. 이 파일에는 ipaselfservice 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/selfservice 디렉토리.

21.4. Ansible을 사용하여 셀프 서비스 규칙에 특정 특성이 있는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 기존 셀프 서비스 규칙에 특정 설정이 있는지 확인하는 방법을 설명합니다. 이 예제에서는 사용자가 자신의 이름 세부 정보 셀프 서비스 규칙에 멤버 속성도 관리할 수 있는지 확인합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
  • 사용자는 IdM에 있는 고유한 이름 세부 정보 셀프 서비스 규칙을 관리할 수 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/selfservice/ 디렉터리에 있는 selfservice- member-present.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-member-present.yml selfservice-member-present-copy.yml
  3. selfservice-member-present-copy.yml Ansible 플레이북 파일을 편집하여 편집합니다.
  4. ipaselfservice 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 수정할 셀프 서비스 규칙의 이름으로 설정합니다.
    • 특성 변수를 성으로 설정합니다.
    • action 변수를 member 로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Self-service member present
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure selfservice "Users can manage their own name details" member attribute surname is present
        ipaselfservice:
          ipaadmin_password: Secret123
          name: "Users can manage their own name details"
          attribute:
          - surname
          action: member
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory selfservice-member-present-copy.yml

추가 리소스

  • 셀프 서비스 규칙 개념에 대한 자세한 내용은 IdM의 셀프 서비스 액세스 제어를 참조하십시오.
  • ipaselfservice 모듈을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible -freeipa/ 디렉터리에 있는 README- selfservice.md 파일. 이 파일에는 ipaselfservice 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/selfservice 디렉토리.

21.5. Ansible을 사용하여 셀프 서비스 규칙에 특정 속성이 없는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 셀프 서비스 규칙에 특정 설정이 없는지 확인하는 방법을 설명합니다. 이 플레이북을 사용하여 셀프 서비스 규칙이 바람직하지 않은 액세스 권한을 부여하지 않도록 할 수 있습니다. 이 예에서 사용자는 이름 세부 정보 셀프 서비스 규칙에 지정된 이름과 멤버 속성이 없는지 확인합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • ~/MyPlaybooks/ 디렉터리에 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
  • 사용자는 IdM에 있는 고유한 이름 세부 정보 셀프 서비스 규칙을 관리할 수 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/selfservice/ 디렉터리에 있는 selfservice-member- absent.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/selfservice/selfservice-member-absent.yml selfservice-member-absent-copy.yml
  3. selfservice-member-absent-copy.yml Ansible 플레이북 파일을 편집하여 편집합니다.
  4. ipaselfservice 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 수정할 셀프 서비스 규칙의 이름으로 설정합니다.
    • 특성 변수를 주어진 이름 및 성으로 설정합니다.
    • action 변수를 member 로 설정합니다.
    • state 변수를 absent 로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Self-service member absent
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure selfservice "Users can manage their own name details" member attributes givenname and surname are absent
        ipaselfservice:
          ipaadmin_password: Secret123
          name: "Users can manage their own name details"
          attribute:
          - givenname
          - surname
          action: member
          state: absent
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i inventory selfservice-member-absent-copy.yml

추가 리소스

  • 셀프 서비스 규칙 개념에 대한 자세한 내용은 IdM의 셀프 서비스 액세스 제어를 참조하십시오.
  • ipaselfservice 모듈을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible -freeipa/ 디렉터리에 있는 README- selfservice.md 파일. 이 파일에는 ipaselfservice 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/selfservice 디렉토리.

22장. IdM CLI를 사용하여 사용자를 관리하기 위해 사용자 그룹에 권한을 위임

위임은 IdM의 액세스 제어 방법 중 하나로 셀프 서비스 규칙 및 역할 기반 액세스 제어(RBAC)와 함께 사용됩니다. 위임을 사용하여 한 사용자 그룹에 권한을 할당하여 다른 사용자 그룹의 항목을 관리할 수 있습니다.

이 섹션에서는 다음 주제를 다룹니다.

22.1. 위임 규칙

위임 규칙을 만들어 사용자 그룹에 권한을 위임하여 사용자를 관리할 수 있습니다.

위임 규칙을 사용하면 특정 사용자 그룹이 다른 사용자 그룹의 특정 속성에 대한 쓰기(편집) 작업을 수행할 수 있습니다. 이 형태의 액세스 제어 규칙은 위임 규칙에서 지정한 속성의 값 편집으로 제한됩니다. 전체 항목을 추가 또는 제거하는 기능을 부여하지 않습니다. 지정되지 않은 속성에 대해 전체 항목을 추가하거나 제어하는 기능을 부여하지 않습니다.

위임 규칙은 IdM의 기존 사용자 그룹에 권한을 부여합니다. 예를 들어 위임을 사용하여 managers 사용자 그룹이 employees 사용자 그룹에서 선택한 사용자 속성을 관리할 수 있습니다.

22.2. IdM CLI를 사용하여 위임 규칙 생성

이 섹션에서는 IdM CLI를 사용하여 위임 규칙을 생성하는 방법에 대해 설명합니다.

사전 요구 사항

  • admins 그룹의 멤버로 로그인했습니다.

절차

  • ipa delegation-add 명령을 입력합니다. 다음 옵션을 지정합니다.

    • --group: 사용자 그룹의 사용자 항목에 권한을 부여하는 그룹입니다.
    • --membergroup: 위임 그룹의 멤버가 항목을 편집할 수 있는 그룹입니다.
    • --permissions: 사용자가 지정된 속성을 보고(읽기) 지정된 속성을 보고 주어진 속성을 추가하거나 변경할 수 있는지(쓰기). 권한을 지정하지 않으면 쓰기 권한만 추가됩니다.
    • --attrs: 멤버 그룹의 사용자가 보거나 편집할 수 있는 속성입니다.

    예를 들면 다음과 같습니다.

$ ipa delegation-add "basic manager attributes" --permissions=read --permissions=write --attrs=businesscategory --attrs=departmentnumber --attrs=employeetype --attrs=employeenumber --group=managers --membergroup=employees
-------------------------------------------
Added delegation "basic manager attributes"
-------------------------------------------
  Delegation name: basic manager attributes
  Permissions: read, write
  Attributes: businesscategory, departmentnumber, employeetype, employeenumber
  Member user group: employees
  User group: managers

22.3. IdM CLI를 사용하여 기존 위임 규칙 보기

이 섹션에서는 IdM CLI를 사용하여 기존 위임 규칙을 보는 방법에 대해 설명합니다.

사전 요구 사항

  • admins 그룹의 멤버로 로그인했습니다.

절차

  • ipa delegation-find 명령을 입력합니다.
$ ipa delegation-find
--------------------
1 delegation matched
--------------------
  Delegation name: basic manager attributes
  Permissions: read, write
  Attributes: businesscategory, departmentnumber, employeenumber, employeetype
  Member user group: employees
  User group: managers
----------------------------
Number of entries returned 1
----------------------------

22.4. IdM CLI를 사용하여 위임 규칙 수정

이 섹션에서는 IdM CLI를 사용하여 기존 위임 규칙을 수정하는 방법을 설명합니다.

중요

--attrs 옵션은 지원되는 속성의 이전 목록을 덮어쓰므로 항상 새 속성과 함께 전체 속성 목록을 포함합니다. 이는 --permissions 옵션에도 적용됩니다.

사전 요구 사항

  • admins 그룹의 멤버로 로그인했습니다.

절차

  • 원하는 변경 사항을 사용하여 ipa delegation-mod 명령을 입력합니다. 예를 들어 기본 관리자 속성 예제 규칙에 displayname 속성을 추가하려면 다음을 수행합니다.

    $ ipa delegation-mod "basic manager attributes" --attrs=businesscategory --attrs=departmentnumber --attrs=employeetype --attrs=employeenumber --attrs=displayname
    ----------------------------------------------
    Modified delegation "basic manager attributes"
    ----------------------------------------------
      Delegation name: basic manager attributes
      Permissions: read, write
      Attributes: businesscategory, departmentnumber, employeetype, employeenumber, displayname
      Member user group: employees
      User group: managers

22.5. IdM CLI를 사용하여 위임 규칙 삭제

이 섹션에서는 IdM CLI를 사용하여 기존 위임 규칙을 삭제하는 방법을 설명합니다.

사전 요구 사항

  • admins 그룹의 멤버로 로그인했습니다.

절차

  • ipa delegation-del 명령을 입력합니다.
  • 메시지가 표시되면 삭제할 위임 규칙의 이름을 입력합니다.

    $ ipa delegation-del
    Delegation name: basic manager attributes
    ---------------------------------------------
    Deleted delegation "basic manager attributes"
    ---------------------------------------------

23장. IdM WebUI를 사용하여 사용자를 관리하기 위해 사용자 그룹에 권한을 위임

위임은 IdM의 액세스 제어 방법 중 하나로 셀프 서비스 규칙 및 역할 기반 액세스 제어(RBAC)와 함께 사용됩니다. 위임을 사용하여 한 사용자 그룹에 권한을 할당하여 다른 사용자 그룹의 항목을 관리할 수 있습니다.

이 섹션에서는 다음 주제를 다룹니다.

23.1. 위임 규칙

위임 규칙을 만들어 사용자 그룹에 권한을 위임하여 사용자를 관리할 수 있습니다.

위임 규칙을 사용하면 특정 사용자 그룹이 다른 사용자 그룹의 특정 속성에 대한 쓰기(편집) 작업을 수행할 수 있습니다. 이 형태의 액세스 제어 규칙은 위임 규칙에서 지정한 속성의 값 편집으로 제한됩니다. 전체 항목을 추가 또는 제거하는 기능을 부여하지 않습니다. 지정되지 않은 속성에 대해 전체 항목을 추가하거나 제어하는 기능을 부여하지 않습니다.

위임 규칙은 IdM의 기존 사용자 그룹에 권한을 부여합니다. 예를 들어 위임을 사용하여 managers 사용자 그룹이 employees 사용자 그룹에서 선택한 사용자 속성을 관리할 수 있습니다.

23.2. IdM WebUI를 사용하여 위임 규칙 생성

이 섹션에서는 IdM WebUI를 사용하여 위임 규칙을 생성하는 방법에 대해 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 admins 그룹의 멤버로 로그인했습니다.

절차

  1. IPA 서버 메뉴에서 역할 기반 액세스 제어위임을 클릭합니다.
  2. 추가를 클릭합니다.

    "IPA 서버" 탭에서 "역할 기반 액세스 제어" 드롭다운 하위 메뉴의 콘텐츠를 표시하는 IdM 웹 UI의 스크린샷입니다. "역할 기반 액세스 제어" 드롭다운 메뉴에는 5가지 옵션이 있습니다. 역할 - 권한 - 권한 - 자체 서비스 권한 - 위임.
  3. Add delegation(디렉토리 추가 ) 창에서 다음을 수행합니다.

    1. 새 위임 규칙의 이름을 지정합니다.
    2. 사용자가 지정된 속성(읽기)을 보고 지정된 속성을 추가하거나 변경할 수 있는지 여부를 나타내는 확인란을 선택하여 권한을 설정합니다.
    3. User group(사용자 그룹) 드롭다운 메뉴에서 권한을 부여 받고 있는 그룹을 선택하여 멤버 그룹에서 사용자 항목을 보거나 편집할 수 있습니다.
    4. Member 사용자 그룹 드롭다운 메뉴에서 위임 그룹의 구성원이 편집할 수 있는 그룹을 선택합니다.
    5. attributes(속성) 상자에서 권한을 부여할 속성별로 확인란을 선택합니다.

      위임에 대한 세부 정보를 입력할 수 있는 "Add delegation"(분리 추가) 팝업 창의 스크린샷입니다. 항목 옵션에는 위임 이름의 텍스트 필드와 "read" 및 "write" 권한의 확인란이 포함되어 있습니다. User 그룹에 대한 드롭다운 메뉴, 즉 Member 사용자 그룹의 드롭다운 메뉴와 Attributes(예: departmentnumber - employeenumber - businesscategory - employeetype)의 많은 확인란도 있습니다.
    6. Add(추가 ) 버튼을 클릭하여 새 위임 규칙을 저장합니다.

23.3. IdM WebUI를 사용하여 기존 위임 규칙 보기

이 섹션에서는 IdM WebUI를 사용하여 기존 위임 규칙을 보는 방법에 대해 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 admins 그룹의 멤버로 로그인했습니다.

절차

  • IPA 서버 메뉴에서 역할 기반 액세스 제어위임을 클릭합니다.

    "IPA 서버" 탭의 "역할 기반 액세스 제어" 하위 메뉴의 "Delegations" 페이지를 표시하는 IdM 웹 UI의 스크린샷입니다. "강의 이름"으로 구성된 위임을 표시하는 테이블이 있습니다.

23.4. IdM WebUI를 사용하여 위임 규칙 수정

이 섹션에서는 IdM WebUI를 사용하여 기존 위임 규칙을 수정하는 방법에 대해 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 admins 그룹의 멤버로 로그인했습니다.

절차

  1. IPA 서버 메뉴에서 역할 기반 액세스 제어위임을 클릭합니다.

    IPA 서버 탭에서 역할 기반 액세스 제어 하위 페이지를 표시하는 IdM 웹 UI의 스크린샷입니다. 위임 페이지에는 "basic manager attributes" 위임 이름에 대한 항목이 있는 테이블이 표시됩니다.
  2. 수정할 규칙을 클릭합니다.
  3. 원하는 대로 변경합니다.

    • 규칙의 이름을 변경합니다.
    • 사용자가 지정된 속성(읽기)을 보고 지정된 속성을 추가하거나 변경할 수 있는지 여부를 나타내는 확인란을 선택하여 부여된 권한을 변경합니다.
    • User group(사용자 그룹) 드롭다운 메뉴에서 권한을 부여 받고 있는 그룹을 선택하여 멤버 그룹에서 사용자 항목을 보거나 편집할 수 있습니다.
    • Member 사용자 그룹 드롭다운 메뉴에서 위임 그룹의 구성원이 편집할 수 있는 그룹을 선택합니다.
    • attributes(속성) 상자에서 권한을 부여할 속성별로 확인란을 선택합니다. 속성에 대한 권한을 제거하려면 관련 확인란을 선택 취소합니다.

      위임 페이지에는 위임 이름 - 권한(예: "읽기" 및 "쓰기")과 같은 위임에 대한 세부 정보가 표시됩니다. - 사용자 그룹(예: "관리자"과 같이 필수) - 멤버 사용자 그룹(예: "직원 유형"과 같은 필수) 및 속성(예: employeetype - businesscategory - departmentnumber - displayname - employeenumber - homedirectory)과 같은 속성이 표시됩니다. 왼쪽 상단에 있는 "save" 버튼이 강조 표시됩니다.
    • Save(저장 ) 버튼을 클릭하여 변경 사항을 저장합니다.

23.5. IdM WebUI를 사용하여 위임 규칙 삭제

이 섹션에서는 IdM WebUI를 사용하여 기존 위임 규칙을 삭제하는 방법을 설명합니다.

사전 요구 사항

  • IdM 웹 UI에 admins 그룹의 멤버로 로그인했습니다.

절차

  1. IPA 서버 메뉴에서 역할 기반 액세스 제어위임을 클릭합니다.
  2. 제거할 규칙 옆에 있는 확인란을 선택합니다.
  3. 삭제를 클릭합니다.

    "IPA 서버" 탭의 "역할 기반 액세스 제어" 하위 메뉴의 스크린샷입니다. "Delegations" 페이지에 위임 이름이 있는 테이블과 "basic manager attributes" 항목의 확인란이 선택되어 있습니다. "Delete"(삭제) 버튼이 강조 표시되었습니다.
  4. Delete(삭제) 를 클릭하여 확인합니다.

24장. Ansible 플레이북을 사용하여 사용자를 관리하기 위해 사용자 그룹에 권한을 위임

위임은 IdM의 액세스 제어 방법 중 하나로 셀프 서비스 규칙 및 역할 기반 액세스 제어(RBAC)와 함께 사용됩니다. 위임을 사용하여 한 사용자 그룹에 권한을 할당하여 다른 사용자 그룹의 항목을 관리할 수 있습니다.

이 섹션에서는 다음 주제를 다룹니다.

24.1. 위임 규칙

위임 규칙을 만들어 사용자 그룹에 권한을 위임하여 사용자를 관리할 수 있습니다.

위임 규칙을 사용하면 특정 사용자 그룹이 다른 사용자 그룹의 특정 속성에 대한 쓰기(편집) 작업을 수행할 수 있습니다. 이 형태의 액세스 제어 규칙은 위임 규칙에서 지정한 속성의 값 편집으로 제한됩니다. 전체 항목을 추가 또는 제거하는 기능을 부여하지 않습니다. 지정되지 않은 속성에 대해 전체 항목을 추가하거나 제어하는 기능을 부여하지 않습니다.

위임 규칙은 IdM의 기존 사용자 그룹에 권한을 부여합니다. 예를 들어 위임을 사용하여 managers 사용자 그룹이 employees 사용자 그룹에서 선택한 사용자 속성을 관리할 수 있습니다.

24.2. IdM용 Ansible 인벤토리 파일 생성

Ansible을 사용하는 경우 홈 디렉터리에서 /usr/share/doc/ ansible-freeipa/* 및 /usr/share/doc -roles/* 하위 디렉터리를 복사하고 적응하는 Ansible 플레이북 전용 하위 디렉터리를 생성하는 것이 좋습니다. 이 연습에는 다음과 같은 이점이 있습니다.

  • 모든 플레이북을 한 곳에서 찾을 수 있습니다.
  • 루트 권한을 호출하지 않고 플레이북을 실행할 수 있습니다.

절차

  1. 홈 디렉터리에서 Ansible 구성 및 플레이북의 디렉터리를 생성합니다.

    $ mkdir ~/MyPlaybooks/
  2. ~/MyPlaybooks/ 디렉터리로 변경합니다.

    $ cd ~/MyPlaybooks
  3. 다음 콘텐츠를 사용하여 ~/Myplaybooks/ansible.cfg 파일을 만듭니다.

    [defaults]
    inventory = /home/<username>/MyPlaybooks/inventory
    
    [privilege_escalation]
    become=True
  4. 다음 콘텐츠를 사용하여 ~/Myplaybooks/inventory 파일을 만듭니다.

    [eu]
    server.idm.example.com
    
    [us]
    replica.idm.example.com
    
    [ipaserver:children]
    eu
    us

    이 구성은 이러한 위치에 있는 호스트에 대한 두 개의 호스트 그룹인 euus 를 정의합니다. 또한 이 구성은 euus 그룹의 모든 호스트를 포함하는 ipaserver 호스트 그룹을 정의합니다.

24.3. Ansible을 사용하여 위임 규칙이 있는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 새 IdM 위임 규칙에 대한 권한을 정의하고 해당 규칙이 있는지 확인하는 방법을 설명합니다. 이 예제에서 새 기본 관리자 속성 위임 규칙은 managers 그룹에 employees 그룹 구성원에 대해 다음 속성을 읽고 쓸 수 있는 기능을 부여합니다.

  • businesscategory
  • departmentnumber
  • employeenumber
  • employeetype

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드를 구성했습니다.

    • Ansible 버전 2.8 이상을 사용하고 있습니다.
    • ansible-freeipa 패키지를 설치했습니다.
    • 이러한 옵션을 구성하는 IdM 서버의 정규화된 도메인 이름(FQDN)을 사용하여 Ansible 인벤토리 파일을 생성했습니다.
    • Ansible 인벤토리 파일은 ~/MyPlaybooks/ 디렉터리에 있습니다.

절차

  1. ~/MyPlaybooks/ 디렉터리로 이동합니다.

    $ cd ~/MyPlaybooks/
  2. /usr/share/doc/ansible -freeipa/playbooks/delegation/ 디렉토리에 있는 delegation- present.yml 파일의 복사본을 만듭니다.

    $ cp /usr/share/doc/ansible-freeipa/playbooks/delegation/delegation-present.yml delegation-present-copy.yml
  3. 편집 할 delegation-present-copy.yml Ansible 플레이북 파일을 엽니다.
  4. ipadelegation 작업 섹션에서 다음 변수를 설정하여 파일을 조정합니다.

    • ipaadmin_password 변수를 IdM 관리자의 암호로 설정합니다.
    • name 변수를 새 위임 규칙의 이름으로 설정합니다.
    • 권한 변수를 쉼표로 구분된 권한 목록( 읽기쓰기 )으로 설정합니다.
    • 속성 변수를 위임된 사용자 그룹이 관리할 수 있는 속성 목록(business category,departmentnumber, employeenumber, employeetype ) 으로 설정합니다.
    • 그룹 변수를 특성 보기 또는 수정에 대한 액세스 권한이 부여되는 그룹의 이름으로 설정합니다.
    • membergroup 변수를 속성을 보거나 수정할 수 있는 그룹의 이름으로 설정합니다.

    이는 현재 예제에 대한 수정된 Ansible 플레이북 파일입니다.

    ---
    - name: Playbook to manage a delegation rule
      hosts: ipaserver
      become: true
    
      tasks:
      - name: Ensure delegation "basic manager attributes" is present
        ipadelegation:
          ipaadmin_password: Secret123
          name: "basic manager attributes"
          permission: read, write
          attribute:
          - businesscategory
          - departmentnumber
          - employeenumber
          - employeetype
          group: managers
          membergroup: employees
  5. 파일을 저장합니다.
  6. 플레이북 파일 및 인벤토리 파일을 지정하는 Ansible 플레이북을 실행합니다.

    $ ansible-playbook -v -i ~/MyPlaybooks/inventory delegation-present-copy.yml

추가 리소스

  • 위임 규칙 개념에 대한 자세한 내용은 위임 규칙을 참조하십시오.
  • ipadelegation 모듈을 사용하는 샘플 Ansible Playbook은 다음을 참조하십시오.

    • /usr/share/doc/ansible -freeipa/ 디렉터리에 있는 README- delegation.md 파일. 이 파일에는 ipadelegation 변수 정의도 포함되어 있습니다.
    • /usr/share/doc/ansible-freeipa/playbooks/ipadelegation 디렉토리.

24.4. Ansible을 사용하여 위임 규칙이 없는지 확인합니다.

다음 절차에서는 Ansible 플레이북을 사용하여 IdM 구성에 지정된 위임 규칙이 없는지 확인하는 방법을 설명합니다. 아래 예제에서는 사용자 지정 기본 관리자 속성 위임 규칙이 IdM에 없는지 확인하는 방법을 설명합니다.

사전 요구 사항

  • IdM 관리자 암호를 알고 있습니다.
  • 다음 요구 사항을 충족하는 Ansible 제어 노드