개요

LDAP조직도관리는 조직과 사용자 정보를 효율적으로 관리하기 위한 컴포넌트로,
LDAP과의 연계를 통해 조회 성능을 향상시키고, 차트형태와 같이 다양한 방식으로 조직도를 표현할 수 있는 기능을 제공한다.

LDAP조직도관리는 아래와 같은 기능을 포함한다.

기능 설명
조직도 조회LDAP에 저장된 조직도 정보를 트리형태 또는 차트형태로 렌더링
엔트리 동적생성 기능 UI를 통한 새로운 엔트리 추가 기능
엔트리 정보 편집 UI를 통한 기존 엔트리 속성값수정/삭제/이동 기능
행자부 표준지원행자부 유통표준 LDAP스키마인 UCORG2를 지원

설명

LDAP조직도관리 컴포넌트에서 조직도 정보는 아래와 같이 트리형태과 차트형태 두가지로 표현한다.
엔트리 추가/수정/삭제를 위한 컨텍스트 메뉴는 트리형태로 표현된 경우에만 제공한다.

조직도 조회 화면1 - 트리형태

  • '/ext/ldapumt/dpt/selectDeptManageTreeView.do?baseDn=…'을 이용해 LDAP 서버로부터 데이터를 조회하면, 조직도 정보가 화면 왼쪽에 트리형태로 표현된다.
  • 하나의 엔트리가 하위 엔트리를 가지는 경우, 해당 엔트리 앞에 삼각형으로 표시된다.
  • 각 엔트리에 대한 상세 정보는 오른쪽 화면에 출력되고, 데이터를 변경한 후 저장 버튼을 누르면 LDAP 서버에 변경된 데이터가 저장된다.
  • 조직도 정보는 최초 request로 넘어온 dn의 하위 엔트리에 대해서만 조회를 하고, 하위 엔트리의 펼침 버튼을 눌렀을 때만 LDAP에서 추가 조회하기 때문에 부하를 최소화할 수 있다.

조직도 컨텍스트 메뉴

  • 컨텍스트 메뉴를 이용하면 화면상에서 부서와 사용자 엔트리를 추가할 수 있고, 원하는 엔트리 이름을 변경하거나 삭제할 수 있다.
  • 트리목록 중 변경을 원하는 엔트리 위치에서 마우스 우클릭하면 컨텍스트 메뉴가 나온다.
컨텍스트 메뉴하위 메뉴설명
추가부서, 사용자엔트리 추가
이름변경-엔트리 이름 변경
삭제-엔트리 삭제
편집 이동부서선택엔트리 위치 이동

조직도 조회 화면2 - 차트(그래프)형태

  • '/ext/ldapumt/dpt/selectDeptManageOrgChartView.do?baseDn=…'을 이용해 LDAP 서버로부터 데이터를 조회하면, 조직도 정보가 차트 형태로 표현된다.
  • 엔트리를 한번 클릭하면 우측 하단에 엔트리 상세정보가 나타나며, 내용을 변경할 수 있다.
  • 엔트리를 더블 클릭을 하면 하위 엔트리를 LDAP에서 추가 조회하여 동적으로 보여준다.

관련 패키지 및 소스

