3장. 사용자 관리 및 인증


사용자 액세스 권한, 리소스 제한, 사용자 그룹 및 사용자 역할을 관리하는 방법을 알아봅니다. 암호 및 계정 잠금 정책을 구성하고, 사용자 그룹에 대한 액세스를 거부하며, 바인딩 고유 이름(바인드 DN)에 따라 시스템 리소스를 제한할 수 있습니다.

3.1. Directory Server에서 그룹 사용

Directory Server의 그룹에 사용자를 추가할 수 있습니다. 그룹은 디렉터리 항목을 그룹화하는 메커니즘 중 하나로, 사용자 계정 관리를 단순화합니다.

그룹을 사용하는 경우 Directory Server는 이 그룹의 멤버인 사용자의 고유 이름(DN)을 그룹 항목의 멤버십 속성에 저장합니다. 이 특수 속성은 그룹 항목을 생성할 때 선택하는 오브젝트 클래스에 의해 정의됩니다. 그룹 유형에 대한 자세한 내용은 Directory Server의 그룹 유형을 참조하십시오.

그룹이 역할보다 빠릅니다. 그러나 그룹이 역할의 이점을 얻으려면 MemberOf 플러그인을 활성화해야 합니다. 기본적으로 MemberOf 플러그인은 이 사용자가 그룹의 멤버인 경우 memberOf 속성을 사용자 항목에 자동으로 추가합니다. 결과적으로 멤버십에 대한 정보는 그룹과 사용자 항목 모두에 저장됩니다. MemberOf 플러그인에 대한 자세한 내용은 사용자 항목의 Listing 그룹 멤버십을 참조하십시오.

3.1.1. Directory Server의 그룹 유형

Directory Server에서는 정적 또는 동적 그룹에 멤버를 추가할 수 있습니다. 각 그룹 유형의 정의에 대한 자세한 내용은 Directory Server의 그룹 정보를 참조하십시오. 그룹 개체 클래스는 멤버십 속성을 정의하고 그룹에 멤버를 추가하려면 그룹 항목의 이 멤버십 속성에 값을 추가해야 합니다.

다음 표에는 그룹 오브젝트 클래스 및 해당 멤버십 속성이 나열되어 있습니다.

Expand
그룹 유형오브젝트 클래스멤버십 속성

고정

groupOfNames

멤버

groupOfUniqueNames

uniqueMember

dynamic

groupOfURLs

memberURL

groupOfCertificates

memberCertificate

그룹을 생성할 때 사용할 수 있는 오브젝트 클래스:

  • groupOfNames 는 간단한 그룹입니다. 이 그룹에 항목을 추가할 수 있습니다. member 속성은 그룹 멤버십을 결정합니다. 멤버 속성 값은 그룹의 멤버인 사용자 항목의 고유 이름(DN)입니다.
  • groupOfUniqueNames 는 사용자 DN을 멤버로 나열하지만 DN은 고유해야 합니다. 이 그룹은 자체 참조 그룹 멤버십을 방지합니다. uniqueMember 특성에 따라 그룹 멤버십이 결정됩니다.
  • groupOfURLs 는 LDAP URL 목록을 사용하여 멤버십 목록을 필터링하고 생성합니다. 모든 동적 그룹에는 이 오브젝트 클래스가 필요하며 groupOfNamesgroupOfUniqueNames 와 함께 사용할 수 있습니다. memberURL 속성은 그룹 멤버십을 결정합니다.
  • groupOfCertificates 는 LDAP 필터를 사용하여 인증서 이름을 검색하여 그룹 멤버를 식별합니다. 이 그룹에 대한 특수 액세스 권한을 부여할 수 있으므로 groupOfCertificates 오브젝트 클래스를 그룹 기반 액세스 제어에 사용합니다. memberCertificateDescription 속성에 따라 그룹 멤버십이 결정됩니다.
중요

정적 그룹의 개체 클래스를 동적 오브젝트 클래스 중 하나와 함께 사용하면 그룹이 동적이 됩니다.

MemberOf 플러그인 은 동적 그룹을 지원하지 않습니다. 따라서 사용자 항목이 동적 그룹의 필터와 일치하는 경우 플러그인은 memberOf 속성을 사용자 항목에 추가하지 않습니다.

3.1.2. 정적 그룹 생성

명령줄 또는 웹 콘솔을 사용하여 정적 그룹을 생성할 수 있습니다.

3.1.2.1. 명령줄을 사용하여 정적 그룹 생성

