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 的安裝有顯著的不同。您必須使用 Communications Suite 安裝程式,來安裝 Calendar Server 6.3 軟體。不要使用 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」中有說明。
如需有關將行事曆資料庫及 LDAP 資料庫從舊版 Calendar Server 遷移至版本 6.3 的資訊,請參閱第 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 檔案中參數的說明,請參閱附錄 ECalendar 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 的管理員權限,但不一定擁有對目錄伺服器的管理員權限。
Calendar Server 管理員的預設使用者 ID 是 calmaster,但如果願意,您可以在 Calendar Server 配置期間指定其他使用者。安裝後,您也可以在 ics.conf 檔案中的 service.siteadmin.userid 參數中指定其他使用者。
您為 Calendar Server 管理員指定的使用者 ID 必須是目錄伺服器中的有效使用者帳號。如果在配置期間,Calendar Server 管理員使用者帳號不存在於目錄伺服器中,則配置程式可為您建立該帳號。
下表說明 ics.conf 檔案中的 Calendar Server 管理員配置參數。
表 1–1 Calendar Server 管理員 (calmaster) 配置參數
這些特殊的帳號是 Calendar Server 執行時使用的使用者 ID 和群組 ID。除非有重要的原因讓您無法使用預設值,否則請使用預設值 icsuser 和 icsgroup,如果它們不存在,配置程式會自動建立這些值。
但是,如果願意,您可以在執行 Calendar Server 配置程式時,指定 icsuser 和 icsgroup 之外的其他值。這些值分別儲存在 ics.conf 檔案中的 local.serveruid 和 local.servergid 參數中。
您必須以超級使用者的身份登入,或成為超級使用者 (root),才能安裝 Calendar Server。您也可以超級使用者的身份執行,以使用指令行公用程式來管理 Calendar Server。但對於某些工作,您應以 icsuser 和 icsgroup (或您所選的值) 的身份執行,而非以超級使用者的身份執行,以避免存取 Calendar Server 檔案時發生問題。
雖然您需要 root 權限,才能安裝 Calendar Server,但是可以非超級使用者身份執行服務。
不過,如果您以 root 身份啟動服務,則一旦執行了需要 root 權限的工作,每個程序會將有效 UID 變更為執行階段 (非超級使用者) 使用者及群組。這種方式允許使用 1024 以下的連接埠。但是,當您以非超級使用者執行階段使用者和群組啟動服務時,Web 伺服器連接埠必須設定為大於 1024 的值,服務才能順利啟動。
非超級使用者或群組是在配置時自動建立的。預設為 icsuser 與 icsgroup。
為允許管理員管理使用者行事曆,依預設會設定 ics.conf 檔案中的以下參數,如下所示:service.http.allowadminproxy="yes"。
如果您要使用 Communications Express,則必須將此參數設定為 "yes"。
如需有關這個參數與驗證代理登入是否運作中的說明,請參閱 4.5 配置登入和認證。
一般使用者可以從用戶端機器使用 Web 圖形化使用者介面 (Graphical User Interface, GUI)、Sun Java System Communications Express 或透過 Connector for Microsoft Outlook (它允許一般使用者繼續在其桌面上使用 Outlook,同時仍然可以使用 Calendar Server 後端),連接至 Calendar Server。使用者在 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,請勿將這些公用程式用於管理或建立使用者、網域或資源 LDAP 項目。但有一些例外,至於這些例外之處,本指南會引導您使用正確的公用程式。
本小節說明使用者和使用者行事曆管理的以下方面﹕
可以使用以下一種使用者管理工具管理行事曆使用者、群組和資源:
Delegated Administrator 主控台。
使用此 GUI 在 LDAP 中為 Calendar Server 佈建使用者、群組和資源。如需有關使用 GUI 的資訊,請參閱 Delegated Administrator 主控台線上說明。
Delegated Administrator 公用程式 (commadmin)。
使用這些工具在 LDAP 中為 Calendar Server 佈建使用者、群組和資源。如需詳細說明,請參閱「Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide」。
Calendar Server 公用程式。
使用這些公用程式管理行事曆。此外,如果您的配置符合以下所有條件,請使用這些公用程式管理使用者、群組和資源:
您未在使用 Access Manager。
您已安裝了使用 Sun LDAP Schema 1 的舊版 Calendar Server 或 Messaging Server,
並要繼續使用 Schema 1。
另請參閱此指南中的指令行公用程式參照附錄 DCalendar Server 指令行公用程式參照。
Delegated Administrator 不管理行事曆。若要建立使用者、群組及資源的行事曆,請使用 Calendar Server 公用程式 cscal 和 csresource,或開啟自動佈建。一旦開啟了自動佈建,系統便會在兩種狀況下建立預設行事曆:如果使用者登入,但沒有預設行事曆,或在預設行事曆存在之前,先對使用者、群組或資源發出邀請。
您可以使用以下工具,在 LDAP 中建立使用者:
若為 Schema 1,請使用 Calendar Server csuser 公用程式,同時建立使用者和行事曆。
若為 Schema 2,請使用 Delegated Administrator 主控台,利用 [Create New User (建立新使用者)] 精靈來建立使用者。然後使用 Calendar Server 公用程式 cscal 建立使用者預設行事曆。請參閱附錄 DCalendar 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 需要 LDAP 目錄伺服器 (如 Sun Java System 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 存在於目錄伺服器中,但尚未啟用行事曆功能 (即無預設行事曆)。當開啟自動佈建並啟用網域行事曆時:
當 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 不允許事件組織者的邀請,則系統會傳回錯誤。在此情況下,沒有群組成員受到邀請。
組織者可以使用群組行事曆 ID 或群組的郵件位址來邀請群組。
如需有關 Calendar Server 使用者的更多資訊,請參閱第 14 章, 管理使用者、群組和資源。
資源是指可以使用行事曆排程的任何事物,例如會議室或投影機。每個此類事物都有一個單獨的資源 LDAP 項目。使用適當的工具建立 LDAP 項目和與其相關聯的行事曆:
若為 Schema 2 - 使用 Delegated Administrator 建立資源 LDAP 項目,使用 Calendar Server 公用程式 resource 建立行事曆。
若為 Schema 1 - 使用可同時建立資源 LDAP 項目和行事曆的 csresource create 指令。
不需要明確地建立資源行事曆。當啟用自動佈建時,第一次邀請資源,系統便會自動為它建立資源行事曆。這個行為與使用者和群組的行為相同。
本小節說明以下有關 Calendar Server 資料的資訊:
Calendar Server 資料格式以 RFC 2445「Internet Calendaring and Scheduling Core Object Specification (iCalendar)」為模型。
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 支援 ITIP/IMIP 標準 (RFC 2446 及 RFC 2447),包括用於事件的 ITIP 方法 PUBLISH、REQUEST、REPLY 及 CANCEL。
LDAP 資料快取記憶體選項可確保 LDAP 資料在確定後立即可用,即使 LDAP 目錄伺服器被配置為資料確定後延遲一段時間才可用。
例如,如果您的網站已部署主要/從屬 LDAP 配置,其中 Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 LDAP 目錄,這樣就會使 LDAP 資料在提交後延遲一段時間才可用,則 LDAP 資料快取記憶體可確保您的 Calendar Server 用戶端擁有準確的 LDAP 資料。
本小節包含以下主題:
請使用以下指示來確定您的網站是否應配置 LDAP 資料快取記憶體:
如果您網站上的 Calendar Server 可直接存取主要 (或根) LDAP 目錄伺服器,並且 LDAP 資料在確定後立即可用,則無需配置 LDAP 資料快取記憶體。確定 local.ldap.cache.enable 參數設定為 "no" (此為預設)。
如果您已部署1.7.2 Calendar Server 版本 6.3 的主要/從屬 LDAP 配置,其中 Calendar Server 透過從屬 LDAP 目錄伺服器來存取主要 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 搜尋選項處於使用中,並且在緊接新行事曆建立後的一段延遲時間內執行了搜尋,則新建立的行事曆不會顯示在該行事曆搜尋中。
跨多台前端伺服器讀取與寫入快取記憶體。每台前端伺服器都有其自己的快取記憶體,各快取記憶體無法辨識彼此的資料。
對不是始終登入同一伺服器的使用者的處理能力。此類使用者會在每台伺服器的快取記憶體中產生不同的 LDAP 資料。
Calendar Server 使用存取控制清單 (Access Control List, ACL) 決定行事曆、行事曆特性和行事曆元件 (例如事件及待辦事項 (工作)) 的存取控制。
本小節包含以下主題:
使用者透過 Communications Express 登入 Calendar Server 時,依預設認證程序並不加密登入資訊,包括使用者名稱和密碼。如果您要在網站上進行安全登入,請將 Calendar Server 配置為使用安全套接層 (Secure Sockets Layer, SSL) 協定來加密登入資料。如需更多資訊,請參閱第 7 章, 配置 SSL配置 SSL。
Calendar Server 在決定行事曆、行事曆特性以及行事曆元件的存取時,會考量以下使用者:
主要行事曆所有者
主要行事曆所有者對自己的行事曆擁有完全存取權限。Calendar Server 對存取其自身行事曆的主要所有者不執行任何存取控制檢查。
管理員和超級使用者
管理員 (例如 calmaster) 或超級使用者 (例如 root) 不受存取控制限制,可以在行事曆或行事曆元件上執行任何作業。如需更多資訊,請參閱1.3 Calendar Server 版本 6.3 的特殊帳號。
其他行事曆所有者
主要行事曆所有者可為自己的行事曆指定其他所有者。然後,其他所有者就可代表主要所有者為行事曆排程、刪除、修改、接受或拒絕事件或待辦事項 (工作)。
anonymous 使用者
如果 ics.conf 檔案中的 service.http.allowanonymouslogin 設定為 yes (預設),則特殊行事曆 ID (calid) anonymous 可使用任何密碼存取 Calendar Server。anonymous 使用者不與任何特定網域關聯。您可以透過編輯 calstore.anonymous.calid 參數來變更 anonymous 使用者的 calid。
如果某行事曆的權限允許所有使用者讀取,則您還可以匿名地檢視該行事曆。例如,以下連結允許使用者匿名地檢視 calid 為 tchang:meetings 的行事曆 (如果行事曆的權限允許所有使用者讀取)。
http://calendar.sesta.com:8080/?calid=tchang:meetings
anonymous 使用者可以檢視、列印及搜尋行事曆中的公開事件和工作,但不能執行任何其他作業。
如需有關匿名檢視資源行事曆的資訊,請參閱15.8 連結至行事曆。
使用存取控制清單決定行事曆、行事曆特性和行事曆元件例如事件和待辦事項工作的存取控制。ACL 由一個或多個存取控制項目 (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 為 Who 元素,指示 ACE 套用於誰。
c 為 What 元素,指示要存取的內容 (僅行事曆元件)。
wd 為 How 元素,指示將授予或拒絕哪些存取權限 (寫入與刪除)。
g 為 Grant 元素,指示將行事曆元件的指定存取權限 (寫入與刪除) 授予 jsmith。
Who 元素是 ACE 的主要值,指明 ACE 套用於誰,如個別使用者、網域或使用者的特定類型。
Who 也稱為通用主要名稱 (UPN)。使用者的 UPN 是與使用者網域組合的使用者登入名稱。例如,網域 sesta.com 中的使用者 bill 具有 UPN bill@sesta.com。
表 1–2 存取控制項目 (ACE) 字串的「Who」格式
What 元素指定要存取的目標,例如行事曆、行事曆元件 (事件或工作) 或行事曆特性。
表 1–3 存取控制項目 (ACE) 字串的「What」值
值 |
說明 |
|
---|---|---|
|
指定行事曆元件,例如事件和工作 |
|
|
指定行事曆特性,例如名稱、說明、所有者等 |
|
|
指定整個行事曆 (所有),包括元件與特性 |
元素指定所許可的存取控制權限類型例如讀取、寫入或刪除。
表 1–4 存取控制項目 (ACE) 字串的「How」類型
類型 |
說明 |
---|---|
r |
讀取存取。 |
w |
寫入存取,包括增加新項目和修改現有項目。 |
d |
刪除存取。 |
s |
排程 (邀請) 存取。可以產生請求,將會接受回覆,並且會允准其他 ITIP 排程互動。 |
f |
僅空閒/忙碌 (空閒時間) 存取。空閒/忙碌存取意味著使用者可以看到行事曆中已排程的時間,但是看不到事件詳細資訊。相反,只會看到「非空閒時間」幾個字出現在已排程時段的旁邊。無任何已排程事件的時段旁邊列示有「空閒時間」。 |
l |
網域的查找存取。 |
e |
代表進行回覆存取。此類型授予使用者代表行事曆的主要所有者接受或拒絕邀請的權限。無需明確地授權此存取類型,因為在將使用者指定為行事曆的所有者 (除了主要所有者之外的所有者) 時已暗示此存取類型。 |
i |
代表進行邀請存取。此類型授予使用者代表行事曆的主要所有者建立及修改元件的權限,在這些元件中已經邀請了其他與會者。無需明確地授權此存取類型,因為在將使用者指定為行事曆的所有者 (除了主要所有者之外的所有者) 時已暗示此存取類型。 |
c |
代表進行取消存取。此類型授予使用者代表行事曆的主要所有者取消元件的權限,已將與會者邀請至這些元件。無需明確地授權此存取類型,因為在將使用者指定為行事曆的所有者 (除了主要所有者之外的所有者) 時已暗示此存取類型。 |
z |
自我管理存取 - 授予認證的使用者增加或移除存取控制項目的權限。具有此權限的使用者可以增加和移除其自身的權限。例如,UserA 可能沒有對 UserB 的行事曆的寫入存取權限,但 UserA 已被授予對 UserB 的行事曆的自我管理存取權限。因此,UserA 可以增加授予其自己對 UserB 的行事曆的寫入存取權限的存取控制項目。 注意:此權限不允許 UserA 授予其他使用者對 UserB 的行事曆的存取權限。例如,自我管理權限不允許 UserA 授予 UserC 對 UserB 的行事曆的存取權限。 |
Grant 元素指定是授予還是拒絕特定存取類型的存取,例如 d (刪除) 或 r (讀取)。
表 1–5 存取控制項目 (ACE) 字串的 Grant 值
值 |
說明 |
---|---|
g |
授予特定的存取控制權限。 |
d |
拒絕特定的存取控制權限。 |
以下範例說明 ACE 的使用:
授予使用者 ID 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 字串,使較特定的 ACE 顯示在較一般的 ACE 之前。
例如,假定行事曆 jsmith:sports 之 ACL 中的第一個 ACE 授予所有使用者讀取存取權限。然後,Calendar Server 遇到了第二個 ACE,該 ACE 拒絕 bjones 對本行事曆的讀取存取權限。這種情況下,Calendar Server 會授予 bjones 對本行事曆的讀取存取權限,並因為第二個 ACE 是一個衝突而將其忽略。因此,為確保特定使用者 (例如 bjones) 的存取權限得到允准,在 ACL 中應該將 bjones 的 ACE 放置在全域性較強的項目 (例如套用至行事曆的所有使用者的 ACE) 之前。
Sun Java System Calendar Server 包括以下內部子系統:
以下圖形顯示經由這些子系統的邏輯流程。
用戶端透過使用 HTTP 協定層提交請求來擷取行事曆資料。這是最小的 HTTP 伺服器實作,可有效支援行事曆請求。這透過將 Web 行事曆存取協定 (WCAP) 指令附加至 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 資料庫。
服務會作為常駐程式或程序執行。這些服務包括:
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 服務會偵聽來自 Calendar Server 一般使用者的 HTTP 指令、接收使用者指令和傳回行事曆資料,這取決於內送 WCAP 指令中指定的格式。資料可以格式化為標準 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 服務在後端伺服器的背景中執行,並接受遵循資料庫連線協定 (Database Wire Protocol, DWP) 的行事曆資料庫存取請求。DWP 是內部協定,可為 Calendar Server 資料庫提供網路功能。
Calendar Server 包括以下 API:
Calendar Server 支援 WCAP 3.0,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 指令讀取 (擷取)、替代 (儲存) 或刪除其他使用者的行事曆。若要使管理員擁有此權限,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 API 可讓程式設計師修改 Calendar Server 使用的發佈和訂閱功能,以執行訂閱事件、取消訂閱事件以及通知事件訂閱者之類的功能。ENS API 由這些特定 API 組成:發佈者 API、訂閱者 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 文件。