Software & Solution/IBM Connections

IBM Connections 사용자 관리

누한 2018. 1. 15. 03:41
반응형

IBM Connections 사용자 관리


관리자 영역에 대한 참고 자료입니다.


그중에서 사용자 관리 입니다.




. 사용자 관리

기업에서 사용자 관리의 전형적인 방법은 아래와 같습니다.

Case 1) Profiles Database User directory로 사용

사용자 생성, 삭제, 정보 수정이 모두 Profiles Database에서 이루어 지고, 인증과 그룹권한정보 요청만 LDAP에서 처리됩니다.

이 경우 LDAP은 기본적인 사용자정보(:이름,email)만 관리하고, 추가적인 사용자 정보는 Profiles Database에서 관리합니다.

※ IC는 기본적으로 Profiles Database User Directory로 사용합니다.

 

- LDAP Directory에 사용자 계정 생성/삭제/기본정보 수정은 별도로 처리합니다. (계정DB와 연동 또는 수동관리)

- Profiles 관리 명령어(sync_all_dns 명령어) LDAP-->Profiles Database로 계정 생성/삭제 처리를 합니다. 기본정보가 동기화됩니다.

LDAP->Profiles Database 동기화을 참조하세요

 

- Profiles에만 있는 추가 속성을 정의합니다.(:취미, 전공)

Profiles 에 추가 속성 정의하기을 참고하세요

 

- Profiles Administration API를 이용하여 Profiles Database의 사용자 정보 변경을 합니다.

- Profiles Directory Service Extensions를 이용하여 Profiles Database에서 각 IC어플리케이션 user table로 사용자 정보 전파

- Profiles Database에서 수정하고 반대로 LDAP에 반영할 필요가 있는 속성(:휴대폰번호)인 경우 별도 정의하여 처리. Profiles Database->LDAP Directory 사용자정보 동기화를 참고하세요

 

Case 2) LDAP user directory로 사용

사용자 생성/삭제/정보수정 등 모든 관리를 LDAP에서 수행합니다. 사용자 인증, 그룹권한질의, 정보질의 등은 모두 LDAP으로 요청됩니다. 따라서 Profiles Database에 사용자정보를 관리할 필요가 없고, Profiles Directory Service Extensions로 각 IC앱의 user table로 사용자정보를 전파할 필요도 없습니다.

그러나, Profiles앱 서비스를 위해 LDAP의 사용자정보가 Profiles Database로 동기화는 되어야 합니다.

- LDAP Directory에서 사용자 관리를 수행 (사용자DB와 연동 또는 수동관리)

- Profiles 관리 명령어(sync_all_dns 명령어) LDAP-->Profiles Database로 사용자 정보 동기화. LDAP->Profiles Database 동기화을 참조하세요

- Profiles앱 이외의 IC앱에서 인증, 그룹권한질의, 사용자정보 질의는 모두 LDAP으로 요청합니다.

- Profiles Database에서 수정하고 반대로 LDAP에 반영할 필요가 있는 속성(:휴대폰번호)인 경우 별도 정의하여 처리Profiles Database->LDAP Directory 사용자정보 동기화를 참고하세요.

 

User directory 무엇을 사용할지는 상황에 따라 결정해야 합니다.

 

아래는 사용자관리를 위한 각종 작업의 세부 방법입니다.

 

3.1 LDAP Profiles Database간의 필드 매핑

LDAP의 각 entry의 정보를 Profiles Database와 동기화하기 위해서는 가장 먼저 필드 매핑을 하여야 합니다. 이 작업은 제품 설치시에 수행합니다.

map_dbrepos_from_source.properties파일에 정의합니다.

 

원본은 여기를 참조하십시오.

 

1) TDI 설치된 서버를 telnet으로 연결합니다.

2) TDI솔루션을 생성할 적절한 디렉토리를 생성합니다.(: mkdir /tds)

3) IC 설치된 디렉토리 하위에 TDISOL디렉토리를 찾아서 그안에 있는 tdisol압축파일(tdisol.tar) /tdisol 복사합니다.

4) /tdisol디렉토리의 압축파일을 extract합니다. 하위에 TDI디렉토리가 생성될것입니다.(:/tdisol/TDI).  디렉토리가 TDI solution directory 됩니다.

- AIX 경우 기본 tar압축 프로그램을 사용하면 profile-links.xsd profiles-link.xs.으로 변경되는 버그가 있습니다.

- GNU Tar v1.14이상을 설치하여 압축을 해제합니다. 다운로드

 

5) /tdisol/TDI밑에서 서버 OS 맞는 디렉토리를 TDI 설치된 디렉토리(/opt/IBM/TDI/V7.1)하위의 jvm/jre/lib/ext디렉토리로 이동합니다. 그리고 디렉토리명을 TDI 변경합니다

6) TDI solution directory에서 tdienv.sh(or tdienv.bat)파일을 에디터로 오픈합니다. TDIPATH 정의합니다.


- AIX/Linux

export TDIPATH=/opt/IBM/TDI/V7.1

 

- Window

SET TDIPATH=C:\Program Files\IBM\TDI\V7.1