dsidm 유틸리티를 사용하여 groupOfNames 오브젝트 클래스로 정적 그룹을 생성합니다. ldapmodify 유틸리티를 사용하여 groupOfUniqueNames 오브젝트 클래스로 정적 그룹을 생성합니다.

다음 예제에서는 ou=groups,dc=example,dc=com 항목에 두 개의 정적 그룹을 생성합니다.

사전 요구 사항

  • ou=groups,dc=example,dc=com 상위 항목이 있습니다.

절차

  • groupOfNames 오브젝트 클래스를 사용하여 cn=simple_group 그룹을 생성하려면 다음을 실행합니다.

    # dsidm <instance_name> -b "dc=example,dc=com" group create --cn "simple_group"
    Successfully created simple_group
    Copy to Clipboard Toggle word wrap

    dsidm group create 명령은 ou=group 하위 항목에서만 그룹을 생성합니다. 다른 항목에서 그룹을 생성하려면 ldapmodify 유틸리티를 사용합니다.

  • groupOfUniqueNames 오브젝트 클래스를 사용하여 cn=unique_members_group 그룹을 생성하려면 다음을 실행합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=unique_members_group,ou=groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupOfUniqueNames
    cn: unique_members_group
    description: A static group with unique members
    
    adding new entry "cn=unique_members_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

검증

  • dsidm group list 명령을 사용하여 groupOfNames 오브젝트 클래스가 있는 그룹을 나열합니다.

    # dsidm --basedn "dc=example,dc=com" <instance_name> group list
    simple_group
    Copy to Clipboard Toggle word wrap
  • dsidm uniquegroup list 명령을 사용하여 고유한 멤버가 있는 그룹을 나열합니다.

    # dsidm --basedn "dc=example,dc=com" <instance_name> uniquegroup list
    unique_members_group
    Copy to Clipboard Toggle word wrap

3.1.2.2. LDAP 브라우저에서 정적 그룹 생성

웹 콘솔을 사용하여 정적 그룹을 생성할 수 있습니다. 다음 예제에서는 ou=groups,dc=example,dc=com 상위 항목에 static_group 을 생성합니다.

사전 요구 사항

  • ou=groups,dc=example,dc=com 상위 항목이 있습니다.
  • 웹 콘솔에서 인스턴스에 로그인할 수 있는 권한이 있습니다. 웹 콘솔에 로그인하는 방법에 대한 자세한 내용은 웹 콘솔 을 사용하여 디렉터리 서버에 로그인을 참조하십시오.

절차

  1. LDAP 브라우저 메뉴로 이동합니다.
  2. 트리 또는 테이블 보기를 사용하여 그룹을 만들 상위 항목 ou=groups,dc=example,dc=com 을 확장합니다.
  3. 옵션 메뉴( Cryostat)를 클릭하고 새로 만들기를 선택하여 마법사 창을 엽니다.
  4. Create a group 을 선택하고 Next 를 클릭합니다.
  5. groupe 의 기본 그룹을 선택하고 Next 를 클릭합니다.
  6. 그룹 이름, 그룹 설명을 추가하고 그룹의 멤버십 특성을 선택합니다.

    • groupOfNames 오브젝트 클래스가 있는 그룹의 멤버입니다.
    • groupOfUniqueNames 오브젝트 클래스를 사용하는 그룹의 uniquemember 입니다.
  7. Next를 클릭합니다.
  8. 선택 사항: 그룹에 멤버를 추가하고 다음을 클릭합니다.
  9. 그룹 정보를 확인하고 생성 을 클릭하고 마침 을 클릭합니다.

검증

  • 접미사 트리에서 새로 생성된 그룹 항목을 확장합니다.

3.1.3. 정적 그룹에 멤버 추가

웹 콘솔의 명령줄을 사용하여 그룹에 멤버를 추가할 수 있습니다.

3.1.3.1. 명령줄을 사용하여 정적 그룹에 멤버 추가

정적 그룹에 멤버를 추가하려면 ldapmodify 유틸리티를 사용합니다.

사전 요구 사항

  • 그룹 항목이 있습니다.
  • users 항목이 있습니다.

