11.6. 사용자 및 그룹에 외부 프로비저닝 시스템 사용
Identity Management는 사용자 환경 구성을 지원하므로 ID 관리를 위한 외부 솔루션을 사용하여 IdM에서 사용자 및 그룹 ID를 프로비저닝할 수 있습니다. 이 섹션에서는 이러한 구성의 예를 설명합니다. 예제에는 다음이 포함됩니다.
11.6.1. 외부 프로비저닝 시스템에서 사용하도록 사용자 계정 구성 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 외부 프로비저닝 시스템에서 사용할 두 개의 IdM 사용자 계정을 구성하는 방법을 보여줍니다. 적절한 암호 정책을 사용하여 계정을 그룹에 추가하면 외부 프로비저닝 시스템을 사용하여 IdM에서 사용자 프로비저닝을 관리할 수 있습니다.
- 스테이지 사용자를 추가할 수 있는 권한이 있는 사용자,
provisionator를 생성합니다. 사용자 계정은 외부 프로비저닝 시스템에서 새 스테이징 사용자를 추가하기 위해 사용합니다.provisionator사용자 계정을 추가합니다.$ ipa user-add provisionator --first=provisioning --last=account --password- Provision
ator 사용자에게필요한 권한을 부여합니다.사용자 지정 역할시스템 프로비저닝을 생성하여 스테이지 사용자 추가를 관리합니다.$ ipa role-add --desc "Responsible for provisioning stage users" "System Provisioning"역할에Stage User Provisioning권한을 추가합니다. 이 권한은 스테이징 사용자를 추가할 수 있는 기능을 제공합니다.$ ipa role-add-privilege "System Provisioning" --privileges="Stage User Provisioning"Provisionator사용자를 역할에 추가합니다.$ ipa role-add-member --users=provisionator "System Provisioning"
- 사용자 계정을 관리할 수 있는 권한이 있는 사용자,
활성화기를만듭니다. 사용자 계정은 외부 프로비저닝 시스템에서 추가한 스테이징 사용자를 자동으로 활성화하는 데 사용됩니다.activator사용자 계정을 추가합니다.$ ipa user-add activator --first=activation --last=account --password활성화기 사용자에게 필요한 권한을 부여합니다.기본사용자 관리자역할에 사용자를 추가합니다.$ ipa role-add-member --users=activator "User Administrator"
- 서비스 및 애플리케이션 계정에 대한 사용자 그룹을 생성합니다.
$ ipa group-add service-accounts - 그룹의 암호 정책을 업데이트합니다. 다음 정책은 계정의 암호 만료 및 잠금을 금지하지만 복잡한 암호를 요구하여 잠재적인 위험을 보상합니다.
$ ipa pwpolicy-add service-accounts --maxlife=10000 --minlife=0 --history=0 --minclasses=4 --minlength=20 --priority=1 --maxfail=0 --failinterval=1 --lockouttime=0 - 서비스 및 애플리케이션 계정의 그룹에 프로비저닝 및 활성화 계정을 추가합니다.
$ ipa group-add-member service-accounts --users={provisionator,activator} - 사용자 계정의 암호를 변경합니다.
$ kpasswd provisionator $ kpasswd activator새 IdM 사용자의 암호가 즉시 만료되므로 암호를 변경해야 합니다.
추가 리소스:
- 새 사용자 추가에 대한 자세한 내용은 11.2.1절. “단계 또는 활성 사용자 추가” 을 참조하십시오.
- 사용자에게 다른 사용자 계정을 관리하는 데 필요한 권한을 부여하는 방법에 대한 자세한 내용은 11.5절. “관리자가 아닌 사용자가 사용자 항목을 관리하도록 허용” 을 참조하십시오.
- IdM 암호 정책 관리에 대한 자세한 내용은 28장. 암호 정책 정의 을 참조하십시오.
11.6.2. 자동으로 사용자 계정을 활성화하도록 IdM 구성 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 단계 사용자를 활성화하기 위한 스크립트를 생성하는 방법을 설명합니다. 시스템은 지정된 시간 간격으로 자동으로 스크립트를 실행합니다. 이렇게 하면 새 사용자 계정이 자동으로 활성화되고 생성된 직후 사용할 수 있습니다.
중요
이 절차에서는 스크립트에서 IdM에 추가하기 전에 새 사용자 계정을 검증할 필요가 없다고 가정합니다. 예를 들어, 사용자가 외부 프로비저닝 시스템의 소유자에서 이미 유효성을 검사한 경우 검증이 필요하지 않습니다.
IdM 서버 중 하나에서만 활성화 프로세스를 활성화하는 것으로 충분합니다.
- 활성 계정의 키탭 파일을 생성합니다.
# ipa-getkeytab -s example.com -p "activator" -k /etc/krb5.ipa-activation.keytab둘 이상의 IdM 서버에서 활성화 프로세스를 활성화하려면 한 서버에만 키탭 파일을 생성합니다. 그런 다음 키탭 파일을 다른 서버에 복사합니다. - 모든 사용자를 활성화하려면 다음 내용과 함께
/usr/local/sbin/ipa-activate-all스크립트를 만듭니다.#!/bin/bash kinit -k -i activator ipa stageuser-find --all --raw | grep " uid:" | cut -d ":" -f 2 | while read uid; do ipa stageuser-activate ${uid}; done ipa-activate-all스크립트의 권한 및 소유권을 편집하여 실행 가능하게 합니다.# chmod 755 /usr/local/sbin/ipa-activate-all # chown root:root /usr/local/sbin/ipa-activate-all- 다음 콘텐츠를 사용하여
systemd장치 파일/etc/systemd/system/ipa-activate-all.service를 만듭니다.[Unit] Description=Scan IdM every minute for any stage users that must be activated [Service] Environment=KRB5_CLIENT_KTNAME=/etc/krb5.ipa-activation.keytab Environment=KRB5CCNAME=FILE:/tmp/krb5cc_ipa-activate-all ExecStart=/usr/local/sbin/ipa-activate-all - 다음 콘텐츠와 함께
systemd타이머/etc/systemd/system/ipa-activate-all.timer를 만듭니다.[Unit] Description=Scan IdM every minute for any stage users that must be activated [Timer] OnBootSec=15min OnUnitActiveSec=1min [Install] WantedBy=multi-user.target ipa-activate-all.timer활성화 :# systemctl enable ipa-activate-all.timer
추가 리소스:
systemd장치 파일에 대한 자세한 내용은 시스템 관리자 가이드의 systemd 단위 파일을 사용하여 서비스 관리 장을 참조하십시오.
11.6.3. IdM ID 관리를 위해 외부 프로비저닝 시스템의 LDAP 공급자 구성 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 다양한 사용자 및 그룹 관리 작업에 대한 템플릿을 보여줍니다. 이러한 템플릿을 사용하여 IdM 사용자 계정을 관리하도록 프로비저닝 시스템의 LDAP 프로바이더를 구성할 수 있습니다. 예를 들어 직원이 퇴사한 후 사용자 계정을 활성화하도록 시스템을 구성할 수 있습니다.
LDAP를 사용하여 사용자 계정 관리
새 사용자 항목을 추가하거나, 기존 항목을 수정하거나, 기존 항목을 수정하거나, 다른 라이프사이클 상태 간에 사용자를 이동하거나, 기본 Directory Server 데이터베이스를 편집하여 사용자를 삭제할 수 있습니다. 데이터베이스를 편집하려면
ldapmodify 유틸리티를 사용합니다.
다음 LDIF 형식의 템플릿은
ldapmodify 를 사용하여 수정할 속성에 대한 정보를 제공합니다. 자세한 예제 프로시저는 예 11.2. “ldapmodify를 사용하여 단계 사용자 추가” 및 예 11.3. “ldapmodify를 사용하여 사용자 유지” 을 참조하십시오.
- 새 단계 사용자 추가
- UID 및 GID가 자동으로 할당된 사용자를 추가합니다.
dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=example,dc=com changetype: add objectClass: top objectClass: inetorgperson uid: user_login sn: surname givenName: first_name cn: full_nameUID 및 GID가 정적으로 할당된 사용자 추가:dn: uid=user_login,cn=staged users,cn=accounts,cn=provisioning,dc=example,dc=com changetype: add objectClass: top objectClass: person objectClass: inetorgperson objectClass: organizationalperson objectClass: posixaccount uid: user_login uidNumber: UID_number gidNumber: GID_number sn: surname givenName: first_name cn: full_name homeDirectory: /home/user_login스테이징 사용자를 추가할 때 IdM 오브젝트 클래스를 지정할 필요는 없습니다. IdM은 사용자가 활성화되면 이러한 클래스를 자동으로 추가합니다.생성된 항목의 고유 이름(DN)은uid=user_login으로 시작해야 합니다. - 기존 사용자 수정
- 사용자를 수정하기 전에 사용자 로그인으로 검색하여 사용자의 고유 이름(DN)을 가져옵니다. 다음 예제에서 user_allowed_to_read 사용자는 사용자와 그룹 정보를 읽을 수 있는 사용자이며 암호 는 이 사용자의 암호입니다.
# ldapsearch -LLL -x -D "uid=user_allowed_to_read,cn=users,cn=accounts,dc=example, dc=com" -w "password" -H ldap://server.example.com -b "cn=users, cn=accounts, dc=example, dc=com" uid=user_login사용자의 특성을 수정하려면 다음을 수행합니다.dn: distinguished_name changetype: modify replace: attribute_to_modify attribute_to_modify: new_value사용자를 비활성화하려면 다음을 수행합니다.dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: TRUE사용자를 활성화하려면 다음을 수행합니다.dn: distinguished_name changetype: modify replace: nsAccountLock nsAccountLock: FALSE사용자를 보존하려면 다음을 수행합니다.dn: distinguished_name changetype: modrdn newrdn: uid=user_login deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=examplenssAccountLock특성을 업데이트해도 스테이지 및 보존된 사용자에게는 영향을 미치지 않습니다. 업데이트 작업이 성공적으로 완료되었지만 속성 값은nssAccountLock로 유지됩니다. TRUE. - 새 그룹 만들기
- 새 그룹을 생성하려면 다음을 수행합니다.
dn: cn=group_distinguished_name,cn=groups,cn=accounts,dc=example,dc=com changetype: add objectClass: top objectClass: ipaobject objectClass: ipausergroup objectClass: groupofnames objectClass: nestedgroup objectClass: posixgroup cn: group_name gidNumber: GID_number - 그룹 수정
- 그룹을 수정하기 전에 그룹 이름으로 검색하여 그룹의 고유 이름(DN)을 가져옵니다.
# ldapsearch -YGSSAPI -H ldap://server.example.com -b "cn=groups,cn=accounts,dc=example,dc=com" "cn=group_name"기존 그룹을 삭제하려면 다음을 수행합니다.dn: group_distinguished_name changetype: delete그룹에 멤버를 추가하려면 다음을 수행합니다.dn: group_distinguished_name changetype: modify add: member member: uid=user_login,cn=users,cn=accounts,dc=example,dc=com그룹에서 멤버를 제거하려면 다음을 수행합니다.dn: distinguished_name changetype: modify delete: member member: uid=user_login,cn=users,cn=accounts,dc=example,dc=com스테이징 또는 보존된 사용자를 그룹에 추가하지 마십시오. 업데이트 작업이 성공적으로 완료되지만 사용자는 그룹의 멤버로 업데이트되지 않습니다. 활성 사용자만 그룹에 속할 수 있습니다.
예 11.2. ldapmodify를 사용하여 단계 사용자 추가
표준
interorgperson 오브젝트 클래스를 사용하여 새 stageuser 사용자를 추가하려면 다음을 수행합니다.
ldapmodify를 사용하여 사용자를 추가합니다.# ldapmodify -Y GSSAPI SASL/GSSAPI authentication started SASL username: admin@EXAMPLE SASL SSF: 56 SASL data security layer installed. dn: uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=example changetype: add objectClass: top objectClass: inetorgperson cn: Stage sn: User adding new entry "uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=example"- 스테이징 항목의 콘텐츠의 유효성을 검사하여 프로비저닝 시스템이 필요한 모든 POSIX 속성을 추가하고 stage 항목을 활성화할 준비가 되었는지 확인합니다. ipa stageuser-show --all --raw 명령을 사용하여 새 단계 사용자의 LDAP 속성을 표시합니다. 사용자는
nsaccountlock특성을 통해 명시적으로 비활성화되어 있습니다.$ ipa stageuser-show stageuser --all --raw dn: uid=stageuser,cn=staged users,cn=accounts,cn=provisioning,dc=example uid: stageuser sn: User cn: Stage has_password: FALSE has_keytab: FALSE nsaccountlock: TRUE objectClass: top objectClass: inetorgperson objectClass: organizationalPerson objectClass: person
예 11.3. ldapmodify를 사용하여 사용자 유지
LDAP
modrdn 작업을 사용하여 사용자를 보존하려면 다음을 수행합니다.
ldapmodify유틸리티를 사용하여 사용자 항목을 수정합니다.$ ldapmodify -Y GSSAPI SASL/GSSAPI authentication started SASL username: admin@EXAMPLE SASL SSF: 56 SASL data security layer installed. dn: uid=user1,cn=users,cn=accounts,dc=example changetype: modrdn newrdn: uid=user1 deleteoldrdn: 0 newsuperior: cn=deleted users,cn=accounts,cn=provisioning,dc=example modifying rdn of entry "uid=user1,cn=users,cn=accounts,dc=example"- 필요한 경우, 보존된 사용자를 모두 나열하여 사용자가 보존되었는지 확인합니다.
$ ipa user-find --preserved=true --------------- 1 user matched --------------- User login: user1 First name: first_name Last name: last_name ... ---------------------------- Number of entries returned 1 ----------------------------