유형소스설명
Controlleregovframework.com.ext.ldapumt.web.EgovOrgManageLdapController.java 조직도 관리를 위한 컨트롤러 클래스
VOegovframework.com.ext.ldapumt.service.LdapTreeObject.java 웹에서의 tree구현을 위한 오브젝트 클래스
VOegovframework.com.ext.ldapumt.service.LdapObject.java LDAP과 인터페이스를 위한 추상클래스
VOegovframework.com.ext.ldapumt.service.UcorgVO.java 부서 VO클래스
VOegovframework.com.ext.ldapumt.service.UserVO.java 사용자 VO클래스
Serviceegovframework.com.ext.ldapumt.service.EgovOrgManageLdapService.java 조직도 관리를 위한 서비스 인터페이스
ServiceImplegovframework.com.ext.ldapumt.service.impl.EgovOrgManageLdapServiceImpl.java 조직도 관리를 위한 서비스 구현클래스
Execute Interfaceegovframework.com.ext.ldapumt.service.impl.Executable.java ORMapping 지원을 위한 클래스
Object Mapperegovframework.com.ext.ldapumt.service.impl.ObjectMapper.java LdapTemplate을 사용하기 위한 ObjectMapper클래스
DAOegovframework.com.ext.ldapumt.service.impl.OrgManageLdapDAO.java조직도 관리를 위한 추상 Data Access Object
DAOegovframework.com.ext.ldapumt.service.impl.DeptManageLdapDAO.java부서 관리를 위한 Data Access Object
DAOegovframework.com.ext.ldapumt.service.impl.com.ext.ldapumt.service.impl.UserManageLdapDAO.java사용자 관리를 위한 Data Access Object
XML/resources/egovframework/spring/com/context-ldap.xml LDAP Spring 설정 관련 XML
패키지/html/egovframework/com/ext/ldapumtJSTree 패키지
JSP/WEB-INF/jsp/egovframework/com/ext/ldapumt/EgovDeptManageTree.jsp조직도 관리를 위한 트리 JSP 페이지
JSP/WEB-INF/jsp/egovframework/com/ext/ldapumt/EgovDeptManageOrgChart.jsp조직도 관리를 위한 조직도 차트 JSP 페이지

아키텍쳐

클래스 다이어그램

사용방법

1. ldap 서버와 연결하기 위한 서버 연결 정보를 context-ldap.xml파일에 작성한다.

<ldap:context-source url="LDAP 서버 URL" base="최상위 DN" username="LDAP 서버 ID" password="LDAP 서버 PASSWORD" />
<!-- 예시, <ldap:context-source url="ldap://localhost:10389" base="c=kr" username="uid=admin,ou=system" password="secret" /> -->

2. ldap 서버에 저장된 데이터를 조회하기 위한 URL 호출 방법은 다음과 같다. - 트리형태로 보기

/ext/ldapumt/dpt/selectDeptManageTreeView.do?baseDn=[DN|RDN]
//예시, /ext/ldapumt/dpt/selectDeptManageTreeView.do?baseDn=o=Government of Korea

- 차트형태로 보기

/ext/ldapumt/dpt/selectDeptManageOrgChartView.do?baseDn=[DN|RDN]
//예시, /ext/ldapumt/dpt/selectDeptManageOrgChartView.do?baseDn=o=Government of Korea

3. LDAP조직도관리 컴포넌트를 위한 조직 스키마(ucOrg2)와 조직원 스키마(User)가 담긴 LDIF 파일
(단, 아래 파일은 ApacheDS 서버에서 export한 파일임, 다른 서버에서 import할 경우 정상적으로 import되지 않을 수 있음)

schema.zip