절차

  • groupOfNames 오브젝트 클래스를 사용하여 정적 그룹에 멤버를 추가하려면 사용자 고유 이름(DN)을 그룹 항목의 member 속성에 대한 값으로 추가합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=simple_group,ou=groups,dc=example,dc=com
    changetype: modify
    add: member
    member: uid=jsmith,ou=people,dc=example,dc=com
    
    modifying entry "cn=simple_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    명령은 uid=jsmith 사용자를 cn=simple_group 그룹에 추가합니다.

  • groupOfUniqueNames 오브젝트 클래스를 사용하여 정적 그룹에 멤버를 추가하려면 사용자 고유 이름(DN)을 그룹 항목의 uniqueMember 속성에 대한 값으로 추가합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=unique_members_group,ou=groups,dc=example,dc=com
    changetype: modify
    add: uniqueMember
    uniqueMember: uid=ajonson,ou=people,dc=example,dc=com
    
    modifying entry "cn=unique_members_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    명령은 uid=ajonson 사용자를 cn=unique_members_group 그룹에 추가합니다.

검증

  • 그룹 멤버를 나열합니다.

    # ldapsearch -xLL -D "cn=Directory Manager" -W -b dc=example,dc=com "(cn=simple_group)"
    
    dn: cn=simple_group,ou=Groups,dc=example,dc=com
    objectClass: top
    objectClass: groupOfNames
    objectClass: nsMemberOf
    cn: simple_group
    member: uid=jsmith,ou=people,dc=example,dc=com
    member: uid=mtomson,ou=people,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

3.1.3.2. LDAP 브라우저의 정적 그룹에 멤버 추가

LDAP 브라우저를 사용하여 웹 콘솔의 정적 그룹에 멤버를 추가할 수 있습니다.

사전 요구 사항

  • 그룹 항목이 있습니다.
  • 사용자 항목이 있습니다.
  • 웹 콘솔에서 인스턴스에 로그인되어 있습니다. 웹 콘솔에 로그인하는 방법에 대한 자세한 내용은 웹 콘솔 을 사용하여 디렉터리 서버에 로그인을 참조하십시오.

절차

  1. LDAP 브라우저 메뉴로 이동합니다.
  2. 트리 또는 테이블 보기를 사용하여 멤버를 추가할 그룹 항목을 확장합니다. 예를 들어 cn=unique_members_group,ou=groups,dc=example,dc=com 에 멤버를 추가하려고 합니다.
  3. 옵션 메뉴( Cryostat)를 클릭하고 편집을 선택하여 마법사 창을 엽니다. 창에 현재 멤버 목록이 표시됩니다.
  4. 새 멤버 찾기 탭을 선택합니다.
  5. 검색 창에 멤버의 uid 또는 cn 속성 값의 부분을 입력하고 Enter 를 누릅니다. 사용 가능한 멤버 필드에는 그룹에 추가할 수 있는 사용자 고유 이름(DN)이 표시됩니다.
  6. 멤버 DN을 선택하고 화살표(&gt ;)를 클릭하여 멤버의 멤버 필드로 이동합니다.
  7. 멤버 추가 버튼을 클릭합니다.

검증

  • cn=unique_members_group,ou=groups,dc=example,dc=com 그룹 항목을 확장하고 항목 세부 정보에서 추가된 사용자를 찾습니다.

3.1.4. 명령줄을 사용하여 동적 그룹 생성

Directory Server는 명령줄만 사용하여 동적 그룹 생성을 지원합니다. ldapmodify 유틸리티를 사용하여 groupOfURLsgroupOfCertificates 오브젝트 클래스로 동적 그룹을 생성합니다.

다음 예제에서는 ou=groups,dc=example,dc=com 항목에 두 개의 동적 그룹을 생성합니다.

사전 요구 사항

  • ou=groups,dc=example,dc=com 상위 항목이 있습니다.

절차

  • groupOfURLs 오브젝트 클래스를 사용하여 cn=example_dynamic_group 그룹을 생성하려면 다음을 실행합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=example_dynamic_group,ou=groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupOfURLs
    cn: example_dynamic_group
    description: Example dynamic group for user entries
    memberURL: ldap:///dc=example,dc=com??sub?(&(objectclass=person)(cn=*sen))
    
    adding new entry "cn=example_dynamic_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    명령은 공통 이름(cn) 값의 오른쪽 부분에서 person object class 및 sen 하위 문자열로 멤버를 필터링하는 동적 그룹을 생성합니다.

  • groupOfCertificates 오브젝트 클래스를 사용하여 cn=example_certificates_group 그룹을 생성하려면 다음을 실행합니다.

    # ldapmodify -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    dn: cn=example_certificates_group,ou=groups,dc=example,dc=com
    changetype: add
    objectClass: top
    objectClass: groupOfCertificates
    cn: example_certificates_group
    description: Example dynamic group for certificate entries
    memberCertificateDescription: {ou=people, l=USA, dc=example, dc=com}
    
    adding new entry "cn=example_certificates_group,ou=groups,dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    이 명령은 인증서 제목 DN에 ou=people,l=USA,dc=example,dc=com 이 포함된 멤버를 필터링하는 동적 그룹을 생성합니다.

