LDAP (Active Directory)
=======================

Genian ZTNA는 LDAP 디렉토리를 사용자 및 조직 정보의 소스로 사용할 수 있습니다.
LDAP 동기화를 통해 사용자 계정을 로컬에서 생성하여 관리 또는 정책에 사용 할 수 있습니다.
LDAP 동기화는 일반적으로 Microsoft AD(Active Directory) 시스템에서 사용됩니다.

다음은 AD를 기반으로 사용자 및 조직 정보를 동기화하는 방법에 대해 설명합니다.

접속 테스트 하기
-----------------------

접속 테스트를 수행하기 위해서는 다음에 기본값이 입력되어야 합니다.

+--------------------+---------------------------------+--------------------------------------------------------+
|    항목            |             설정값              |                         설명                           |
+====================+=================================+========================================================+
| LDAP               | DB Server                       | LDAP 서버 IP를 입력합니다.                             |
+                    +---------------------------------+--------------------------------------------------------+
|                    | DB PORT                         | LDAP 서버 접속 포트를 입력합니다.                      |
+                    +                                 +--------------------------------------------------------+
|                    |                                 | SSL OFF : 389                                          |
+                    +                                 +--------------------------------------------------------+
|                    |                                 | SSL ON : 636                                           |
+                    +---------------------------------+--------------------------------------------------------+
|                    | SSL 접속                        | SSL 접속 유무를 설정합니다.                            |
+                    +---------------------------------+--------------------------------------------------------+
|                    | DB USER                         | Bind DN을 입력합니다.                                  |
+                    +---------------------------------+--------------------------------------------------------+
|                    | DB PASSWORD                     | Bind Password를 입력합니다.                            |
+                    +---------------------------------+--------------------------------------------------------+
|                    | 데이터소스 구분값               | 다수의 동기화 서버 사용 시 설정합니다.                 |
+--------------------+---------------------------------+--------------------------------------------------------+


.. note:: 접속 테스트가 정상적으로 되지 않을 경우 **정책서버** 와 **동기화 서버** 간 정상적인 통신 여부를 우선적으로 확인하시기 바랍니다.

동기화 설정하기
------------------------

#. 상단 항목의 **설정** 으로 이동합니다.
#. 왼쪽 설정 항목에서 **사용자인증 > 정보 동기화** 로 이동합니다.
#. **작업선택 > 생성** 을 클릭합니다.

**기본설정** 옵션

#. **ID** :  고유의 이름을 입력합니다.
#. **동기화 수행주기** : 동기화에 대해 지정된 시간 또는주기적인 간격을 선택합니다.
#. **정책적용여부** : 동기화 후 변경사항 반영을 위해 ``적용함`` 을 선택합니다 . 동기화 설정이 여러 개인 경우 ``적용안함`` 으로 설정하고 마지막 동기화만 사용하도록 설정 할 수 있습니다.

**데이터베이스** 옵션

#. **DB타입** : ``LDAP``
#. **DB SERVER** :  Active Directory 서버의 IP 주소 또는 FQDN 을 입력합니다.
#. **DB PORT**: AD의 LDAP 서비스 포트를 입력합니다. 기본 LDAP 포트는 ``389`` 입니다. LDAPS(LDAP over SSL)를 사용하는 경우 기본 포트는 ``636`` 입니다.
#. **SSL 접속** :  LDAPS를 사용할 경우``On`` 을 선택합니다.
#. **DB USER** : Active Directory의 Bind DN을 입력합니다. 일반적으로 ``administrator@company.com`` 과 같은 이메일 형식을 사용할 수 있습니다.
#. **DB PASSWORD** : Bind DN 사용자 비밀번호를 입력합니다.

**사용자정보** 옵션

#. **사용자테이블명** :  사용자의 기본 고유 이름(DN)을 입력합니다. 보통은, ``CN=Users,DC=company,DC=com`` 입니다.
#. **사용자조건문** : 사람 객체를 필터링하기 위해 ``(&(objectClass=user)(objectCategory=person))`` 를 입력합니다.
#. **사용자ID컬럼명** : ``sAMAccountName`` 을 입력합니다.
#. **사용자이름컬럼명** : ``displayName`` 을 입력합니다.
#. **부서ID컬럼명** : ``$distinguishedName, IF(LOCATE('OU=',$)>0,SUBSTRING($,LOCATE(',',$)+1),'')`` 를 입력합니다.
#. 기타 추가 정보는 각 컬럼 이름에 LDAP 속성 이름을 사용할 수 있습니다.

**부서정보** 옵션

#. **Table Name** :  OU(OrganizationUnit)의 기본 고유 이름(DN)을 입력합니다. 일반적으로 ``DC=company,DC=com`` 입니다.
#. **부서조건문** : OU 객체를 필터링 하려면 ``objectClass=organizationalUnit`` 를 입력합니다.
#. **출력정렬순서** : 부서명을 기준으로 출력하기 위해 ``@NAMEPATH`` 을 입력합니다.
#. **부서ID컬럼명** : ``distinguishedName`` 을 입력합니다.
#. **부서이름컬럼명** : ``name`` 을 입력합니다.
#. **상위부서컬럼명** : ``$distinguishedName, SUBSTRING($,LOCATE(',',$)+1)`` 을 입력합니다.
#. **생성** 버튼을 클릭합니다.

.. attention:: Active Directory는 userPassword 속성을 제공하지 않으므로 사용자 비밀번호를 동기화할 수 없습니다. 따라서 별도의 연동을 설정해야합니다. :ref:`integrate-external-ldap` 을 참조합니다.