object class :: ucOrg2
attributedescriptionattributedescriptionattributedescription
docSystemInfo기관별 문서함ou해당기관의 명칭(필수)ouCode기관코드(필수)
ouDocumentReceipientSymbol수신 문서 symbolouLevel조직의 차수ouOrder차상위 기관내의 조직의 서열
ouReceiveDocumentYN대외문서 처리과여부ouSendOutDocumentYN대외문서 송신여부ouSMTPAddress조직 전자메일 주소
parentouCode차상위 기관코드repouCode대표기관코드signCertificate서명용 전자 관인
topouCode최상위 기관코드typeBig대분류typeMid중분류
typeSml소분류ucChieftitle발신인명의ucOrganizationalUnitName해당 기관의 명칭
ucOrgFullName상위기관을 포함한 전체 조직명useGroupware조직 사용하는 그룹웨어명userCertificate조직 인증서 정보
wsignCertificate무선 서명용 인증서wuserCertificate무선 암호화용 인증서
object class :: User
attributedescriptionattributedescriptionattributedescription
birthday생일business업무cn행정전자서명 아이디
companyName사용자가 속한 부처명departmentName사용자가 속한 실국명dispatchYN파견여부
displayName화면에 보여줄 사용자의 이름 예) 홍길동facsimileTelephoneNumber회사팩스번호givenName사용자의 영문이름
grade직급homePhone사용자의 집 전화번호homePostalAddress집주소
insayn인사권한여부mailSMTPmgrTopOuCode최상위 기관코드
mobile사용자의 휴대 전화번호office사용자의 사무실 전화번호orgManagerYN관리자여부
ou해당기관의 명칭ouCode기관코드ouLevel조직의 차수
ouOrder차상위 기관내의 조직의 서열parentouCode차상위 기관코드position사용자직위
postalAddress회사주소RegDate등록일RegDestType등록목적타입
repouCode대표기관코드signCertificate서명용 전자관인telephoneNumber회사전화번호
topouCode상위기관코드ucOrgFullName상위기관포함 전체 조직명useEndDate사용종료일
userCertificate사용자 인증서 정보userFullName자신이 속한 조직 전체명 + 사용자명userType사용자 타입
useStartDate사용시작일wsignCertificate무선 서명용 인증서wuserCertificate무선 암호화용 인증서

조직도 조회화면 테스트방법

1. [환경구성 및 설치] Apache Directory Studio 2.0.0 설치 후 Apache Directory Studio.exe 실행

2. [서버 생성] LDAP Servers 탭 > ApacheDS 2.0.0 더블클릭 (없으면 추가) > Partitions 탭 > Add 버튼 > 아래와 같이 입력 후 저장 (Ctrl + S)

3. [서버 실행] LDAP Servers 탭 > ApacheDS 2.0.0 우클릭 > Create a Connection, Run (서버 실행)

4. [LDAP 디렉토리 생성] Connections 탭 > ApacheDS 2.0.0 더블클릭 > LDAP Browser 탭 > DIT-Root DSE-c=kr 디렉토리 생성 확인

5. [LDAP 스키마 추가] LDAP Browser 탭 > DIT 우클릭 > Import > LDIF Import > Browse > schema.ldif 선택 > Finish
(Import 결과, ou=schema > cn=schema 아래 ou=attributetypes, ou=objectclasses 디렉토리 생성)

6. [LDAP 엔트리 생성] 조직(ucOrg2)과 조직원(User) 스키마를 기준으로 필요한 조직, 조직원 엔트리를 생성 (아래는 예시)

c=kr
  o=Government of Korea --- 1)
     ou=Seoul            --- 2)
        ou=organization1
          ou=department1
          ou=department2
        ou=organization2
        ou=people
          cn=honggildong --- 3)
          cn=kimmimi
  • 1) c=kr 우클릭 > New Entry > Next > object classes에서 'organization' Add > RDN 입력 (o=Government of Korea)
  • 2) o=Government of Korea 우클릭 > New Entry > Next > object classes에서 'ucOrg2' 입력 후 새로고침 버튼 > Add > RDN 입력 (ou=Seoul) > Attribute 추가 입력(동일한 방식으로 ou=organization1, 2와 ou=department1, 2, ou=people 생성)
  • 3) ou=people 우클릭 > New Entry > Next > object classes에서 'User' 입력 후 새로고침 버튼 > Add > RDN 입력 (cn=honggildong) > Attribute 추가 입력

7. [최종 결과] 실행 결과 및 URL 호출 방법 (현재 조직정보는 필수값만 입력된 상태)

  • o=Government of Korea를 기준으로 조회한 화면

  • ou=people,ou=Seoul,o=Government of Korea를 기준으로 조회한 화면

 
egovframework/ldap조직도관리.txt · 마지막 수정: 2024/02/02 04:40 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki