Sun JavaTM System Calendar Server 6.3(Calendar Server)은 기업 및 서비스 공급자를 위해 중앙 집중식 달력 및 예약 기능을 제공하는 확장 가능한 웹 기반 솔루션입니다. Calendar Server는 이벤트와 작업을 모두 관리하는 개인 및 그룹 달력 기능뿐 아니라 회의실, 장비 등의 자원을 관리하는 달력 기능도 지원합니다.
기본 구성 시나리오에 대한 자세한 내용은 Sun Java Communications Suite 5 Deployment Planning Guide를 참조하십시오.
이 장은 다음 내용으로 구성되어 있습니다.
이번 장과 다음 장에서 지정되는 정규화된 디렉토리 경로는 Solaris 플랫폼에서의 경로입니다. Solaris에서의 기본 경로는 다음과 같습니다.
/opt/SUNWics5/cal
/var/opt/SUNWics5
/etc/opt/SUNWics5
Linux®에서의 기본 경로는 다음과 같습니다.
/opt/sun/calendar
/var/opt/sun/
/etc/opt/sun
Linux 사용자는 Solaris 기본값을 표시하는 명령 중 기본 경로를 대체해야 합니다.
Calendar Server 6.3 설치 방법이 이전 Calendar Server 릴리스에 비해 현저히 변경되었습니다. Calendar Server 6.3 소프트웨어를 설치하려면 Communications Suite 설치 프로그램을 사용해야 합니다. Java Enterprise System 설치 프로그램을 사용하지 마십시오. 단, 다른 서버 제품을 설치하는 경우에는 Java Enterprise System 설치 프로그램을 사용해야 할 수도 있습니다.
Calendar Server 6.3 설치에 대한 자세한 내용은 Sun Java Communications Suite 5 Installation Guide를 참조하십시오.
이전 버전의 Calendar Server에서 업그레이드하는 경우 Sun Java Communications Suite 5 Upgrade Guide에 업그레이드 절차가 설명되어 있습니다.
이전 버전의 Calendar Server에서 버전 6.3으로 달력 데이터베이스 및 LDAP 데이터베이스를 마이그레이션하는 방법은 3 장, Calendar Server 6.3용 데이터베이스 마이그레이션 유틸리티을 참조하십시오.
Calendar Server를 설치하고 나면 구성을 수행해야 합니다. 설치 프로그램은 설치 프로세스의 일부로 구성을 수행하지는 않습니다.
Directory Server 설치 스크립트 comm_dssetup.pl을 실행하여 Sun Java System Directory Server 5를 구성합니다(스크립트가 아직 실행되지 않은 경우).
이 스크립트는 다음 디렉토리에 있습니다. /opt/SUNWcomds/sbin.
스크립트 실행에 대한 자세한 내용은 Sun Java Communications Suite 5 Installation Guide를 참조하십시오.
Calendar Server 구성 프로그램(csconfigurator.sh)을 실행하여 사이트 특정 요구 사항을 구성하고 새 ics.conf 구성 파일을 만듭니다.
ics.conf 파일에 포함된 매개 변수에 대한 설명을 보려면 부록 E, Calendar Server 구성 매개 변수를 참조하십시오.
구성 프로그램은 다음 디렉토리에 있습니다. /opt/SUNWics5/sbin
csconfigurator.sh 실행에 대한 자세한 내용은 2 장, Calendar Server 6.3 소프트웨어의 초기 런타임 구성 프로그램(csconfigurator.sh)을 참조하십시오.
ics.conf 파일의 매개 변수를 편집하여 시스템을 사용자 정의합니다.
제3부, Calendar Server 구성 사용자 정의의 해당 장에서는 ics.conf 파일을 편집하여 시스템을 사용자 정의하는 방법에 대해 설명합니다.
ics.conf에는 다른 값을 가진 중복된 매개 변수가 포함될 수 있습니다. 시스템은 파일을 순서대로 읽고 순서대로 시스템 설정을 업데이트합니다. 따라서 이 방법에서는 이 매개 변수에 대해 마지막으로 발견된 값을 사용하게 됩니다.
가장 좋은 방법은 설정된 값을 확인하기 쉽도록 모든 ics.conf 설정을 파일 끝에 추가하는 것입니다. 이 경우 효율성 향상을 위해 매개 변수의 이전 항목은 주석 처리하십시오. 이렇게 하면 시스템이 읽는 매개 변수가 줄어들어 파일을 더 빠르게 처리할 수 있습니다.
Calendar Server 특별 계정에는 다음이 포함됩니다.
Calendar Server 관리자는 Calendar Server를 관리할 수 있는 특정 사용자 아이디로 해당 비밀번호를 가지고 있습니다. 예를 들어, Calendar Server 관리자는 Calendar Server 서비스 시작/중지, 사용자 추가/삭제, 달력 작성/삭제 등의 작업을 수행할 수 있습니다. 이 사용자는 Calendar Server에 대해 관리자 권한을 갖지만 Directory Server에 대한 관리자 권한을 반드시 갖지는 않습니다.
Calendar Server 관리자의 기존 사용자 아이디는 calmaster이지만 원한다면 Calendar Server 구성 중에 다른 사용자를 지정할 수 있습니다. 설치 후에 ics.conf 파일의 service.siteadmin.userid 매개 변수에서 다른 사용자를 지정할 수도 있습니다.
Calendar Server 관리자에게 지정하는 사용자 아이디는 Directory Server에서 유효한 사용자 계정이어야 합니다. 구성 과정에서 Calendar Server 관리자 계정이 Directory Server에 없으면 구성 프로그램이 직접 해당 계정을 만듭니다.
다음 표에서는 ics.conf 파일의 Calendar Server 관리자 구성 매개 변수를 설명합니다.
표 1–1 Calendar Server 관리자(calmaster) 구성 매개 변수
이 특수 계정은 Calendar Server에서 실행되는 사용자 아이디 및 그룹 아이디입니다. 특별히 재정의할 다른 이유가 없으면 기본값인 icsuser와 icsgroup을 사용하며, 이 값이 없는 경우 구성 프로그램에서 자동으로 만듭니다.
하지만 Calendar Server 구성 프로그램을 실행할 때 icsuser와 icsgroup이 아닌 다른 값으로 지정할 수도 있습니다. 이러한 값은 ics.conf 파일의 local.serveruid 및 local.servergid 매개 변수에 각각 저장됩니다.
수퍼유저(root)로 로그인하거나 수퍼유저가 되어야 Calendar Server를 설치할 수 있습니다. 또한 수퍼유저는 명령줄 유틸리티를 사용하여 Calendar Server를 관리할 수 있습니 다. 하지만 일부 작업에서는 Calendar Server 파일의 액세스 문제를 방지하기 위해 수퍼유저 대신 icsuser 및 icsgroup(또는 사용자가 선택한 값)이 되어야 합니다.
Calendar Server를 설치하려면 root 권한이 필요하지만 루트가 아닌 사용자로도 서비스를 실행할 수 있습니다.
하지만 root로 서비스를 시작하는 경우 root 권한이 필요한 작업이 실행된 후 각 프로세스에서 유효한 UID를 루트가 아닌 런타임 사용자 및 그룹으로 변경합니다. 이렇게 하여 루트가 아닌 런타임 사용자 및 그룹으로 서비스를 시작할 때 1024 아래의 포트를 사용할 수 있습니다. 서비스를 성공적으로 시작하려면 웹 서버 포트가 1024보다 큰 값으로 설정되어야 합니다.
루트가 아닌 사용자 또는 그룹은 구성 시 자동으로 생성됩니다. 기본값은 icsuser 및 icsgroup입니다.
관리자가 사용자 달력을 관리할 수 있도록 하려면 ics.conf 파일의 매개 변수를기본값 service.http.allowadminproxy="yes"로 설정해야 합니다.
Communications Express를 사용하는 경우 이 매개 변수가 "yes"로 설정되어야 합니다.
이 매개 변수에 대한 정보 및 프록시 로그인 작동 여부를 확인하는 방법에 대한 자세한 내용은 4.5 로그인 및 인증 구성을 참조하십시오.
최종 사용자는 웹 그래픽 사용자 인터페이스(GUI), Sun Java System Communications Express 또는 Connector for Microsoft Outlook을 사용하여 클라이언트 시스템에서 Calendar Server에 연결할 수 있습니다. 이를 통해 최종 사용자는 Calendar Server의 장점을 백엔드로 활용하는 동시에 데스크탑에서 Outlook을 계속 사용할 수 있습니다. 사용자는 LDAP 디렉토리에 고유한 항목이 있어야 합니다. 각 사용자는 하나 이상의 달력을 가지며 하나 이상의 그룹에 속할 수 있습니다.
적절한 권한이 있는 관리자는 Delegated Administrator 유틸리티(명령줄) 또는 콘솔(GUI)을 사용하여 사용자 LDAP 항목 또는 자원 LDAP 항목을 추가, 삭제 또는 수정할 수 있습니다.
Delegated Administrator 유틸리티(commadmin)에 대한 자세한 내용은 Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide를 참조하십시오.
Delegated Administrator 콘솔에 대한 자세한 내용은 콘솔 온라인 도움말을 참조하십시오.
또한 필요한 경우 ldapmodify를 사용하여 LDAP 항목을 직접 수정할 수 있습니다. ldapmodify에 대한 자세한 내용은 Sun ONE Directory Server Resource Kit 5.2 Tools Reference를 참조하십시오.
Java Enterprise System 배포 이전에 사용되던 csuser와 같은 유틸리티 프로그램은 여전히 Calendar Server와 함께 번들로 제공됩니다. 배포에서 Access Manager를 사용하는 경우에는 사용자, 도메인 또는 자원의 관리나 생성에 이 유틸리티를 사용하지 마십시오. 몇 가지 예외가 있습니다. 이 설명서에서는 그러한 예외가 적용되는 경우에 알맞은 유틸리티를 소개합니다.
이 절에서는 사용자와 사용자 달력 관리에 대해 다음 내용으로 구성되어 있습니다.
다음 사용자 관리 도구 중 하나를 사용하여 달력 사용자, 그룹 및 자원을 관리할 수 있습니다.
Delegated Administrator 콘솔.
이 GUI를 사용하여 Calendar Server에 대한 LDAP의 사용자, 그룹 및 자원을 제공합니다. GUI 사용에 대한 자세한 내용은 Delegated Administrator 콘솔 온라인 도움말을 참조하십시오.
Delegated Administrator 유틸리티(commadmin).
이러한 도구를 사용하여 Calendar Server에 대한 LDAP의 사용자, 그룹 및 자원을 제공합니다. 자세한 내용은 Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide를 참조하십시오.
Calendar Server 유틸리티.
이 유틸리티를 사용하여 달력을 관리합니다. 또한 구성이 다음 기준을 모두 충족하면 사용자, 그룹 및 자원 관리에 이 유틸리티를 사용합니다.
Access Manager를 사용하지 않습니다.
Sun LDAP Schema 버전 1을 사용하는 이전 버전의 Calendar Server 또는 Messaging Server가 설치되어 있습니다.
Schema 버전 1을 계속 사용할 계획입니다.
이 설명서의 부록 D, Calendar Server 명령줄 유틸리티 참조 에서 명령줄 유틸리티 참조를 참조하십시오.
Delegated Administrator는 달력을 관리하지 않습니다. 사용자, 그룹 및 자원에 대한 달력을 만들려면 Calendar Server 유틸리티 cscal 및 csresource를 사용하거나 자동 제공 기능을 설정합니다. 자동 제공 기능을 설정하면 시스템이 사용자가 기본 달력 없이 로그인한 경우, 기본 달력이 없는 상태에서 사용자, 그룹 또는 자원이 초대된 경우에 기본 달력을 만듭니다.
다음 도구를 사용하여 LDAP에서 사용자를 만들 수 있습니다.
Schema 버전 1의 경우, Calendar Server csuser 유틸리티를 사용하여 사용자 및 달력을 동시에 만듭니다.
Schema 버전 2의 경우, Delegated Administrator 콘솔에서 새 사용자 만들기 마법사를 사용하여 사용자를 만듭니다. 그런 다음 Calendar Server 유틸리티 cscal을 사용하여 사용자 기본 달력을 만듭니다. 부록 D, Calendar Server 명령줄 유틸리티 참조 를 참조하십시오.
Schema 버전 2의 경우 Delegated Administrator 유틸리티 commadmin user create를 사용합니다. 그런 다음 Calendar Server 유틸리티 cscal을 사용합니다.
사용자 추가에 대한 자세한 내용은 14.1 달력 사용자 LDAP 항목 만들기를 참조하십시오.
Delegated Administrator 유틸리티 사용에 대한 자세한 내용은 Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide를 참조하십시오.
Calendar Server에서는 Sun Java System Directory Server와 같은 LDAP 디렉토리 서버가 사용자를 인증하고 사용자 기본 설정을 저장해야 합니다.
Calendar Server를 사용하면 사용자가 Directory Server에 저장되는 사용자 기본 설정 속성을 설정하여 달력 데이터 보기를 사용자 정의할 수 있습니다. Calendar Server 구성 매개 변수에 반대되는 사용자 기본 설정은 달력 데이터의 사용자 인터페이스 표현을 참조하며, 사용자 아이디, 전자 메일 주소 그리고 달력 보기 생성 시 사용할 기본 색상과 같은 항목을 포함합니다.
기본 설정 목록은 Sun Java System Calendar Server 6.3 WCAP Developer’s Guide의 get_userprefs 및 set_userprefs WCAP 명령을 참조하십시오.
그룹은 이름이 지정된 사용자 모음입니다. 각 그룹에는 사용자 또는 자원 항목과 유사한 LDAP 항목이 포함됩니다. 달력 및 메시징과 같은 모든 서비스에 같은 그룹 항목을 사용할 수 있습니다.
Calendar Server LDAP 그룹에 대해 알아두어야 할 몇 가지 사항이 있습니다.
Calendar Server 그룹은 정적 또는 동적일 수 있습니다.
달력 서비스가 있는 그룹에는 자체 고유한 기본 달력을 포함할 수 있습니다.
Calendar Server 그룹은 개인, 자원 및 기타 그룹(중첩됨)으로 구성될 수 있습니다.
그룹 달력에 대한 자세한 내용은 1.5.7 Calendar Server 버전 6.3의 그룹 달력 개요 절을 참조하십시오.
달력 데이터베이스는 ics.conf 파일에서 local.autoprovision="yes"를 설정하여 자동으로 생성할 수 있습니다. 또한 도메인에서 달력을 활성화(달력 서비스 포함)할 수 있습니다. 따라서 도메인 LDAP 항목에 icsCalendar 객체 클래스가 포함되어야 합니다.
다음 두 가지 방법으로 기본 달력을 자동으로 생성할 수 있습니다.
사용자가 처음으로 로그인하는 경우 사용자의 LDAP 항목이 있으면 시스템에서 달력 서비스에 대해 이를 활성화하고 기본 달력을 만듭니다.
기본 달력이 생성되기 전에 LDAP 사용자, 그룹 또는 자원이 이벤트에 초대된 경우 시스템에서 해당 엔티티에 대한 기본 달력을 만듭니다.
예를 들어 tchang가 Directory Server에 존재하지만 아직 달력을 사용할 수 없다고 가정합니다(즉, 기본 달력 없음). 자동 제공을 설정하여 도메인 달력을 사용 가능하도록 설정합니다.
tchang가 처음으로 Calendar Server에 로그인한 경우 tchang가 달력 서비스를 사용할 수 있도록 자동 설정되고 calid tchang@hisdomain.com으로 기본 달력이 만들어집니다.
또는 기본 달력이 생성되기 전에 누군가가 tchang를 이벤트에 초대한 경우 ics.conf 파일에 user.invite.autprovision="yes"로 설정되어 있으면 기본 달력이 자동으로 만들어집니다.
그룹이 초대된 경우 ics.conf 매개 변수가 groupAutoprovisioning="yes" 로 설정되어 있으면 기본 그룹 달력이 만들어집니다.
마찬가지로 자원이 초대된 경우 ics.conf 매개 변수가resource.invite.autoprovision="yes"로 설정되어 있으면 기본 그룹 달력이 만들어집니다.
사용자, 자원 및 그룹에 필요한 구성 파일 매개 변수에 대한 자세한 내용은 4.3 LDAP 사용자, 그룹 및 자원 달력 구성 을 참조하십시오.
모든 달력 지원 LDAP그룹에 대해 그룹 달력을 만들 수 있습니다. 이 달력은 개인 달력처럼 예약할 수 있습니다. 그룹으로 전송된 초대는 그룹 달력과 모든 개인 달력에서 예약됩니다. 이벤트에 초대된 시점에 아직 그룹 달력이 없고 자동 제공이 설정되어 있는 경우 기본 등록 정보 집합 및 ACL을 사용하여 달력이 만들어집니다.
다음은 그룹 달력에 대해 알아두어야 할 몇 사항입니다.
그룹 달력에 로그인하는 사용자는 없기 때문에 그룹 달력에는 개인 달력과 같은 사용자 인터페이스 기본 설정이 없습니다.
개인이 그룹 달력을 보려면 해당 그룹 달력에 가입해야 합니다.
그룹의 소유자가 적절한 ACL을 설정해야 합니다.
그룹 달력에 대한 약속 있음/없음 정보 가져오기는 개인 달력이 아닌 그룹 달력에 대한 정보만 생성합니다.
그룹 달력 ACL에서 이벤트 주최자에 의한 초대를 허용하지 않는 경우 오류가 발생합니다. 이 경우 그룹 구성원이 초대되지 않습니다.
주최자는 그룹 달력 아이디나 메일 주소를 사용하여 그룹을 초대할 수 있습니다.
Calendar Server 사용자에 대한 자세한 내용은 14 장, 사용자, 그룹 및 자원 관리을 참조하십시오.
회의실 또는 프로젝터처럼 달력을 사용하여 예약할 수 있는 모든 것이 자원입니다. 품목마다 자원 LDAP 항목이 별도로 존재합니다. 알맞은 도구를 사용하여 LDAP 항목 및 해당 달력을 만듭니다.
Schema 버전 2 - Delegated Administrator를 사용하여 자원 LDAP 항목을 만들고 Calendar Server 유틸리티 resource를 사용하여 달력을 만듭니다.
Schema 버전 1 - csresource create 명령을 사용하여 자원 LDAP 항목과 달력을 모두 만듭니다.
명시적으로 자원 달력을 만들 필요는 없습니다. 자동 제공이 설정되어 있으면 처음 자원을 초대할 때 해당 자원에 대한 자원 달력이 자동으로 만들어집니다. 사용자 및 그룹에 대해서도 마찬가지입니다.
이 절에서는 Calendar Server 데이터에 대한 다음 정보에 대해 설명합니다.
Calendar Server 데이터 형식은 RFC 2445, iCalendar(Internet Calendaring and Scheduling Core Object Specification)에 따라 모델링됩니다.
Calendar Server는 다음 형식을 지원합니다.
XML(.xml) — Communications Express에 대한 인터페이스
iCalendar(.ical) — 기본 형식
iCalendar(.ical) 또는 XML(.xml) 형식으로 달력 데이터를 가져오고 내보낼 수 있습니다. Calendar Server 관리자는 Calendar Server csimport 및 csexport 유틸리티를 사용하여 달력 데이터를 가져오고 내보낼 수 있습니다. 최종 사용자는 Communications Express 사용자 인터페이스를 사용하여 달력 데이터를 가져오고 내보낼 수 있습니다.
전자 메일 메시지와 웹 페이지에 링크를 포함하여 달력을 참조할 수 있습니다. 사용자는 달력이 읽기 액세스를 허용하는 한, Calendar Server에 로그인할 필요 없이 해당 링크를 눌러 달력을 볼 수 있습니다. 예를 들어, 다음 링크는 Auditorium이라는 장소 자원을 지정합니다.
http://calendar.sesta.com:8080/uwc/?calid=Auditorium
달력을 연결하는 방법에 대한 자세한 내용은 15.8 달력 링크 만들기를 참조하십시오.
Calendar Server는 수신자 목록에 전송할 수 있는 서버측 전자 메일 경보를 지원합니다. 전자 메일 메시지의 형식은 구성 가능하며 사용자나 달력 속성이 아닌 서버 속성으로 관리됩니다.
Calendar Server는 이벤트에 대한 ITIP 메소드 PUBLISH, REQUEST, REPLY 및 CANCEL을 포함한 ITIP/IMIP 표준(RFC 2446 및 RFC 2447)을 지원합니다.
LDAP 데이터 캐시 옵션은 LDAP 디렉토리 서버가 완결된 데이터의 가용성이 지연되도록 구성된 경우에도 완결 즉시 LDAP 데이터를 사용할 수 있도록 합니다.
예를 들어, 사이트에서 마스터/슬레이브 LDAP 구성을 배포하여 Calendar Server가 슬레이브 LDAP 디렉토리 서버를 통해 마스터 LDAP 디렉토리에 액세스하고 이로 인해 완결된 LDAP 데이터의 가용성이 지연될 경우 LDAP 데이터 캐시를 사용하면 Calendar Server 클라이언트에 정확한 LDAP 데이터를 제공할 수 있습니다.
이 절은 다음 내용으로 구성되어 있습니다.
다음 지침을 사용하여 사이트에 LDAP 데이터 캐시를 구성해야 할 것인지 여부를 결정합니다.
사용자 사이트에서 Calendar Server가 완결된 LDAP 데이터의 가용성이 지연되지 않고 마스터 또는 루트 LDAP 디렉토리 서버에 직접 액세스할 경우에는 LDAP 데이터 캐시를 구성할 필요가 없습니다. local.ldap.cache.enable 매개 변수가 "no"(기본값)로 설정되어 있는지 확인합니다.
Calendar Server가 슬레이브 LDAP 디렉토리 서버를 통해 마스터 LDAP 디렉토리에 액세스하는 1.7.2 Calendar Server 버전 6.3의 마스터/슬레이브 LDAP 구성을 배포한 경우 완결된 LDAP 데이터의 가용성이 지연됩니다. 최종 사용자가 가장 최신 데이터를 얻을 수 있도록 LDAP 데이터 캐시를 구성합니다.
마스터/슬레이브 LDAP 구성에는 하나의 마스터(루트) 디렉토리 서버와 하나 이상의 슬레이브(소비자 또는 복제) 디렉토리 서버가 포함됩니다. Calendar Server는 직접 또는 슬레이브 디렉토리 서버를 통해 마스터 LDAP 디렉토리 서버에 액세스할 수 있습니다.
Calendar Server가 마스터 LDAP 디렉토리 서버에 직접 액세스하는 경우에는 LDAP 디렉토리 서버가 정확해야 하며 LDAP 데이터 캐시를 구성할 필요가 없습니다.
Calendar Server가 슬레이브 디렉토리 서버를 통해 마스터 LDAP 디렉토리 서버에 액세스하는 경우에는 LDAP 데이터 변경 내용이 일반적으로 LDAP 참조를 통해 마스터 디렉토리 서버에 투명하게 기록됩니다. 그런 후 LDAP 참조는 각 슬레이브 디렉토리 서버에 데이터를 복제합니다.
이러한 두 번째 유형의 구성에서는 슬레이브 디렉토리 서버에 완결된 LDAP 데이터의 가용성이 지연되기 때문에 정확하지 않은 LDAP 데이터에 문제가 발생할 수 있습니다.
예를 들어, Calendar Server는 LDAP 데이터 변경을 완결하지만 각 슬레이브 디렉토리 서버를 업데이트하는 마스터 디렉토리 서버의 지연 때문에 일정 시간 동안 새 데이터를 사용할 수 없습니다. 이후의 Calendar Server 클라이언트 작업에서는 이전 LDAP 데이터를 사용하고 이전 보기를 표시합니다.
슬레이브 디렉토리 서버 업데이트 시 지연이 짧은 단 몇 초에 불과한 경우에는 클라이언트에서 문제가 발생하지 않을 수 있습니다. 그러나 지연 시간이 몇 분 또는 몇 시간으로 길어진다면 클라이언트에서는 지연되는 시간 동안 부정확한 LDAP 데이터를 표시하게 됩니다.
다음 표에서는 이러한 지연으로 인해 영향을 받는 작업 및 LDAP 속성을 보여 줍니다.
작업 |
LDAP 속성 |
---|---|
달력 자동 제공 |
icsCalendar, icsSubscribed, icsCalendarOwned, icsDWPHost |
달력 그룹 |
icsStatus, icsCalendar |
달력 만들기 |
icsCalendarOwned, icsSubscribed |
달력 가입 |
icsSubscribed |
사용자 옵션 |
icsExtendedUserPrefs, icsFirstDay, icsTimeZone, icsFreeBusy |
달력 검색 |
icsCalendarOwned |
LDAP 데이터 캐시는 마스터 디렉토리 서버가 각 슬레이브 디렉토리 서버를 업데이트하지 않았을 때에도 Calendar Server 클라이언트에 최신 LDAP 데이터를 제공하여 마스터/슬레이브 LDAP 구성 문제를 해결합니다.
LDAP 데이터 캐시가 활성화된 경우 Calendar Server는 완결된 LDAP 데이터를 캐시 데이터베이스(ldapcache.db 파일)에 기록합니다. 기본적으로 LDAP 캐시 데이터베이스는 ldap_cache 데이터베이스 디렉토리에 있지만 필요할 경우 다른 위치를 구성할 수 있습니다.
클라이언트가 단일 사용자의 LDAP 데이터를 변경하면 Calendar Server는 개정된 데이터를 LDAP 캐시 데이터베이스와 슬레이브 디렉토리 서버에 기록합니다. 이후의 클라이언트 작업에서는 캐시 데이터베이스에서 LDAP 데이터를 검색합니다.
이러한 데이터 검색은 단일 사용자에 대한 다음 작업에 적용됩니다.
로그인 시 사용자의 속성
사용자 옵션(색 구성표 또는 표준 시간대)
사용자의 달력 그룹
사용자의 가입한 달력 목록
따라서 LDAP 데이터 캐시 데이터베이스는 다음을 제공합니다.
단일 시스템 상의 프로세스 간 데이터 일관성. 데이터베이스는 다중 프로세서 시스템의 모든 Calendar Server 프로세스에서 사용할 수 있습니다.
사용자 세션 간의 데이터 지속성. 데이터베이스는 영구적이며 새로 고칠 필요가 없습니다.
LDAP 데이터 캐시는 다음을 제공하지 않습니다.
항목의 목록이 예상되는 검색을 위한 캐시 읽기. 예를 들면 회의 참석자 검색 등이 이에 속합니다. 이러한 유형의 검색에는 LDAP 지연이 적용됩니다. 예를 들어, 검색 옵션이 활성화되고 새 달력을 만든 후 지연 기간 내에 검색을 수행하면 새로 만든 달력은 달력 검색에 나타나지 않습니다.
복수의 프런트엔드 서버에 대한 캐시 읽기 및 쓰기. 각 프런트엔드 서버에 있는 자체 캐시에서는 다른 캐시의 데이터를 인식하지 못합니다.
항상 같은 서버에 로그인하지 않는 사용자를 처리하는 능력. 이러한 사용자는 각 서버의 캐시에 각각 다른 LDAP 데이터를 생성합니다.
Calendar Server에서는 액세스 제어 목록(ACL)을 사용하여 달력, 달력 등록 정보 그리고 이벤트, 수행할 작업과 같은 달력 구성 요소의 액세스 제어를 결정합니다.
이 절은 다음 내용으로 구성되어 있습니다.
사용자가 Communications Express를 통해 Calendar Server에 로그인할 때 기본적으로 인증 프로세스에서는 사용자 아이디와 비밀번호를 비롯한 로그인 정보를 암호화하지 않습니다. 사이트에서 보안 로그인을 원할 경우 Calendar Server가 SSL(Secure Sockets Layer) 프로토콜을 사용하여 로그인 데이터를 암호화하도록 구성합니다. 자세한 내용은 7 장, SSL 구성을 참조하십시오.
Calendar Server에서는 달력, 달력 등록 정보 및 달력 구성 요소에 대한 액세스를 결정할때 다음 사용자를 인식합니다.
주 달력 소유자
주 달력 소유자는 소유한 달력에 대해 모든 액세스 권한을 갖습니다. Calendar Server에서는 자신의 달력에 액세스하는 주 소유자에 대해 액세스 제어를 확인하지 않습니다.
관리자 및 수퍼유저
calmaster와 같은 관리자 또는 root와 같은 수퍼유저는 액세스 제어 제한에 적용되지 않으며 달력이나 달력 구성 요소와 관련된 모든 작업을 수행할 수 있습니다. 자세한 내용은 1.3 Calendar Server 버전 6.3의 특별 계정을 참조하십시오.
다른 달력 소유자
주 달력 소유자는 자신의 달력에 대해 다른 소유자를 지정할 수 있습니다. 그러면 다른 소유자는 주 소유자를 대신하여 해당 달력에 대해 이벤트나 수행할 작업을 예약, 삭제, 수정, 적용 또는 거절할 수 있습니다.
익명 사용자
특별 달력 아이디(calid)인 anonymous는 임의의 비밀번호를 사용하여 Calendar Server에 액세스할 수 있습니다. 단, ics.conf 파일에서 service.http.allowanonymouslogin이 yes(기본값)로 설정된 상태여야 합니다. 익명 사용자는 특정 도메인과 연관되지 않습니다. calstore.anonymous.calid 매개 변수를 편집하여 익명 사용자의 calid를 변경할 수 있습니다.
또한 어떤 달력의 사용 권한이 모든 사용자에게 읽기 액세스를 허용한 경우 익명으로 달력을 볼 수 있습니다. 예를 들어, 다음 링크에서 사용자는 calid가 tchang:meetings인 달력을 익명으로 볼 수 있습니다(달력 사용 권한에서 모든 사용자에게 읽기 액세스를 허용한 경우).
http://calendar.sesta.com:8080/?calid=tchang:meetings
익명 사용자는 달력에서 공개 이벤트 및 작업을 확인, 인쇄 및 검색할 수 있지만 다른 작업은 수행할 수 없습니다.
익명으로 자원 달력 보기에 대한 자세한 내용은 15.8 달력 링크 만들기를 참조하십시오.
Calendar Server에서는 액세스 제어 목록(ACL)을 사용하여 달력, 달력 등록 정보 그리고 이벤트, 작업과 같은 달력 구성 요소에 대한 액세스 제어를 확인합니다. ACL은 하나 이상의 액세스 제어 항목(ACE)으로 구성됩니다. ACE는 동일한 달력이나 구성 요소에 집합적으로 적용되는 문자열이며 ACL에서 각 ACE는 세미콜론으로 구분됩니다.
다음 목록은 그 예입니다.
jsmith^c^wd^g는 하나의 ACE로 구성되어 있습니다.
@@o^a^r^g;@@o^c^wdeic^g;@^a^sf^g는 세 개의 ACE로 구성되어 있습니다.
ACE는 각각 캐럿(^)으로 구분되는 다음 요소들로 구성됩니다.
1.8.3.1 Calendar Server 버전 6.3의 Ace 문자열에 대한 Who 요소 - ACE가 적용되는 개인, 사용자, 도메인 또는 사용자 유형
1.8.3.2 Calendar Server 버전 6.3의 Ace 문자열에 대한 What 요소 - 달력 또는 이벤트, 작업과 같은 달력 구성 요소, 달력 등록 정보 등의 액세스 대상
1.8.3.3 Calendar Server 버전 6.3의 Ace 문자열에 대한 How 요소 - 읽기, 쓰기 또는 삭제 등과 같이 허용되는 액세스 제어 권한 유형
1.8.3.4 Calendar Server 버전 6.3의 Ace 문자열에 대한 Grant 요소 - 부여 또는 거부되는 특정 액세스 제어 권한
예를 들어, ACE jsmith^c^wd^g에서
jsmith는 ACE가 누구에서 적용되는지를 나타내는 Who 요소입니다.
c는 액세스 대상(달력 구성 요소만 해당)을 나타내는 What 요소입니다.
wd는 어떤 액세스 권한이 부여 또는 거부되는지(쓰기 및 삭제) 나타내는 How 요소입니다.
g는 해당 달력 구성 요소에 대해 jsmith에게 부여된 액세스 권한, 쓰기 및 삭제를 나타내는 Grant 요소입니다.
Who 요소는 ACE의 기본적인 값이며, ACE가 누구에게 적용되는지를 나타냅니다(예: 개별 사용자, 도메인 또는 특정 사용자 유형).
Who는 UPN(Universal Principal Name)이라고도 부릅니다. 사용자의 UPN은 해당 사용자의 로그인 아이디와 도메인을 결합한 것입니다. 예를 들어, 도메인 sesta.com에 있는 사용자 bill의 UPN은 bill@sesta.com입니다.
표 1–2 액세스 제어 항목(ACE) 문자열의 “Who” 형식
What 요소는 달력, 달력 구성 요소(이벤트나 작업), 달력 등록 정보 등의 액세스 대상을 지정합니다.
표 1–3 액세스 제어 항목(ACE) 문자열의 “What” 값
값 |
설명 |
|
---|---|---|
|
이벤트, 작업과 같은 달력 구성 요소를 지정합니다. |
|
|
이름, 설명, 소유자를 비롯하여 달력 등록 정보를 지정합니다. |
|
|
구성 요소와 등록 정보를 포함하여 달력 전체(all)를 지정합니다. |
How 요소는 읽기, 쓰기 또는 삭제와 같이 허용되는 액세스 제어 권한 유형을 지정합니다.
표 1–4 액세스 제어 항목(ACE) 문자열의 “How” 형식
유형 |
설명 |
---|---|
r |
읽기 액세스 |
w |
새 항목 추가 및 기존 항목 변경을 포함하는 쓰기 액세스 |
d |
삭제 액세스 |
s |
예약(초대) 액세스. 요청을 수행하고 응답을 받아들이며 다른 ITIP 예약 대화형 작업을 적용할 수 있습니다. |
f |
사용 가능/사용 중(가용성) 액세스 전용. 사용 가능/사용 중 액세스란 사용자가 달력의 예약 시간을 조회할 수 있지만 이벤트 세부 정보는 볼 수 없음을 의미합니다. 그 대신 예약된 시간 블록 옆에 “Not Available”이라고만 표시됩니다. 예약된 이벤트가 없는 시간 블록은 그 옆에 “Available”이라고 표시됩니다. |
l |
도메인 액세스를 조회합니다. |
e |
응답 액세스를 대신합니다. 이 유형은 달력의 주 소유자를 대신하여 초대를 받아들이거나 거절할 권한을 사용자에게 부여합니다. 이러한 유형의 액세스는 사용자가 주 소유자가 아닌 소유자로 지정된 경우 포함되므로 명시적으로 부여할 필요가 없습니다. |
i |
초대 액세스를 대신합니다. 이 유형은 달력의 주 소유자를 대신하여 다른 참석자가 초대된 구성 요소를 만들고 수정하는 권한을 사용자에게 부여합니다. 이러한 유형의 액세스는 사용자가 주 소유자가 아닌 소유자로 지정된 경우 포함되므로 명시적으로 부여할 필요가 없습니다. |
c |
취소 액세스를 대신합니다. 이 유형은 사용자가 달력의 주 소유자를 대신하여 참석자가 초대된 구성 요소를 취소할 권한을 사용자에게 부여합니다. 이러한 유형의 액세스는 사용자가 주 소유자가 아닌 소유자로 지정된 경우 포함되므로 명시적으로 부여할 필요가 없습니다. |
z |
자체 관리 액세스 - 인증된 사용자에게 ACE를 추가 또는 제거할 수 있는 권한을 부여합니다. 이 권한을 가진 사용자는 자신의 권한을 추가 및 제거할 수 있습니다. 예를 들어 UserA에는 UserB의 달력에 대해 쓰기 액세스 권한이 아닌 자체 관리 액세스 권한이 부여될 수 있습니다. 그러면 UserA는 스스로 UserB의 달력에 대해 쓰기 액세스 권한을 부여하는 ACE를 추가할 수 있습니다. 주: 이 권한을 통해 UserA가 다른 사용자에게 UserB의 달력에 액세스할 수 있는 권한을 줄 수 없습니다. 예를 들어 자체 관리 권한은 UserA가 UserC에게 UserB의 달력에 액세스할 수 있는 권한을 주도록 허용하지 않습니다. |
Grant 요소는 d(삭제) 또는 r(읽기)과 같은 지정된 액세스 유형에 대해 액세스를 부여할 것인지 또는 거부할 것인지 지정합니다.
표 1–5 액세스 제어 항목(ACE) 문자열의 Grant 값
값 |
설명 |
---|---|
g |
특정 액세스 제어 권한을 부여합니다. |
d |
특정 액세스 제어 권한을 거부합니다. |
다음 예제에서는 ACE 사용 방법을 보여 줍니다.
사용자 아이디 jsmith에게 구성 요소와 등록 정보를 포함하여 달력 전체에 대한 읽기 액세스를 부여합니다.
jsmith^a^r^g
jsmith에게 구성 요소에 대해서만 쓰기 및 삭제 액세스 권한을 부여합니다.
jsmith^c^wd^g
sesta.com 도메인의 모든 사용자에게 구성 요소에 대해서만 예약, 가용성 및 읽기 액세스 권한을 부여합니다.
@sesta.com^c^sfr^g
모든 소유자에게 구성 요소에 대해서만 쓰기 및 삭제 액세스 권한을 부여합니다.
@@o^c^wd^g
jsmith에게 달력 데이터에 대한 모든 액세스 권한을 거부합니다.
jsmith^a^sfdwr^d
모든 소유자에게 구성 요소 및 등록 정보를 포함하여 달력 전체에 대한 읽기, 예약 및 가용성 액세스 권한을 부여합니다.
@@o^a^rsf^g
모든 사용자에게 읽기 액세스를 부여합니다.
@^a^r^g
Calendar Server가 ACL을 읽을 때 표시되는 첫 번째 ACE를 사용하여 대상에 액세스를 부여하거나 거부합니다. 따라서 ACL의 순서가 중요하며, ACE 문자열은 보다 구체적인 항목이 보다 일반적인 항목보다 먼저 오도록 배치해야 합니다.
예를 들어, 달력 jsmith:sports의 ACL에서 최초의 ACE가 모든 사용자에게 읽기 액세스 권한을 부여한다고 가정합니다. 그리고 Calendar Server는 bjones에게 해당 달력에 대한 읽기 액세스 권한을 거부하는 두 번째 ACE를 인식합니다. 이 경우 Calendar Server는 bjones에게 해당 달력에 대한 읽기 액세스를 부여하고 충돌되는 두 번째 ACE는 무시합니다. 따라서 bjones와 같은 특정 사용자에 대한 액세스 권한이 적용되게 하려면 ACL에서 bjones의 ACE는 달력의 모든 사용자에게 적용되는 ACE와 같이 보다 일반적인 전역 항목보다 앞에 배치되어야 합니다.
Sun Java System Calendar Server는 다음 내부 하위 시스템으로 구성되어 있습니다.
다음 그래픽은 이러한 하위 시스템들의 논리적 흐름을 보여 줍니다.
클라이언트는 HTTP 프로토콜 계층을 통해 요청을 제출하여 달력 데이터를 검색합니다. 이는 달력 요청을 지원하기 위해 스트림라인된 최소 HTTP 서버 구현입니다. 이 작업은 WCAP(Web Calendar Access Protocol) 명령을 URL에 추가하여 수행됩니다.
WCAP는 Calendar Server에 대한 인터페이스를 직접 작성할 수 있는 오픈 프로토콜입니다. WCAP 명령(.wcap 확장자)을 사용하면 일부 관리 명령을 제외하고 대부분의 서버 명령을 수행할 수 있습니다. WCAP 명령을 사용하여 HTML에 포함된 XML 또는 iCalendar 형태로 출력을 요청할 수 있습니다.
WCAP 명령에 대한 자세한 내용은 Sun Java System Calendar Server 6.3 WCAP Developer’s Guide를 참조하십시오.
코어 하위 시스템에는 액세스 제어 구성 요소, WCAP 명령 해석 구성 요소 및 달력 데이터베이스 구성 요소에서 들어오는 데이터를 형식화하는 데이터 변환기가 포함됩니다. 코어 하위 시스템은 달력 요청을 처리하고 XML 및 iCalendar 출력을 생성합니다. 또한 사용자 인증도 처리할 수 있습니다.
데이터베이스 하위 시스템은 Sleepycat Software의 Berkeley DB를 사용합니다(데이터베이스 API는 공용이 아님). 데이터베이스 하위 시스템은 이벤트, 수행할 작업, 경보와 같은 달력 데이터를 데이터베이스 시스템에 저장하고 검색합니다. 달력 데이터는 iCalendar 형식을 기반으로 하며 Calendar Server 데이터에 사용되는 스키마는 iCalendar 표준의 수퍼 세트입니다.
데이터베이스 하위 시스템이 저수준 형식의 데이터를 반환하면 코어 UI 생성기가 저수준 데이터를 변환하여 WCAP를 통해 전송합니다.
분산 달력 데이터베이스를 위해 Calendar Server는 분산 와이어 프로토콜(DWP)을 사용하여 네트워킹 기능을 제공합니다. 자세한 내용은 1.10.5 분산 데이터베이스 서비스: Calendar Server 버전 6.3의 csdwpd를 참조하십시오.
달력 데이터베이스에 대한 자세한 내용은 16 장, csdb 유틸리티를 사용하여 Calendar Server 데이터베이스 관리을 참조하십시오.
Calendar Server 서비스는 데몬(또는 프로세스)으로 실행됩니다. 이 서비스는 다음 내용으로 구성되어 있습니다.
1.10.3 Calendar Server 데이터베이스 관리자: Calendar Server 버전 6.3의 csstored
1.10.4 이벤트 알림 서비스(ENS): Calendar Server 버전 6.3의 csnotifyd 및 enpd
csadmind 서비스는 경보 알림 및 그룹 예약 요청을 관리합니다.
Calendar Server가 HTTP를 기본 전송으로 사용하므로 cshttpd 서비스는 들어오는 WCAP 명령에 지정된 형식에 따라 Calendar Server 최종 사용자로부터의 HTTP 명령을 수신하고 사용자 명령을 수신하며 달력 데이터를 반환합니다. 데이터는 표준 RFC 2445 iCalendar 형식(text/calendar) 또는 XML 형식(text/xml)으로 지정할 수 있습니다.
csstored 데몬은 여러 가지 Calendar Server 데이터베이스를 관리합니다. 저장소에 액세스하는 각 서비스는 이 저장소 서비스에 따라 다르므로 Calendar Server가 실행할 때마다 프런트엔드 및 백엔드의 모든 서버에서 실행되어야 합니다.
일반적인 시작 및 종료 명령어인 start-cal 및 stop-cal은 다른 데몬과 함께 csstored를 시작 및 종료합니다. 나머지 데몬과 독립적으로 이 데몬을 중지하지 마십시오.
ics.conf 매개 변수 local.store.enable을 "no"로 설정하여 이 데몬을 사용 불가능하게 하지 마십시오. 기본적으로 이 값은 "yes"로 설정되어 있습니다. 이 값을 그대로 유지하십시오.
ENS 서비스는 이 개별 서비스로 구성됩니다.
csnotifyd — csnotifyd 서비스는 이벤트 및 작업에 대한 알림을 보냅니다. 또한 csnotifyd 서비스는 경보 이벤트에 가입합니다. 경보 이벤트가 발생하면 csnotifyd는 각 수신자에게 SMTP 메시지 알림을 보냅니다.
enpd — enpd 서비스는 이벤트 경보의 브로커 역할을 합니다. enpd 서비스는 csadmind 서비스로부터 경보 알림을 수신하고 이 이벤트로의 가입을 점검한 다음 가입자에게 가입 경보 알림을 전달하는 방식으로 이벤트 가입자에게 알립니다. Calendar Server 시스템의 기본 가입자는 csnotifyd입니다.
enpd 및 csnotifyd 서비스는 cshttpd, csdwpd 또는 csadmind 프로세스와 같은 서버에서 실행될 필요가 없습니다.
csdwpd를 사용하여 분산 달력 저장소를 만들 수 있습니다. 즉 csdwpd를 사용하여 동일한 Calendar Server 구성으로 여러 백엔드 서버에 분산되어 있는 달력 데이터베이스를 관리할 수 있습니다.
csdwpd 서비스는 백엔드 서버에서 백그라운드로 실행되며 DWP(Database Wire Protocol)를 따르는 달력 데이터베이스 액세스 요청을 받아들입니다. DWP는 Calendar Server 데이터베이스에 네트워킹 기능을 제공할 때 사용하는 내부 프로토콜입니다.
Calendar Server에는 다음 API가 있습니다.
Calendar Server는 클라이언트와의 통신을 가능하게 하는 명령 기반의 고급 프로토콜 WCAP 3.0을 지원합니다. 클라이언트는 .wcap 확장자를 사용하는 WCAP 명령을 사용하여 달력 구성 요소, 사용자 기본 설정, 달력 등록 정보 그리고 표준 시간대와 같은 기타 달력 정보를 얻고 수정하며 삭제할 수 있습니다. 시간, 문자열 및 매개 변수와 같은 WCAP 요소는 일반적으로 RFC 2445, RFC 2446 및 RFC 2447 사양을 따릅니다.
WCAP는 다음 형식의 HTTP 메시지로 출력 달력 데이터를 반환합니다.
표준 RFC 2445 iCalendar 형식(text/calendar )
XML 형식(text/xml)
WCAP 명령을 사용할 경우, login.wcap를 사용하여 로그인하는 Calendar Server 관리자는 다음 기능을 수행할 수 있습니다.
WCAP 명령의 액세스 제어 무시
관리자는 WCAP 명령을 사용하여 다른 사용자의 달력을 읽고(fetch) 변경하거나(store) 삭제할 수 있습니다. 관리자가 이 권한을 가지려면 ics.conf 파일의 다음 매개 변수를 "yes"로 설정해야 합니다.
service.admin.calmaster.overrides.accesscontrol="yes"
임의의 사용자의 기본 설정 검색 및 수정
관리자는 get_userprefs.wcap 및 set_userprefs.wcap를 사용하여 사용자 기본 설정을 검색하고 수정할 수 있습니다. 관리자가 이 권한을 가지려면 ics.conf 파일의 다음 매개 변수를 "yes"로 설정해야 합니다.
service.admin.calmaster.wcap.allowmodifyuserprefs="yes"
자세한 내용은 Sun Java System Calendar Server 6.3 WCAP Developer’s Guide를 참조하십시오.
이벤트 알림 서비스(ENS)는 경보 대기열에서 이벤트를 감지하고 이러한 이벤트 알림을 해당 가입자에게 보내는 경보 디스패처입니다. ENS API에서 프로그래머는 publish-and-subscribe 함수를 수정할 수 있습니다. Calendar Server는 이 함수를 사용하여 이벤트에 가입하거나 가입을 취소하고 또한 가입자에게 이벤트를 알립니다. ENS API는Published API, Subscriber API 및 Publish and Subscribe Dispatcher API와 같은 특정 API로 구성됩니다.
ENS API에 대한 자세한 내용은 Sun Java Communications Suite 5 Event Notification Service Guide를 참조하십시오.
또한 Calendar Server 소프트웨어는 알림을 위한 Java Message Queue 지원을 포함하지만 csnotifyd는 여기에 포함되지 않습니다. 따라서 기본 경보 및 알림 시스템에 포함되지 않습니다. 자세한 내용은 Sun Java System Java Message Queue 설명서를 참조하십시오.