7) TDI solution directory(/tdisol/TDI)에 있는 'map_dbrepos_from_source.properties'파일을 에디터로 오픈하여 필드매핑을 합니다. 

- 1:1 매핑 : ) bldgId=buildingname 참조

- complex 매핑 : LDAP 필드값이 Profiles Database 필드에 나누거나 합쳐저서 들어가는것과 같이 가공이 필요한 경우 처리함수를 만들고, 함수명으로 매핑

여기 참조하십시오. 처리함수는 'TDISolution\TDI\profiles_functions.js' 정의합니다.


예를 들어 아래와 같이 정의 했다면 ..

xxx=LDAPbldgId

bldgId={func_map_to_db_bldgId}

 

profiles_funcsions.js에는 처리함수가 정의되어 있어야 합니다.

 

function func_map_to_db_bldgId( propertyName) {

        var result = "BLDG_"+work.getString("LDAPbldgId");

        return result;

}

※ xxx=LDAPbldgId 라인은 함수내에서 그 필드값을 구하기 위해 정의

 함수명은 "func_"로 시작할것을 권고



- TDI LDAP간의 필드매핑표는 여기 "Table 2. Default values for properties in the map_dbrepos_from_source.properties file" 참조하십시오.

- 정의하지 않거나 null로 남긴 필드는 동기화되지 않습니다.

- uid, guid, dn, surname, and displayName 필드는 반드시 매핑하여야 합니다.

- guid는 사용자를 구별하는 unique한 내부필드이며, LDAP 제품에 따라 아래와 같이 정의하십시오. (-profiles_funcsions.js에 함수를 정의할 필요는 없는것 같으나 확인은 필요합니다.)



Microsoft Active Directory

guid={function_map_from_objectGUID}

 

You must use a JavaScript function to define the value for Active Directory because objectGUID is stored in Active Directory as a binary value, but is mapped to guid, which is stored as a string in the Profiles database. Also, the samAccountName property used by Active Directory has a 20 character limit, as opposed to the 256 character limit of the other IDs used by IBM Connections.

 

IBM Lotus® Domino®

guid={function_map_from_dominoUNID}

 

IBM Directory Server

guid=ibm-entryUuid

 

Sun Java™ System Directory Server

guid=nsUniqueID

 

Novelle Directory

guid={function_map_from_GUID}



 

- uid Profiles에서 사용자를 구별하는 유일한 값으로 매우 중요합니다.         

  . ActiveDirectory를 사용할 때는 "uid"대신에 "AMAccountName "으로 매핑하십시오.

  . LDAP dn값이 uid=<uid>형식으로 되어 있는 경우(:uid=bmarshal,ou=People,dc=pisoftware,dc=com)에는 uid={func_map_to_db_UID} 매핑하십시오.

 

- isManager는 각 사용자가 매니저인지 여부이며 'Y' or 'N'으로 지정합니다. managerUid는 각 사용자의 매니저 uid이며 $manager_uid로 지정합니다. LDAP manager정보가 uid를 포함하는 DN형식이므로 여기서 uid만 추출하기 위해 $manager_uid로 매핑하는것입니다. 이 두 속성값은 reports-to chain을 표현할 때 필수정보로 사용됩니다.

- loginId 속성은 로그인 시 사용할 id를 정의하는것입니다.

 

8) Profiles 추가필드 정의:TDI 필드에 없지만 Profiles Database에 필요한 추가 필드를 정의합니다.

- tdi-profile-config.xml 파일을 오픈합니다. 이 파일은 TDI/conf/LotusConnections-config 디렉토리에 있습니다.

- simpleAttribute라는 속성을 추가하고 extensionId sourceKey에 값을 정의합니다. extensionId값은 Profiles Database의 추가 필드명이고, sourceKey값은 LDAP의 속성명입니다.


) Profiles Database의 추가필드인 spokenLangs를 정의하고 그 값은 LDAP spokenLang필드에서 가져옮

<simpleAttribute extensionId="spokenLangs"

    sourceKey="spokenLang"/>

- 사용자 UI에 추가필드를 표시하려면 profiles-config.xml 파일에도 추가필드를 동일한 이름으로 정의하여야 합니다또한 LotusConnections-config.xml에도 작업이 필요합니다.

profiles-config.xml 정의예)

<profileExtensionAttributes>

  <simpleAttribute

      extensionId=”spokenLangs” length=”10”/>

</profilesExtensionAttributes>


 profiles-config.xml 정의 방법은 여기를 참조하시고, LotusConnections-config.xml에서의 작업은 여기를 참조하세요. 이 작업은 Customization에 대한 설명 자료에서 보다 자세히 다룹니다.

 

9) tdi-profiles-config.xml 파일을 저장합니다.

10) 필요한 경우 추가필드에 대해 필드매핑을 합니다.

- map_dbrepos_from_source.properties 에 아래와 같이 extattr.<추가필드>={처리함수} 포맷으로 정의 합니다.

extattr.spokenLangs={func_map_to_langs}

- 처리함수는 TDISolution\TDI\profiles_functions.js' 정의


반응형