검증

  • groupOfURLs 오브젝트 클래스를 사용하여 새로 생성된 그룹을 검색합니다.

    # ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfURLs" 1.1 
    
    dn: cn=example_dynamic_group,ou=groups,dc=example,dc=com
    Copy to Clipboard Toggle word wrap
  • groupOfCertificates 오브젝트 클래스를 사용하여 새로 생성된 그룹을 검색합니다.

    # ldapsearch -xLLL -D "cn=Directory Manager" -W -H ldap://server.example.com -b "dc=example,dc=com" "objectClass=groupOfCertificates" 1.1 
    
    dn: cn=example_certificates_group,ou=groups,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

3.1.5. 사용자 항목에 그룹 멤버십 나열

그룹은 멤버십 특성을 사용하여 이 그룹에 속하는 항목을 정의합니다. 그룹을 보고 멤버를 쉽게 찾을 수 있습니다. 예를 들어 groupOfNames 오브젝트 클래스가 있는 정적 그룹은 해당 멤버의 고유 이름(DN)을 member 속성 값으로 저장합니다. 그러나 단일 사용자가 속한 그룹을 빠르게 확인할 수 없습니다. 그룹을 사용하면 사용자 항목에 역할과 달리 사용자 멤버십을 나타내는 항목이 포함되어 있지 않습니다.

이 문제를 해결하려면 MemberOf 플러그인을 사용할 수 있습니다. MemberOf 플러그인은 그룹 항목의 멤버십 속성을 분석하고 그룹을 가리키는 사용자 항목에 memberOf 특성을 자동으로 씁니다. 기본적으로 플러그인은 그룹의 member 속성을 확인하지만 여러 특성을 사용하여 다른 그룹 유형을 지원할 수 있습니다.

그룹 멤버를 추가하거나 삭제하면 플러그인은 사용자 항목의 memberOf 특성을 업데이트합니다. MemberOf 플러그인을 사용하면 특정 사용자 항목에 대해 간단한 검색을 수행하여 사용자가 속한 모든 그룹을 찾을 수 있습니다. MemberOf 플러그인은 모든 그룹에 대한 직접 및 간접 멤버십을 보여줍니다.

중요

MemberOf 플러그인은 정적 그룹에 대한 멤버십 속성만 관리합니다.

3.1.5.1. MemberOf 플러그인을 사용할 때의 고려 사항

MemberOf 플러그인을 사용하는 경우 다음을 고려하십시오.

  • 복제 토폴로지의 MemberOf 플러그인

    복제 토폴로지에서는 다음 두 가지 방법으로 MemberOf 플러그인을 관리할 수 있습니다.

    • 토폴로지의 모든 공급자 및 소비자 서버에서 MemberOf 플러그인을 활성화합니다. 이 경우 모든 복제 계약에서 사용자 항목의 memberOf 특성을 복제에서 제외해야 합니다.

      특성 제외에 대한 자세한 내용은 소수 복제 내의 특성 관리를 참조하십시오.

    • 토폴로지의 모든 공급자 서버에서만 MemberOf 플러그인을 활성화합니다. 이렇게 하려면 다음을 수행합니다.

      • 복제 계약의 모든 쓰기 사용 공급업체에 memberOf 속성 복제를 비활성화해야 합니다.

        특성 제외에 대한 자세한 내용은 소수 복제 내의 속성 관리를 참조하십시오.

      • 복제 계약의 모든 소비자 복제본에 memberOf 특성 복제를 활성화해야 합니다.
      • 소비자 복제본에서 MemberOf 플러그인을 비활성화해야 합니다.
  • 분산 데이터베이스가 있는 MemberOf 플러그인

    디렉터리 데이터베이스 구성에 설명된 대로 디렉터리의 하위 트리를 별도의 데이터베이스에 저장할 수 있습니다. 기본적으로 MemberOf 플러그인은 그룹과 동일한 데이터베이스에 저장된 사용자 항목만 업데이트합니다. 모든 데이터베이스에서 사용자를 업데이트하려면 memberOfAllBackends 매개변수를 on 으로 설정해야 합니다. memberOfAllBackends 매개변수 설정에 대한 자세한 내용은 웹 콘솔을 사용하여 각 서버에서 MemberOf 플러그인 구성을 참조하십시오.

