en
지원하는 언어
  • en
  • cs
  • hu
  • it
  • es
  • fr
  • de
  • ru
기계 번역
  • bg
  • dk
  • nl
  • gr
  • il
  • jp
  • kr
  • 아니
  • pl
  • tr

LDAP 인증

LDAP

LDAP 인증을 구성하는 방법

살펴보기
LDAP 인증 모드 선언
즉석 사용자 생성
그룹 기반 LDAP 로그인
문제해결
코너 상황

 

살펴보기

LDAP (Lightweight Directory Access Protocol)는 공용 인터넷이든 회사 인트라넷이든 관계없이 네트워크에서 파일, 장치와 같은 조직, 개인 및 기타 리소스를 찾을 수 있도록하는 소프트웨어 프로토콜입니다. LDAP는 네트워크의 디렉토리 서비스 표준 인 X.500의 일부인 DAP (Directory Access Protocol)의 "경량"(소량의 코드) 버전입니다. 초기 버전에는 보안 기능이 포함되어 있지 않기 때문에 LDAP는 더 가볍습니다. Easy Project는 기본적으로 하나 이상의 LDAP 디렉토리를 사용하여 LDAP 인증을 지원합니다. 지원되는 디렉토리 서비스 유형에는 Active Directory, OpenLDAP, eDirectory, Sun Java System Directory Server 및 기타 호환 가능한 디렉토리 서비스가 포함됩니다.

LDAP 디렉토리는 다음 레벨로 구성된 간단한 "트리"계층 구조로 구성됩니다.

  1. 루트 디렉토리 (시작 위치 또는 트리의 소스)
  2. 각 국가에 진출하는 국가
  3. 분기하는 조직
  4. 다음으로 분기되는 조직 구성 단위 (본부, 부서 등)
  5. 개인 (사람, 파일 및 프린터와 같은 공유 리소스 포함)

 

LDAP 인증 모드 선언

관리로 이동하여 메뉴에서 "LDAP 인증"을 클릭하십시오. 여기에는 테스트 또는 삭제 옵션을 포함하여 기존의 모든 LDAP 인증 모드 목록이 있습니다. 새로 만들려면 오른쪽 상단 모서리에있는 "새 인증 모드"녹색 버튼을 클릭하십시오.

LDAP 서비스 제공자는 URL을 사용하여 디렉토리 서버에 대한 연결을 구성합니다. LDAP 연결 URL을 생성하려면 다음 필드를 지정해야합니다.

  • 이름: 디렉토리의 임의의 이름입니다.
  • 호스트 : LDAP 호스트 이름 (테스트 서버).
  • 포트 : LDAP 포트 (기본값은 389)입니다.
  • LDAPS : 디렉토리에 액세스하기 위해 LDAPS를 사용하거나 필요로하는 경우이를 확인하십시오.
  • 계정: LDAP에 대한 읽기 권한이있는 사용자 이름을 입력하십시오. 그렇지 않으면 LDAP를 익명으로 읽을 수있는 경우이 필드를 비워 두십시오 (Active Directory 서버는 일반적으로 익명 액세스를 허용하지 않음).
  • 암호: 계정의 비밀번호입니다.
  • 기본 DN : LDAP 디렉토리 트리의 최상위 DN (예 : dc = example, dc = com)
  • LDAP 필터 : 필터를 사용하여 애플리케이션에 액세스 할 수있는 사용자 또는 그룹 수를 제한 할 수 있습니다. 본질적으로 필터는 애플리케이션이 동기화하는 LDAP 트리 부분을 제한합니다. 필터는 사용자 및 그룹 구성원 모두에 대해 작성 될 수 있으며 작성되어야합니다. 이렇게하면 액세스 할 필요가없는 사용자 및 그룹으로 애플리케이션이 넘치지 않습니다.
     

    샘플 필터

    (경고) 이 필터는 Active Directory 용으로 작성되었습니다. OpenLDAP와 같은 용도로 사용하려면 속성을 변경해야합니다.

    'CaptainPlanet'그룹의 사용자 만 동기화합니다. 사용자 객체 필터:

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    그리고 직접 또는 중첩을 통해이 그룹의 구성원 인 사용자를 검색합니다.

    (&(objectCategory=Person)(sAMAccountName=*)(memberOf:1.2.840.113556.1.4.1941:=cn=CaptainPlanet,ou=users,dc=company,dc=com))

    (정보) Active Directory가 갖는 중요한 사항 memberOf : 1.2.840.113556.1.4.1941 CaptainPlanet 그룹 내에서 중첩 된 그룹을 찾으려면 (숫자 문자열을 바꾸지 마십시오).

    4 개 그룹 (화재, 바람, 물, 심장) 중 하나 또는 모두의 구성원 인 사용자를 검색합니다.

    (&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=cn=fire,ou=users,dc=company,dc=com)(memberOf=cn=wind,ou=users,dc=company,dc=com)(memberOf=cn=water,ou=users,dc=company,dc=com)(memberOf=cn=heart,ou=users,dc=company,dc=com)))
  • 시간 초과 (초) : 지정된 기간 내에 LDAP 공급자가 LDAP 응답을받지 못하면 읽기 시도가 중단됩니다. 정수는 XNUMX보다 커야합니다. XNUMX보다 작거나 같은 정수는 읽기 시간 초과가 지정되지 않았으며 응답이 수신 될 때까지 응답을 무한정 대기하는 것과 같으며 기본값은 원래 동작입니다. 이 특성을 지정하지 않으면 기본값은 응답이 수신 될 때까지 기다리는 것입니다.
  • 즉각적인 사용자 생성 : 이를 확인하면 모든 LDAP 사용자가 Easy Project에 처음 로그인 할 때 자신의 Easy Project 계정이 자동으로 생성됩니다. 그렇지 않으면, 로그인하려는 각 LDAP 사용자에 대해 Easy Project에서 사용자를 수동으로 작성해야합니다.

