3.2. Directory Server에서 역할 사용
역할을 사용하여 Directory Server 항목을 그룹화할 수 있습니다. 역할은 정적 그룹 및 동적 그룹으로 작동합니다. 역할은 구현에 더 유연하므로 그룹보다 사용하기가 더 쉽습니다. 예를 들어 애플리케이션은 그룹을 선택하고 여러 그룹의 멤버 목록을 탐색하는 대신 항목 자체를 쿼리하여 항목이 속하는 역할 목록을 가져올 수 있습니다.
명령줄 또는 웹 콘솔 을 사용하여 역할을 관리할 수 있습니다.
3.2.1. Directory Server의 역할 링크 복사링크가 클립보드에 복사되었습니다!
역할은 하이브리드 그룹과 유사하게 정적 및 동적 그룹으로 작동합니다.
- 그룹을 사용하면 Directory Server에서 그룹 항목에 항목을 멤버로 추가합니다.
- 역할로 Directory Server는 역할 속성을 항목에 추가한 다음 이 속성을 사용하여 역할 항목의 멤버를 자동으로 식별합니다.
역할 멤버는 역할을 보유한 항목입니다. 역할 유형에 따라 역할의 멤버를 명시적으로 또는 동적으로 지정할 수 있습니다. Directory Server는 다음 유형의 역할을 지원합니다.
관리 역할
관리 역할에는 명시적 멤버 목록이 있습니다. 관리 역할을 사용하여 정적 그룹으로 수행하는 것과 동일한 작업을 수행할 수 있습니다.
필터링된 역할
동적 그룹으로 필터링하는 것과 유사하게 필터링된 역할을 사용하여 역할 멤버를 필터링할 수 있습니다. Directory Server는 항목에 역할에 정의된 특정 특성이 있는지 여부에 따라 필터링된 역할에 항목을 할당합니다.
중첩된 역할
중첩된 역할에는 관리 및 필터링된 역할이 포함될 수 있습니다.
역할을 생성할 때 사용자가 역할에서 자신을 추가하거나 제거할 수 있는지 확인합니다. 자세한 내용은 3.2.2절. “Directory Server에서 안전하게 역할 사용” 에서 참조하십시오.
역할을 평가하는 것은 서버가 클라이언트 애플리케이션에 대해 작업을 수행하기 때문에 그룹을 평가하는 것보다 리소스 집약적입니다. 역할을 사용하면 클라이언트 애플리케이션에서 nsRole
특성을 검색하여 역할 멤버십을 확인할 수 있습니다. nsRole
속성은 항목이 속하는 역할을 식별하는 계산된 속성입니다. Directory Server는 nsRole
속성을 저장하지 않습니다. 클라이언트 애플리케이션 관점에서 멤버십을 확인하는 방법은 균일하며 서버 측에서 수행됩니다.
Directory Server에서 역할을 사용하기 위한 고려 사항은 계획 및 디렉터리 서버 설계 설명서에서 그룹과 역할 간 결정(deciding between groups and roles in the Planning and designing Directory Server documentation)을 참조하십시오.
3.2.2. Directory Server에서 안전하게 역할 사용 링크 복사링크가 클립보드에 복사되었습니다!
새 역할을 생성할 때 사용자가 역할에서 자신을 쉽게 추가하거나 제거할 수 있는지 고려하십시오. 예를 들어 Cryostat Biking
관심 그룹 역할의 사용자가 쉽게 추가하거나 제거할 수 있습니다. 그러나 마케팅
역할이 할당된 사용자가 역할에서 자신을 추가하거나 제거하도록 허용해서는 안 됩니다.
한 가지 잠재적인 보안 위험은 역할을 활성화하여 사용자 계정을 활성화하는 것입니다. 비활성 역할에는 접미사에 대해 ACI(Special Access Control instructions)가 정의되어 있습니다. 관리자가 역할을 자유롭게 추가하고 제거할 수 있는 경우 이러한 사용자는 비활성 역할에서 자신을 제거하여 계정 잠금을 해제할 수 있습니다.
예를 들어 사용자에게 관리 역할이 할당됩니다. 계정 비활성화를 사용하여 Directory Server가 이 관리 역할을 잠그면 Directory Server에서 해당 사용자의 nsAccountLock
속성을 true
로 계산하므로 사용자가 서버에 바인딩할 수 없습니다. 그러나 사용자가 이미 Directory Server에 바인딩되어 관리 역할을 통해 잠겼으면 사용자는 해당 항목에서 nsRoleDN
속성을 제거하고 ACI를 제한하지 않는 경우 조직의 잠금을 해제할 수 있습니다.
사용자가 nsRoleDN
속성을 제거하지 못하도록 하려면 역할 유형에 따라 다음 ACI를 사용합니다.
관리 역할. 관리 역할의 멤버인 항목의 경우 다음 ACI를 사용합니다.
aci: (targetattr="nsRoleDN") (targattrfilters= add=nsRoleDN:(!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example,dc=com))) (version3.0;acl "allow mod of nsRoleDN by self but not to critical values"; allow(write) userdn=ldap:///self;)
aci: (targetattr="nsRoleDN") (targattrfilters= add=nsRoleDN:(!(nsRoleDN=cn=AdministratorRole,dc=example,dc=com)), del=nsRoleDN:(!(nsRoleDN=cn=nsManagedDisabledRole,dc=example,dc=com))) (version3.0;acl "allow mod of nsRoleDN by self but not to critical values"; allow(write) userdn=ldap:///self;)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
필터링된 역할입니다. 필터에 속하는 속성 보호(
nsRoleFilter
). 사용자가 필터링된 역할에서 사용하는 특성을 추가, 삭제 또는 수정할 수 없도록 합니다. Directory Server가 filter 속성의 값을 계산하는 경우 이 필터 특성 값을 수정할 수 있는 모든 특성을 보호해야 합니다. - 중첩된 역할. 중첩된 역할에는 필터링된 역할과 관리 역할이 포함될 수 있습니다. 따라서 중첩된 역할에 포함된 역할의 각 속성에 대해 ACI의 수정 작업을 제한해야 합니다.
3.2.3. 명령줄을 사용하여 Directory Server에서 역할 관리 링크 복사링크가 클립보드에 복사되었습니다!
명령줄을 사용하여 역할을 보고, 만들고, 삭제할 수 있습니다.
3.2.3.1. Directory Server에서 관리되는 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리되는 역할은 명시적 열거된 멤버 목록이 있는 역할입니다. ldapmodify
유틸리티를 사용하여 관리 역할을 생성할 수 있습니다. 다음 예제에서는 마케팅 팀에 대한 관리 역할을 생성합니다.
사전 요구 사항
-
ou=people,dc=example,dc=com
상위 항목이 Directory Server에 있습니다. -
cn=Bob Cryostat,ou=people,dc=example,dc=com
사용자 항목이 Directory Server에 있습니다.
절차
ldapmodify
명령을-a
옵션과 함께 사용하여cn=Marketing
managed 역할 항목을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관리 역할 항목에는 다음 오브젝트 클래스가 포함되어야 합니다.
-
LDAPsubentry
-
nsRoleDefinition
-
nsSimpleRoleDefinition
-
nsManagedRoleDefinition
-
이 사용자 항목에
nsRoleDN
특성을 추가하여cn=Marketing,ou=bob Cryostat,dc
=example,dc=com 사용자 항목을 cn=Bob Cryostat,ou=people,dc=
example,dc=com 사용자 항목에 할당합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
userRoot
데이터베이스에서nsRoleDN
속성에 대한 같음 인덱스를 구성하여 인덱싱되지 않은 검색을 방지합니다.dsconf <instance_name> backend index add --index-type eq --attr nsroleDN --reindex userRoot
# dsconf <instance_name> backend index add --index-type eq --attr nsroleDN --reindex userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
cn=Marketing,ou=people,dc=example,dc=com
관리 역할에 속하는 사용자 항목을 나열합니다.ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=Marketing,ou=people,dc=example,dc=com)" dn
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=Marketing,ou=people,dc=example,dc=com)" dn dn: cn=Bob Jones,ou=people,dc=example,dc=com dn: cn=Tom Devis,ou=people,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3.2. Directory Server에서 필터링된 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
항목에 특정 특성이 정의된 경우 Directory Server는 필터링된 역할에 항목을 할당합니다. 역할 정의는 nsRoleFilter
LDAP 필터를 지정합니다. 필터와 일치하는 항목은 역할의 멤버입니다.
ldapmodify
유틸리티를 사용하여 필터링된 역할을 생성할 수 있습니다. 다음 예제에서는 영업 부서 관리자에 대해 필터링된 역할을 생성합니다.
사전 요구 사항
-
ou=people,dc=example,dc=com
상위 항목이 Directory Server에 있습니다.
절차
ldapmodify
명령을-a
옵션과 함께 사용하여cn=SalesManagerFilter
필터링된 역할 항목을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow cn=SalesManagerFilter
필터링된 역할 항목에는o=sales 관리자가
역할에 대해 필터링합니다.영업 관리자
값이 있는o
속성이 있는 모든 사용자 항목은 필터링된 역할의 멤버입니다.필터링된 역할의 멤버인 사용자 항목의 예:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필터링된 역할 항목에는 다음과 같은 오브젝트 클래스가 있어야 합니다.
-
LDAPsubentry
-
nsRoleDefinition
-
nsComplexRoleDefinition
-
nsFilteredRoleDefinition
-
선택 사항: 인덱싱되지 않은 검색을 방지하기 위해
nsRoleFilter
역할 필터에서 사용하는 속성에 대한 같음 인덱스를 구성합니다. 지정된 예에서 역할은o=sales 관리자를
필터로 사용합니다. 따라서 검색 성능을 개선하기 위해o
특성을 인덱싱합니다.dsconf <instance_name> backend index add --index-type eq --attr o --reindex userRoot
# dsconf <instance_name> backend index add --index-type eq --attr o --reindex userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
cn=SalesManagerFilter,ou=people,dc=example,dc=com
필터링된 역할에 속하는 사용자 항목을 나열합니다.ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=SalesManagerFilter,ou=people,dc=example,dc=com)" dn
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b "dc=example,dc=com" "(nsRole=cn=SalesManagerFilter,ou=people,dc=example,dc=com)" dn dn: cn=Jess Mor,ou=people,dc=example,dc=com dn: cn=Pat Smith,ou=people,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3.3. Directory Server에서 중첩된 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
중첩된 역할에는 관리 및 필터링된 역할이 포함될 수 있습니다. 중첩된 역할 항목에는 중첩할 역할을 식별하는 nsRoleDN
속성이 필요합니다.
ldapmodify
유틸리티를 사용하여 중첩된 역할을 생성할 수 있습니다. 다음 예제에서는 Directory Server에서 관리되는 역할 만들기 및 Directory Server에서 필터링된 역할 만들기에서 만든 관리 및 필터링된 역할이 포함된 중첩 역할을 만듭니다.
사전 요구 사항
-
ou=people,dc=example,dc=com
상위 항목이 Directory Server에 있습니다.
절차
ldapmodify
명령을-a
옵션과 함께 사용하여cn=SalesManagerFilter
필터링된 역할과cn=Marketing
managed 역할을 포함하는cn=MarketingSales
중첩 역할 항목을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택적으로 역할에
description
속성이 있을 수 있습니다.중첩된 역할 항목에는 다음과 같은 오브젝트 클래스가 있어야 합니다.
-
LDAPsubentry
-
nsRoleDefinition
-
nsComplexRoleDefinition
-
nsNestedRoleDefinition
-
검증
cn=MarketingSales
중첩 역할에 속하는 사용자 항목을 나열합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3.4. 항목의 역할 보기 링크 복사링크가 클립보드에 복사되었습니다!
항목의 역할을 보려면 명시적으로 지정된 nsRole
가상 속성과 함께 ldapsearch
명령을 사용하십시오.
사전 요구 사항
- 역할 항목이 있습니다.
-
uid=user_name
사용자 항목에 역할이 할당되었습니다.
절차
nsRole
가상 속성이 지정된uid=user_name
항목을 검색합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령은
uid=user_name
사용자가 멤버인 모든 역할을 검색합니다.
3.2.3.5. Directory Server에서 역할 삭제 링크 복사링크가 클립보드에 복사되었습니다!
Directory Server에서 역할을 삭제하려면 ldapmodify
명령을 사용할 수 있습니다.
다음은 Directory Server에서 cn=Marketing
관리 역할을 삭제하는 예입니다.
절차
cn=Marketing
관리 역할 항목을 삭제하려면 다음을 입력합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고역할을 삭제하면 Directory Server는 역할 항목만 삭제하고 각 역할 멤버에 대한
nsRoleDN
속성을 삭제하지 않습니다. 각 역할 멤버에 대한nsRoleDN
속성을 삭제하려면 Referential Integrity 플러그인을 활성화하고nsRoleDN
특성을 관리하도록 이 플러그인을 구성합니다.참조 무결성 플러그인에 대한 자세한 내용은 참조 무결성 사용을 참조하십시오. 항목 간의 관계를 유지 관리합니다.
3.2.4. 웹 콘솔을 사용하여 Directory Server에서 역할 관리 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔에서 LDAP 브라우저를
사용하여 역할을 보고, 생성하고, 삭제할 수 있습니다.
3.2.4.1. LDAP 브라우저에서 역할 생성 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔에서 LDAP 브라우저 마법사를 사용하여 Red Hat Directory Server 항목에 대한 역할을 생성할 수 있습니다.
사전 요구 사항
- 웹 콘솔에 액세스합니다.
- 상위 항목은 Directory Server에 있습니다.
절차
- 웹 콘솔에 로그인하고 Red Hat Directory Server 를 클릭합니다.
- 웹 콘솔에서 Red Hat Directory Server 인터페이스를 로드한 후 LDAP 브라우저를 엽니다.
- LDAP 항목을 선택하고 옵션 메뉴( Cryostat)를 엽니다.
- 드롭다운 메뉴에서 새로 만들기를 선택하고 새 역할 만들기 를 클릭합니다.
- 마법사의 단계에 따라 각 단계를 완료한 후 버튼을 클릭합니다.
- 역할을 생성하려면 Create Role (역할 만들기) 단계에서 역할 설정을 검토하고 Create( ) 버튼을 클릭합니다. 버튼을 클릭하여 역할 설정을 수정하거나 버튼을 클릭하여 역할 생성을 취소할 수 있습니다.
- 마법사 창을 닫으려면 버튼을 클릭합니다.
검증
- LDAP 항목을 확장하고 항목 매개 변수 사이에 새 역할이 표시되는지 확인합니다.
3.2.4.2. LDAP 브라우저에서 역할 삭제 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔에서 LDAP 브라우저를 사용하여 Red Hat Directory Server 항목에서 역할을 삭제할 수 있습니다.
사전 요구 사항
- 웹 콘솔에 액세스합니다.
- 상위 항목은 Directory Server에 있습니다.
절차
- 웹 콘솔에 로그인하고 Red Hat Directory Server 를 클릭합니다.
- 웹 콘솔에서 Red Hat Directory Server 인터페이스를 로드한 후 LDAP 브라우저를 클릭합니다.
- LDAP 항목을 확장하면 삭제할 역할을 선택합니다.
- 옵션 메뉴( Cryostat)를 열고 삭제 를 선택합니다.
- 삭제할 역할에 대한 데이터를 확인하고 삭제 단계에 도달할 때까지 버튼을 클릭합니다.
- 스위치를 Yes로 전환합니다. 위치를 확인하고 버튼을 클릭합니다.
- 마법사 창을 닫으려면 버튼을 클릭합니다.
검증
- LDAP 항목을 확장하고 역할이 더 이상 항목 매개변수의 일부가 아닌지 확인합니다.
3.2.4.3. LDAP 브라우저에서 역할 수정 링크 복사링크가 클립보드에 복사되었습니다!
웹 콘솔에서 LDAP 브라우저를 사용하여 Red Hat Directory Server 항목의 역할 매개변수를 수정할 수 있습니다.
사전 요구 사항
- 웹 콘솔에 액세스합니다.
- 상위 항목은 Directory Server에 있습니다.
절차
- 웹 콘솔에 로그인하고 Red Hat Directory Server 를 클릭합니다.
- 웹 콘솔에서 Red Hat Directory Server 인터페이스를 로드한 후 LDAP 브라우저를 클릭합니다.
- LDAP 항목을 확장하고 수정할 역할을 선택합니다.
- 옵션 메뉴( Cryostat)를 클릭하고 편집을 선택하여 역할의 매개 변수를 수정하거나 Rename 을 선택하여 역할 이름을 변경합니다.
- 마법사 창에서 필요한 매개변수를 수정하고 LDIF 문 단계를 확인할 때까지 각 단계 후에 클릭합니다.
- 업데이트된 매개 변수를 확인하고 클릭합니다.
- 마법사 창을 닫으려면 버튼을 클릭합니다.
검증
- LDAP 항목을 확장하고 업데이트된 매개변수가 역할에 나열되어 있는지 확인합니다.