3.1.5.2. MemberOf 플러그인의 필수 오브젝트 클래스

기본적으로 MemberOf 플러그인은 nsMemberOf 오브젝트 클래스를 사용자 항목에 추가하여 memberOf 특성을 제공합니다. nsMemberOf 오브젝트 클래스는 플러그인이 올바르게 작동하기에 충분합니다.

또는 inetUser,inetAdmin,inetOrgPerson 개체 클래스를 포함하는 사용자 항목을 만들 수 있습니다. 이러한 오브젝트 클래스는 memberOf 특성을 지원합니다.

중첩 그룹을 구성하려면 그룹이 extensibleObject 개체 클래스를 사용해야 합니다.

참고

디렉터리 항목에 필수 특성 작업을 지원하는 오브젝트 클래스가 포함되어 있지 않으면 다음 오류와 함께 실패합니다.

LDAP: error code 65 - Object Class Violation
Copy to Clipboard Toggle word wrap

3.1.5.3. MemberOf 플러그인 구문

MemberOf 플러그인을 구성할 때 기본 두 속성을 설정합니다.

  • memberOfGroupAttr. 그룹 항목에서 폴링할 멤버십 속성을 정의합니다. memberOfGroupAttr 속성은 multi-valued입니다. 따라서 플러그인은 여러 유형의 그룹을 관리할 수 있습니다. 기본적으로 플러그인은 member 속성을 폴링합니다.
  • memberOfAttr. 멤버의 사용자 항목에서 생성 및 관리할 멤버십 속성을 정의합니다. 기본적으로 플러그인은 memberOf 속성을 사용자 항목에 추가합니다.

또한 플러그인 구문은 플러그인 경로, MemberOf 플러그인, 플러그인 상태 및 기타 구성 매개 변수를 식별하는 함수를 제공합니다.

다음 예제에서는 기본 MemberOf 플러그인 항목 구성을 보여줍니다.

dn: cn=MemberOf Plugin,cn=plugins,cn=config
cn: MemberOf Plugin
memberofallbackends: off
memberofattr: memberOf
memberofentryscope: dc=example,dc=com
memberofgroupattr: member
memberofskipnested: off
nsslapd-plugin-depends-on-type: database
nsslapd-pluginDescription: memberof plugin
nsslapd-pluginEnabled: off
nsslapd-pluginId: memberof
nsslapd-pluginInitfunc: memberof_postop_init
nsslapd-pluginPath: libmemberof-plugin
nsslapd-pluginType: betxnpostoperation
nsslapd-pluginVendor: 389 Project
nsslapd-pluginVersion: 2.4.5
objectClass: top
objectClass: nsSlapdPlugin
objectClass: extensibleObject
Copy to Clipboard Toggle word wrap

설정할 수 있는 예제 및 기타 매개변수의 매개변수에 대한 자세한 내용은 "구성 및 스키마 참조" 설명서 의 MemberOf 플러그인 섹션을 참조하십시오.

3.1.5.4. MemberOf 플러그인 활성화

명령줄 또는 웹 콘솔을 사용하여 MemberOf 플러그인을 활성화할 수 있습니다.

3.1.5.4.1. 명령줄을 사용하여 MemberOf 플러그인 활성화

dsconf 유틸리티를 사용하여 MemberOf 플러그인을 활성화합니다.

절차

  1. 플러그인을 활성화합니다.

    # dsconf <instance_name> plugin memberof enable
    Copy to Clipboard Toggle word wrap
  2. 인스턴스를 다시 시작합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

검증

  • 플러그인 구성 세부 정보를 확인합니다.

    # dsconf <instance_name> plugin memberof show
    
    dn: cn=MemberOf Plugin,cn=plugins,cn=config
    ...
    nsslapd-pluginEnabled: on
    ...
    Copy to Clipboard Toggle word wrap
3.1.5.4.2. 웹 콘솔을 사용하여 MemberOf 플러그인 활성화

웹 콘솔을 사용하여 MemberOf 플러그인을 활성화할 수 있습니다.

사전 요구 사항

절차

  1. Plugins 메뉴로 이동합니다.
  2. 플러그인 목록에서 MemberOf 플러그인을 선택합니다.
  3. 플러그인을 활성화하려면 상태를 ON 으로 변경합니다.
  4. 인스턴스를 다시 시작합니다. 인스턴스를 다시 시작하는 방법은 웹 콘솔을 사용하여 Directory Server 인스턴스 시작 및 중지를 참조하십시오.