속성 ():

  • 로그인 속성 : 사용자가 로그인하고 인증되는 로그인 이름입니다.
  • 이름 속성 : 이름의 속성.
  • 성 속성 : 성의 속성입니다.
  • 이메일 속성 : 이메일 주소의 속성입니다.

Easy Project 사용자는 계정이 인증을 위해 LDAP를 사용하도록 설정된 경우 LDAP 사용자 이름 및 비밀번호를 사용하여 인증 할 수 있습니다 (사용자 프로파일을 편집 할 때 "인증 모드"설정 확인).

이를 테스트하려면 LDAP 계정과 일치하는 로그인으로 Easy Project 사용자를 작성하고 (일반적으로 Easy Project는 LDAP 데이터를 검색하여 알려줍니다) 인증 모드 드롭 다운 목록에서 새로 작성된 LDAP를 선택하십시오 (이 필드는 LDAP가 선언 된 경우에만 계정 화면에 표시되고 비밀번호는 비워 두십시오. LDAP 사용자 이름과 비밀번호를 사용하여 Easy Project에 로그인하십시오.

 

귀하의 필요에 맞는 소프트웨어? 쉬운.

하나의 조정 가능한 도구를 사용하여 프로젝트 관리에 조화를 이루고 모든 것을 제어할 수 있습니다.


즉석 사용자 생성

확인하여 즉각적인 사용자 생성모든 LDAP 사용자는 Easy Project에 처음 로그인 할 때 Easy Project 계정이 자동으로 생성됩니다.
이를 위해 Easy Project 계정을 만드는 데 사용될 LDAP 속성 이름 (이름, 성, 전자 메일)을 지정해야합니다.

다음은 Active Directory를 사용하는 일반적인 예입니다.

이름 = 내 디렉터리 호스트 = host.domain.org 포트 = 389 LDAPS = 계정 없음 = MyDomain \ UserName (또는 AD 서버에 따라 UserName @ MyDomain) 암호 ​​= 기본 DN = CN = users, DC = host, DC = domain, DC = org On-the-fly 사용자 생성 = yes 속성 로그인 = sAMAccountName 이름 = givenName 성 = sN 이메일 = 메일

구획화 된 인트라넷이있는 Active Directory의 또 다른 예는 다음과 같습니다.

이름 = 인증 모드 페이지에 대한 설명입니다. 호스트 = DepartmentName.OrganizationName.local 포트 = 389 LDAPS = 계정 없음 = DepartmentName \ UserName (또는 AD 서버에 따라 UserName @ MyDomain 또는 바인드 DN uid = Manager, cn = users, dc = MyDomain, dc = com) 비밀번호 = 기본 DN = DC = DepartmentName, DC = OrganizationName, DC = local On-the-fly 사용자 생성 = 예 속성 로그인 = sAMAccountName 이름 = givenName 성 = sN 이메일 = 메일

LDAP 속성 이름은 대소 문자 구분.

동적 바인드 계정

위의 설정은 Easy Project가 사전 인증을 위해 사용하는 디렉토리 서버에 특별한 계정이 필요합니다. 키워드를 사용할 수 있습니다 $ 로그인 계정 필드에 현재 로그인으로 바뀝니다. 이 경우 비밀번호를 비워 둘 수 있습니다. 예를 들면 다음과 같습니다.

계정 : $login@COMPANY.DOMAIN.NAME

or

계정 : company \ $ login

기본 DN 변형

위의 기본 DN이 Active Directory의 표준 일 수는 있지만, 고용주의 사이트에있는 Active Directory는 표준 사용자에 대해 사용자 컨테이너를 사용하지 않으므로 이러한 지침이 길고 고통스러운 길을 안내해줍니다. 또한 설정에 로그인이 실패하면 "DC = host, DC = domain, DC = org"를 시도하는 것이 좋습니다.

 

그룹 기반 LDAP 로그인

특정 LDAP 그룹에 속하는 사용자의 로그인 만 허용하려면 아래 지침을 따라야합니다. OpenLDAP LDAP 서버 및 Easy Project를 기반으로합니다.

1. (OpenLDAP 서버) 오버레이 멤버 활성화

1.1. 파일을 작성하십시오.

vim ~ / memberof_add.ldif

아래 내용으로 :

dn : cn = module, cn = config
objectClass : olcModuleList
cn : 모듈
olcModulePath : / usr / lib / ldap
olcModuleLoad : memberof

1.2. 파일을 작성하십시오.

vim ~ / memberof_config.ldif

아래 내용으로 :

dn : olcOverlay = memberof, olcDatabase = {1} hdb, cn = config
objectClass : olcMemberOf
objectClass : olcOverlayConfig
objectClass : olcConfig
objectClass : top
olcOverlay : 멤버
olcMemberOfDangling : 무시
olcMemberOfRefInt : 참
olcMemberOfGroupOC : groupOfNames
olcMemberOfMemberAD : 멤버
olcMemberOfMemberOfAD : memberOf

1.3. 로드하십시오. OpenLDAP 구성에 따라 달라 지므로 몇 가지 가능성을 제안합니다.

sudo ldapadd -c -Y 외부 -H ldapi : /// -f memberof_add.ldif
sudo ldapadd -c -Y 외부 -H ldapi : /// -f memberof_config.ldif

또는 :

ldapadd -D cn = admin, cn = config -w "암호"-H ldapi : /// -f memberof_add.ldif
ldapadd -D cn = admin, cn = config -w "암호"-H ldapi : /// -f memberof_config.ldif

동적 런타임 구성 엔진 (slapd-config)을 사용하는 경우 다시 시작할 필요가 없습니다.

1.4. (선택 사항) 다음을 테스트하십시오.

ldapsearch -D cn = admin, dc = example, dc = com -x -W -b 'dc = example, dc = com'-H 'ldap : //127.0.0.1 : 389 /' '(& (objectClass = posixAccount ) (memberOf = cn = ldapeasyproject, ou = groups, dc = example, dc = com)) '

2. (OpenLDAP 서버) 그룹을 만듭니다. 이 예에서 사용자는 "ldap_user_1"이고 그룹은 "ldapeasyproject"입니다.

DN : cn = ldapeasyproject, ou = groups, dc = 예, dc = com
cn : ldapeasyproject
설명 : 직원들은 Easy Project 티켓 시스템에 로그인 할 수 있습니다
회원 : cn = ldap_user_1, ou = people, dc = example, dc = com
객체 클래스 : groupOfNames
객체 클래스 : 상단

DIT 구조에 맞게 "dn"및 "cn"조정

3. (Easy Project) LDAP 인증 모드를 편집하십시오. 필자의 경우 "ldap_user_1"은 "posixAccount"객체 클래스입니다.

기본 DN : dc = example, dc = com
필터 : (& (objectClass = posixAccount) (memberOf = cn = ldapeasyproject, ou = groups, dc = example, dc = com))

 

문제해결

즉석 사용자 작성을 사용하려면 Easy Project가 LDAP에서 필요한 모든 정보를 가져 와서 유효한 사용자를 작성할 수 있는지 확인하십시오.
예를 들어, 디렉토리에 유효한 이메일 주소가 없으면 즉시 사용자 작성이 작동하지 않습니다 (로그인 할 때 '잘못된 사용자 이름 / 암호'오류 메시지가 표시됨).
(이것은 최신 Easy Project 버전에서는 해당되지 않습니다. 사용자 작성 대화 상자는 LDAP 서버에서 찾을 수있는 모든 항목으로 채워지고 새 사용자에게 나머지 내용을 입력하도록 요청합니다.)

또한으로 표시된 맞춤 입력란이 없는지 확인하십시오. 필수 사용자 계정 이러한 사용자 정의 필드는 사용자 계정이 즉시 생성되지 못하게합니다.

로그인 시스템의 오류는 Easy Project 로그에 실제 정보와 함께보고되지 않으므로 문제 해결이 어렵습니다. 그러나 필요한 정보의 대부분을 찾을 수 있습니다 와이어 샤크 Easy Project 호스트와 LDAP 서버 간. 이 두 호스트 간의 네트워크 트래픽을 읽을 수있는 권한이있는 경우에만 작동합니다.

'ldapsearch'도구를 사용하여 설정이 올바른지 테스트 할 수도 있습니다. Easy Project를 호스팅하는 Linux 시스템에 로그인하고 ldaputils를 설치하십시오.

ldapsearch -x -b  "dc=example,dc=com" -H ldap://hostname/ -D "DOMAIN\USER" -w mypassword [searchterm]

성공하면 검색 내용과 일치하는 AD의 내용 목록이 표시됩니다. 그런 다음 Easy Project의 LDAP 구성에서 필드를 채우는 방법을 알게됩니다.

기능을 확인하는 대체 방법

  • 잘못 설정된 경우 찾으려는 사용자를 삭제할 수있는 LDAP 필터를 제거하십시오.
  • "로그인 속성"옆에는 책 아이콘이 있습니다. 이를 클릭하고 LDAP가 올바르게 설정되면 실제 LDAP 서버가 "일반 속성"을 자동으로 미리 채 웁니다. 사용자가 설정을 변경하려는 경우 텍스트 필드 대신 선택 상자가 나타납니다. 대부분의 경우 사용자는이 내용을 전혀 채울 필요가 없습니다. 이것이 작동하면 다른 모든 것이 효과가있을 것입니다.
  • 연결 문제의 경우 LDAP 서버 목록에서 "테스트"버튼을 사용할 수 있습니다. LDAP에 연결할 수 있는지 테스트하는 역할 만합니다. 일반적인 문제점은 LDAP 설정이 여전히 보호되는 경우에도 관리자가 LDAP 시스템 사용자를 채우지 않는다는 것입니다. 이 경우 연결이 작동하기 때문에 테스트가 정상적으로 실행되지만 LDAP가 "보지"않기 때문에 사용자를 추가 할 수 없습니다.
  • LDAP가 실제로 작동하는지 테스트하기 위해 "사용 가능한 사용자"번호를 사용할 수도 있습니다. 값이 0이면 LDAP가 데이터를 리턴하지 않고 잘못 설정되었을 수 있습니다. 숫자가 있으면 숫자를 클릭하여 확장하여 LDAP에 표시되는 내용을 확인하고 그에 따라 필터를 조정하십시오.

계정 값 형식

바인드 자격 증명의 사용자 이름은 UPN ()이 아닌 DN으로 지정해야 할 수 있습니다.user@domain.com) 또는 도메인 \ 사용자,이 의견에서 지적했듯이 출처 : 트렁크 / 벤더 / 플러그인 /ruby-net-ldap-0.0.4/lib/net/ldap.rb:

  # # 바인드에 설명 된 것처럼 대부분의 LDAP 서버에서는 암호와 같은 인증 자와 함께 완전한 DN #을 바인딩 자격 증명으로 제공해야합니다.

