2011-04-07 2 views
8

내가 암호 정책을 만들려고하고 13Openldap : pwdAttribute에 대해 "2.5.4.35"대신 "userPassword"를 사용할 수 있습니까?

페도라 코어에서 OpenLDAP를 2.4.11을 사용하고 있습니다 : 나는 pwdAttriute에 "userpassword"를 지정하면

dn: cn=default,ou=policies,dc=estream,dc=com,dc=my 
objectClass: person 
objectClass: pwdPolicy 
objectClass: top 
cn: default 
pwdAttribute: 2.5.4.35 
sn: test 

, 나는 오류를 얻을

LDAP: error code 21 - pwdAttribute: value #0 invalid per syntax 

대신, 나는 pwdAttribute에 대한 OID를 사용하도록 강제 :

pwdAttribute: 2.5.4.35 

pwdAttribute에 대해 "2.5.4.35"대신 "userPassword"를 사용할 수 있습니까?

나는 CN = 구성에서 모듈 ppolicy.la을로드 OpenLDAP를 구성을 시도하지만, 몇 번 다시 시작 slapd에 서비스 후 너무 작동하는 것 같다하지 않습니다

dn: cn=module{0},cn=config 
objectClass: olcConfig 
objectClass: olcModuleList 
objectClass: top 
cn: module{0} 
olcModuleLoad: {0}/usr/lib64/openldap/ppolicy.la 

답변

6

는 대신, 강제 pwdAttribute에 대한 OID 사용 :

당신은로드 OID를 또는 속성 이름, 제공하는 관련 스키마 모두와 ppolicy 오버레이를 지정할 수 있습니다.

왜 objectClass = 사람이 있습니까? 암호 정책은 사람이 아닙니다. objectClass = device를 암호 정책의 구조 클래스로 사용하는 것이 일반적입니다.

+0

감사합니다. 나는 objectClass = device를 알지 못합니다. 나는 단순히 그것을위한 구조적인 클래스를 넣는다. –

+0

OU가 거의 없습니다. 각 OU에는 거의 사람이 없습니다. OU에 다른 암호 정책을 할당 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까? –

+0

아니요, 일인당 설정해야합니다. – EJP

6

내 경험상 EJP의 답변이 잘못되었습니다.

openldap 2.4.29를 실행하는 것과 같은 오류 메시지가 나타납니다. 암호 정책 오버레이는 pwdAttribute: userPassword의 사용을 허용하지만 오버레이가 활성화 된 경우에만 허용됩니다. 그렇지 않으면 위의 메시지 (pwdAttribute: value #0 invalid per syntax)로 값이 거부됩니다. 당신의 OpenLDAP를 설치 동적 모듈을 사용하는 경우

,

moduleload  ppolicy.la 
당신의 slapd.conf 파일

(또는 cn=config 데이터베이스에 적합한 상당)를 포함해야합니다.

그런 다음 해당 데이터베이스에 대한 오버레이를로드

database  bdb 
suffix   "o=example.com" 
rootdn   "cn=Directory Manager,o=example.com" 
rootpw   password 
directory  /opt/openldap-2.4.29/var/openldap-data/example.com 
overlay   ppolicy 

이전 오버레이를로드하기에, 난 단지 pwdAttribute의 OID를 제공 할 수 있습니다. --enable-ppolicy으로 다시 작성한 후 overlay 항목을 추가하면 ldapmodify를 사용하여 pwdAttribute: 2.5.4.35pwdAttribute: userPassword으로 바꿀 수있었습니다.

오버레이를로드 한 후 pwdAttribute의 값을 새로 고침해야했습니다.

+0

당신은 pwdAttribute : userPassword에 대해 옳았습니다. 방금 시도했습니다. – damko

0

새 서버에서 2.3 버전을 2.4로 변환했고 Red Hat 6.3에서도 같은 오류가 발생했습니다. 대신 pwdAttribute : 2.5.4.35를 사용했고 승/O 문제를로드했습니다.

1

방금이 문제가 발생하여 이전과 다르게 해결되었습니다. CentOS 6.4에 새로운 LDAP를 설치하려고합니다 (RHEL 6의 최종 배포 용).4)이며, 기본값은 "(cn = config)"구성 체계이므로, 위의 slapd.conf 수정에 대한 위의 모든 지침이 적용되지 않습니다.

"(cn = config)"방식 (일부 웹 사이트에서는 "slapd.d"라고도 함)에서는 오버레이를 작동시키는 데 많은 단계가 있습니다. 다루는 기본 CentOS 6.4 LDAP에는 ppolicy 스키마가 포함되어 있지만 활성화되지 않았습니다.

이 많은 단계가 있었다, 그것은 가야 :

는 첫째, "ppolicy"모듈은 동적이며, 당신은이 런타임 모듈 목록에 포함되어 있는지 확인해야합니다. 기본 CentOS 설치에는 아무 것도 없었으므로 먼저 모듈을 켠 다음 ppolicy를 목록에 추가해야했습니다. 이 LDIF는 작업을 수행합니다

dn: cn=Module{0},cn=config 
objectClass: olcModuleList 
cn: Module{0} 
olcModuleLoad: ppolicy 

나중에 더 많은 모듈을 추가 만이 DN에 추가 olcModuleLoad 항목을 추가하십시오.

둘째, 적용 할 데이터베이스의 오버레이를 켜야합니다. 따라서, 다른 DN을 만듭니다

dn: olcOverlay=ppolicy,olcDatabase={2}bdb,cn=config 
objectClass: olcPPolicyConfig 
olcOverlay: ppolicy 

이 처음 두 단계는 시스템의 루트 사용자, 데이터베이스 외부, 즉 "CN = 구성"도메인에 끝낼. 후속 단계는 "dc = example, dc = com"범위에 있으므로 rootDN으로 수행 할 수 있습니다.

세 번째 단계는 암호 정책을위한 컨테이너를 만드는 것입니다. 이것은 선택 사항이 될 수도, 잘 모르겠어요 - 나는 DN처럼 만들어 :

dn: ou=pwpolicies,dc=example,dc=com 
objectClass: organizationalUnit 
objectClass: top 
ou: pwpolicies 

넷째, 실제 정책을 만들이 -이 오류로 실행 한 사람들이 이미이 있고, 이것은와 DN입니다 "pwdAttribute"구문 오류가 발생했습니다. 앞에서 설명한 오버레이와 모듈 작업을 올바르게 수행하면 구문 오류가 발생하지 않고 pwdAttribute : userPassword를 사용할 수 있습니다. 물론 정책은 ou 컨테이너 안에 있었고 "pwdPolicy"외에도 "device"라는 objectClass를 사용했습니다. 다른 곳에서 제안되었다한다. 마지막으로

, 당신은 실제로 물론, 정책을 사용할 수 있습니다.

이 모든 과정은 나를 더 혼란 만들어진 문서의 너무 많이 밖으로 설정하는 방법에 대해이 있기 때문에 slapd.conf. 모듈과 오버레이 정보를 잘 다루지 만 패스워드 정책 섹션에 잘못되었거나 쓸데없는 예가있다 (구조 객체 클래스가 빠짐) Zytrax "LDAP for Rocket Scientists"

+0

감사합니다. 훌륭한 답변입니다. 또한 스키마를로드하기 위해'ldapadd -QY EXTERNAL -f/etc/ldap/schema/ppolicy.ldif'를해야만했습니다. –

관련 문제