3.1.5.5. 각 서버에서 MemberOf 플러그인 구성

MemberOf 플러그인의 구성을 복제하지 않으려면 명령줄 또는 웹 콘솔을 사용하여 각 서버에서 수동으로 플러그인을 구성합니다.

3.1.5.5.1. 명령줄을 사용하여 각 서버에서 MemberOf 플러그인 구성

기본적으로 MemberOf 플러그인은 그룹 항목에서 member membership 속성을 읽고 memberOf 속성을 사용자 항목에 추가합니다. 그러나 그룹의 다른 멤버십 속성을 읽고, 사용자 항목에 다른 특성을 추가하고, 중첩된 그룹을 건너뛰고, 모든 데이터베이스 및 기타 설정에서 작동하도록 플러그인을 구성할 수 있습니다.

예를 들어 MemberOf 플러그인에서 다음을 수행하도록 합니다.

  • 그룹 항목에서 uniqueMember 특성을 읽고 멤버십을 식별합니다.
  • 중첩된 그룹을 건너뜁니다.
  • 모든 데이터베이스에서 사용자 항목을 검색합니다.

사전 요구 사항

절차

  1. 선택 사항: MemberOf 플러그인 구성을 표시하여 플러그인이 현재 그룹 항목에서 읽고 있는 멤버십 특성을 확인합니다.

    # dsconf <instance_name> plugin memberof show
    
    ...
    memberofgroupattr: member
    ...
    Copy to Clipboard Toggle word wrap

    플러그인은 현재 그룹 항목에서 member 속성을 읽고 멤버를 검색합니다.

  2. 플러그인 구성에서 uniqueMember 특성을 memberOfGroupAttr 매개변수 값으로 설정합니다.

    # dsconf <instance_name> plugin memberof set --groupattr uniqueMember
    Copy to Clipboard Toggle word wrap

    memberOfGroupAttr 매개변수는 multi-valued이며 모두 --groupattr 매개변수에 전달하여 여러 값을 설정할 수 있습니다. 예를 들면 다음과 같습니다.

    # dsconf <instance_name> plugin memberof set --groupattr member uniqueMember
    Copy to Clipboard Toggle word wrap
  3. 분산 데이터베이스를 사용하는 환경에서 로컬 데이터베이스 대신 모든 데이터베이스의 사용자 항목을 검색하도록 플러그인을 구성합니다.

    # dsconf <instance_name> plugin memberof set --allbackends on
    Copy to Clipboard Toggle word wrap

    명령은 memberOfAllBackends 매개변수를 설정합니다.

  4. 중첩 그룹을 건너뛰도록 플러그인을 구성합니다.

    # dsconf <instance_name> plugin memberof set --skipnested on
    Copy to Clipboard Toggle word wrap

    이 명령은 memberOfSkipNested 매개변수를 설정합니다.

  5. 선택 사항: 기본적으로 플러그인은 memberOf 특성을 허용하는 오브젝트 클래스가 없는 경우 사용자 항목에 nsMemberOf 오브젝트 클래스를 추가합니다. nsMemberOf 대신 inetUser 오브젝트 클래스를 사용자 항목에 추가하도록 플러그인을 구성하려면 다음을 실행합니다.

    # dsconf <instance_name> plugin memberof set --autoaddoc inetUser
    Copy to Clipboard Toggle word wrap

    이 명령은 memberOfAutoAddOC 매개변수를 설정합니다.

  6. 인스턴스를 다시 시작합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

검증

  • MemberOf 플러그인 구성을 확인합니다.

    # dsconf <instance_name> plugin memberof show
    dn: cn=MemberOf Plugin,cn=plugins,cn=config
    cn: MemberOf Plugin
    memberofallbackends: on
    memberofattr: memberOf
    memberofautoaddoc: inetuser
    memberofentryscope: dc=example,dc=com
    memberofgroupattr: uniqueMember
    memberofskipnested: on
    ...
    nsslapd-pluginEnabled: on
    ...
    Copy to Clipboard Toggle word wrap
3.1.5.5.2. 웹 콘솔을 사용하여 각 서버에서 MemberOf 플러그인 구성

기본적으로 MemberOf 플러그인은 그룹 항목에서 member membership 속성을 읽고 memberOf 속성을 사용자 항목에 추가합니다. 그러나 그룹에서 다른 멤버십 속성을 읽고, 중첩된 그룹을 건너뛰고, 웹 콘솔을 사용하여 모든 데이터베이스 및 기타 설정에서 작업하도록 플러그인을 구성할 수 있습니다.