따라서 MyDomain \ MyUserName 또는 MyUserName@MyDomain.com username은 Easy Project 로그인 이름으로 MyUserName 만 입력 할 수 있습니다.

느린 LDAP 인증

LDAP 인증이 느리고 AD 클러스터가있는 경우 호스트 필드에 AD 물리적 서버 중 하나를 지정하십시오. 도움이 될 수 있습니다.

오픈DS

OpenDS 서버를 사용하는 경우 지정된 로그인 속성으로 사용자를 검색하는 초기 쿼리와 함께 요청 제어 "페이징 된 결과"와 관련된 문제가있을 수 있습니다. 이 요청 제어 1.2.840.113556.1.4.319는 기본적으로 익명 사용자에게는 허용되지 않으므로 바인딩하기 전에도 Easy Project가 디렉토리에서 사용자를 찾을 수 없습니다.

이와 같은 글로벌 ACI 추가

./dsconfig -h SERVER_IP -p 4444 -D cn = "Directory Manager"-w 암호 -n set-access-control-handler-prop --trustAll --add global-aci : \ (targetcontrol = \ "1.2.840.113556.1.4.319 .3.0 \ "\) \ \ (버전 \ 1.2.840.113556.1.4.319 \; \ acl \ \"Anonymous \ control \ access \ to \ XNUMX \ "\; \ allow \ \ (read \) \ userdn = \ "ldap : /// anyone \"\; \)

참고 : 한 줄에 명령을 입력하고 표시된대로 정확하게 이스케이프를 사용하십시오 ( "acl"뒤에 \는 공백으로 "\"로 표시됨).

일부 사용자는 로그인 할 수 없습니다

문제 : 다른 사용자가있는 동안 특정 사용자 OU는 로그인 할 수 없습니다 (유효하지 않은 사용자 또는 비밀번호). 사용자가 원격 사이트에 있지만 같은 사이트의 다른 OU에있는 사용자에게는이 오류가 발생하지 않습니다.

해결 방법 : 문제는 잘못된 설정이 아니라 AD (Active Directory) 문제 일 가능성이 높습니다. 연결할 수없는 사용자는 AD 사용자 속성 (AD 관리)에서 "로그온 대상"필드를 특정 PC로 설정했습니다. "모든 곳에서 로그온"으로 변경하면 작동합니다. 보다 구체적으로이 필드는 AD 사용자-> 속성-> 계정-> 모든 곳에서 로그온으로 설정해야합니다.

유효한 인증서없이 LDAPS를 사용할 때 로그인 문제

유효한 인증서없이 LDAPS를 사용할 때 로그인 문제가 발생할 수 있습니다. Easy Project에서는 LDAPS 인증서가 항상 검증됩니다. 유효하지 않은 인증서를 사용하면 사용자는 로그인 할 수 없습니다. 물론 올바른 장기 솔루션은 유효한 인증서를 사용하는 것입니다. 그러나이를 달성 할 때까지 임시 해결책은 관리 >> LDAP 인증 >> 각 인증 모드 편집으로 이동하는 것입니다.

설정을 다음으로 변경 LDAPS (인증서 검사 없음).

Easy Project Server 솔루션을 사용하면 레일 콘솔에서 대량으로 변경할 수 있습니다
레일 r "AuthSource.update_all (verify_peer : false)"-e 생산

또는 SQL을 통해
UPDATE auth_sources set verify_peer = 0;

 

코너 상황

  • LDAP에서 사용자를 자동으로 가져 오거나 작성하는 경우 사용자 작성 양식에 입력 한 기본 사용자 유형 설정이 LDAP에 입력 된 기본 사용자 유형 설정보다 선호됩니다. 사용자를 만든 후에는 새 LDAP를 만들지 않는 한이 설정을 나중에 변경할 수 없습니다.

30일 무료 평가판으로 Easy Project를 사용해 보세요.

지리적 위치에서 모든 기능, SSL 보호, 일일 백업