예를 들어 MemberOf 플러그인에서 다음을 수행하도록 합니다.

  • 멤버십을 식별하기 위해 그룹 항목에서 멤버uniqueMember 특성을 읽습니다.
  • 플러그인의 범위를 dc=example,dc=com 으로 설정합니다.
  • 중첩된 그룹을 건너뜁니다.
  • 모든 데이터베이스에서 사용자 항목을 검색합니다.

사전 요구 사항

절차

  1. LDAP 브라우저 메뉴로 이동합니다.
  2. 플러그인 목록에서 MemberOf 플러그인을 선택합니다.
  3. Group Attribute 필드에 uniqueMember 특성을 추가합니다.
  4. 플러그인의 범위를 dc=example,dc=com:으로 설정합니다.

    1. dc=example,dc=comSubtree Scope 필드에 입력합니다.
    2. 드롭다운 목록에서 Create "dc=example,dc=com" 을 클릭합니다.

      security configuring the memberof 1

  5. 선택 사항: 제외하도록 하위 트리를 설정합니다. 예를 들어, 플러그인이 ou=private,dc=example,dc=com 하위 트리에서 작동하지 않도록 합니다.

    1. Exclude Subtree 필드에 ou=private,dc=example,dc=com 을 입력합니다.
    2. 드롭다운 목록에서 Create "ou=private,dc=example,dc=com" 을 클릭합니다.
  6. 모든 백엔드를 선택하여 로컬 데이터베이스뿐만 아니라 모든 데이터베이스의 사용자 항목을 검색하도록 플러그인을 구성합니다.
  7. 중첩 그룹을 건너뛰도록 플러그인을 구성하려면 Skip Nested 를 선택합니다.
  8. Save Config 를 클릭합니다.

3.1.5.6. 서버 간 MemberOf 플러그인 구성 공유

기본적으로 각 서버는 MemberOf 플러그인의 자체 구성을 저장합니다. 플러그인의 공유 구성을 사용하면 각 서버에서 수동으로 플러그인을 구성하지 않고 동일한 설정을 사용할 수 있습니다. Directory Server는 cn=config 접미사 외부에 공유 구성을 저장하고 복제합니다.

예를 들어 플러그인 공유 구성을 cn=shared_MemberOf_config,dc=example,dc=com 항목에 저장하려고 합니다.

중요

공유 구성을 활성화하면 플러그인은 cn=MemberOf Plugin,cn=plugins,cn=config 플러그인 항목에 설정된 모든 매개변수를 무시하고 공유 구성 항목의 설정만 사용합니다.

사전 요구 사항

절차

  1. 서버에서 공유 구성 항목을 활성화합니다.

    # dsconf <instance_name> plugin memberof config-entry add "cn=shared_MemberOf_config,dc=example,dc=com" --attr memberOf --groupattr member
    
    Successfully created the cn=shared_MemberOf_config,dc=example,dc=com
    MemberOf attribute nsslapd-pluginConfigArea (config-entry) was set in the main plugin config
    Copy to Clipboard Toggle word wrap

    이 명령은 nsslapd-pluginConfigArea 속성 값을 cn=shared_MemberOf_config,dc=example,dc=com 으로 설정합니다.

  2. 인스턴스를 다시 시작합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap
  3. 공유 구성을 사용해야 하는 복제 토폴로지의 다른 서버에서 공유 구성을 활성화합니다.

    1. 공유 구성을 저장하는 구성 항목의 DN(고유 이름)을 설정합니다.

      # dsconf -D "cn=Directory Manager" ldap://server2.example.com plugin memberof set --config-entry cn=shared_MemberOf_config,dc=example,dc=com
      Copy to Clipboard Toggle word wrap
    2. 인스턴스를 다시 시작합니다.

      # dsctl <instance_name> restart
      Copy to Clipboard Toggle word wrap

검증

  1. MemberOf 플러그인이 공유 구성을 사용하는지 확인합니다.

    # dsconf <instance_name> plugin memberof show
    
    dn: cn=MemberOf Plugin,cn=plugins,cn=config
    cn: MemberOf Plugin
    ...
    nsslapd-pluginConfigArea: cn=shared_MemberOf_config,dc=example,dc=com
    ...
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 공유 구성 설정을 확인합니다.

    # dsconf <instance_name> memberof config-entry show "cn=shared_MemberOf_config,dc=example,dc=com"
    
    dn: cn=shared_MemberOf_config,dc=example,dc=com
    cn: shared_MemberOf_config
    memberofattr: memberOf
    memberofgroupattr: member
    objectClass: top
    objectClass: extensibleObject
    Copy to Clipboard Toggle word wrap

3.1.5.7. MemberOf 플러그인의 범위 설정

여러 백엔드 또는 다중 유형 접미사를 구성한 경우 memberOfEntryScopememberOfEntryScopeExcludeSubtree 매개변수를 사용하여 MemberOf 플러그인의 접미사를 설정할 수 있습니다.

사용자를 그룹에 추가하는 경우, MemberOf 플러그인은 사용자와 그룹이 플러그인 범위에 있는 경우에만 memberOf 특성을 그룹에 추가합니다.

예를 들어 다음 절차에서는 dc=example,dc=com 의 모든 항목에서 작동하도록 MemberOf 플러그인을 구성하지만 ou=private,dc=example,dc=com 의 항목을 제외합니다.

사전 요구 사항

절차

  1. MemberOf 플러그인의 scope 값을 dc=example,dc=com 으로 설정합니다.

    # dsconf <instance_name> plugin memberof set --scope "dc=example,dc=com"
    Copy to Clipboard Toggle word wrap
  2. ou=private,dc=example,dc=com 의 항목을 제외 :

    # dsconf <instance_name> plugin memberof set --exclude "ou=private,dc=example,com"
    Copy to Clipboard Toggle word wrap

    --scope DN 매개변수를 사용하여 사용자 항목을 범위 외부에서 이동한 경우:

    • MemberOf 플러그인은 member 와 같은 멤버십 속성을 그룹 항목에서 업데이트하여 사용자 DN 값을 제거합니다.
    • MemberOf 플러그인은 사용자 항목의 memberOf 속성을 업데이트하여 그룹 DN 값을 제거합니다.

      참고

      --exclude 매개변수에 설정된 값은 --scope 에 설정된 값보다 우선 순위가 높습니다. 두 매개변수 모두에 설정된 범위가 겹치면 MemberOf 플러그인은 겹치지 않는 디렉터리 항목에서만 작동합니다.

MemberOf 플러그인의 범위를 설정하는 방법에 대한 자세한 내용은 웹 콘솔을 사용하여 각 서버에서 MemberOf 플러그인 구성을 참조하십시오.

MemberOf 플러그인은 그룹 항목의 구성에 따라 그룹 멤버 항목의 memberOf 속성을 자동으로 관리합니다. 그러나 다음 상황에서 수정 작업을 실행하여 서버 플러그인이 관리하는 memberOf 구성과 사용자 항목에 정의된 실제 멤버십 간의 불일치를 방지해야 합니다.

  • MemberOf 플러그인을 활성화하기 전에 그룹에 그룹 멤버를 추가했습니다.
  • 사용자 항목에서 memberOf 속성을 수동으로 편집했습니다.
  • memberOf 특성이 이미 있는 서버에 새 사용자 항목을 가져오거나 복제했습니다.

수정 작업은 로컬에서만 실행할 수 있습니다. 복제 환경에서 Directory Server는 Directory Server가 업데이트된 항목을 복제한 후 다른 서버의 항목에 대해 memberOf 특성을 업데이트합니다.

사전 요구 사항

절차

  • 예를 들어 dc=example,dc=com 항목 및 하위 항목에서 memberOf 값을 업데이트하려면 다음을 실행합니다.

    # dsconf <instance_name> plugin memberof fixup "dc=example,dc=com"
    Attempting to add task entry...
    Successfully added task entry
    Copy to Clipboard Toggle word wrap

    기본적으로 수정 작업은 inetUser,inetAdmin 또는 nsMemberOf 개체 클래스를 포함하는 모든 항목에서 memberOf 값을 업데이트합니다.

    수정 작업을 다른 오브젝트 클래스가 포함된 항목에서도 사용하려면 -f 필터 옵션을 사용합니다.

    # dsconf <instance_name> plugin memberof fixup -f "(|(objectclass=inetuser)(objectclass=inetadmin)(objectclass=nsmemberof)(objectclass=nsmemberof)(objectclass=inetOrgPerson))" "dc=example,dc=com"
    Copy to Clipboard Toggle word wrap

    수정 작업은 inetUser,inetAdmin,nsMemberOf 또는 inetOrgPerson 개체 클래스를 포함하는 모든 항목에서 memberOf 값을 업데이트합니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat