Sun Java System Calendar Server 6 2005Q4 管理指南

第 1 章 概述

Sun JavaTM System Calendar Server 62005Q4 (Calendar Server) 是一款基于 Web 的可伸缩解决方案,可供企业和服务提供商进行集中的日程管理和预定。Calendar Server 既支持事件和任务的个人日历和组日历,也支持诸如会议室和设备的资源日历。

有关基本配置方案的信息,请参见《Sun Java System Communications Services 6 2005Q4 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 用户应使用 Linux 默认路径替换显示 Solaris 默认路径的命令中的 Solaris 默认路径。


Calendar Server 安装

Calendar Server 的安装和配置与早期的 Calendar Server 版本(2003Q4 之前的版本)有很大区别。Calendar Server 已不再有独立的安装程序。

如果还没有安装 Calendar Server 2003Q4 (6.0) 或更高版本,必须使用 Sun Java Enterprise System 安装程序以获得 2005Q4 版。使用此安装程序,您还可以安装其他的 Sun 组件产品和软件包。有关 Java Enterprise System 安装程序的信息,请参阅《Sun Java Enterprise System 2005Q4 Installation Guide for UNIX》

如果要从 Sun Java Enterprise System 的早期版本升级,升级过程如《Sun Java System 2005Q4 升级和迁移指南》中所述。

有关从 Calendar Server 的早期版本迁移的信息,请参阅第 4 章,数据库迁移实用程序中的信息。

安装后的配置

安装 Calendar Server 之后,必须对其进行配置。安装过程中,安装程序不会执行配置任务。

Procedure高级任务列表

步骤
  1. 运行 Directory Server 设置脚本 (comm_dssetup.pl) 来配置 Sun Java System Directory Server 5(如果该脚本尚未运行)。

    该脚本位于以下目录中:/opt/SUNWcomds/sbin

    有关运行该脚本的信息,请参见第 2 章,目录准备脚本 (comm_dssetup.pl)

  2. 运行 Calendar Server 配置程序 (csconfigurator.sh) 来根据您站点的具体要求进行配置,并创建一个新的 ics.conf 配置文件。

    有关 ics.conf 文件中的参数的说明,请参见附录 E,Calendar Server 配置参数

    该程序位于以下目录中:/opt/SUNWics5/sbin

    有关运行 csconfigurator.sh 的信息,请参见第 3 章,Calendar Server 配置程序 (csconfigurator.sh)

Calendar Server 特殊帐户

Calendar Server 特殊帐户包括:

Calendar Server 管理员 (calmaster)

Calendar Server 管理员是指具有相关口令且可以管理 Calendar Server 的某个特定用户名。例如,Calendar Server 管理员可以启动和停止 Calendar Server 服务、添加和删除用户、创建和删除日历等等。此用户拥有 Calendar Server 的管理员权限,但不一定拥有 Directory Server 的管理员权限。

默认的 Calendar Server 管理员用户 ID 为 calmaster,但如需要,您可以在配置 Calendar Server 时指定其他用户。安装后,也可以通过 ics.conf 文件中的 service.admin.calmaster.userid 参数来指定其他用户。

所指定的 Calendar Server 管理员用户 ID 必须为 Directory Server 中的有效用户帐户。如果配置时 Directory Server 中不存在 Calendar Server 管理员用户帐户,配置程序将为您创建一个用户帐户。

下表介绍了 ics.conf 文件中的 Calendar Server 管理员配置参数。

表 1–1 Calendar Server 管理员 (calmaster) 配置参数

参数 

说明 

service.admin.calmaster.userid

指定作为 Calendar Server 管理员的用户的用户 ID。安装 Calendar Server 时必须提供此必需的值。默认值为 "calmaster"

service.admin.calmaster.cred

指定作为 Calendar Server 管理员的用户 ID 的密码。安装时必须提供此必需的值。 

caldb.calmaster

Calendar Server 管理员的电子邮件地址。默认值为 "root@localhost"

service.admin.calmaster.overrides.

accesscontrol

指定 Calendar Server 管理员是否可以覆盖访问控制。默认值为 "no"

service.admin.calmaster.wcap.

allowgetmodifyuserprefs

 

指定 Calendar Server 管理员是否可以使用 WCAP 命令获得并设定用户首选项。默认值为 "no"

service.admin.ldap.enable

启用 LDAP 服务器来验证在 service.admin.calmaster.userid 中指定的用户。默认值为 "yes"

Calendar Server 用户和组

这些特殊帐户是运行 Calendar Server 的用户 ID 和 组 ID。建议您使用默认值(icsusericsgroup),除非您有充分的理由不使用默认值。如果默认值不存在,配置程序将自动创建。

但如果需要,您可以在运行 Calendar Server 配置程序时指定不同于 icsusericsgroup 的值。这些值分别存储在 ics.conf 文件的 local.serveruidlocal.servergid 参数中。

超级用户(root 用户)

必须以(或转为)超级用户 (root) 身份登录才能安装 Calendar Server。还可以作为超级用户运行,使用命令行实用程序来管理 Calendar Server。但对于某些任务,应该作为 icsusericsgroup(或选定的值)而不是超级用户来运行,以防无法访问 Calendar Server 文件。

代理管理员登录

要允许管理员管理用户日历,需要在配置文件 ics.conf 中设置一个参数。默认值为 "no" ,表示不允许这种代理验证。

如果使用的是 Communications Express,则必须将该参数设置为 "yes"

有关如何设置该参数以及验证代理登录是否正常工作的说明,请参见配置登录和验证

Calendar Server 最终用户管理

最终用户使用 Web 图形用户界面 (graphical user interface, GUI) Sun Java System Communications Express 从客户机连接至 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 条目。也有一些例外。遇到这些例外时,此向导将指导您使用适当的实用程序。


本节介绍用户和用户日历管理的以下主题:

创建 Calendar Server 用户

可以手动或自动创建 Calendar Server 用户:

Calendar Server 用户验证

Calendar Server 需要使用 Directory Server(例如 Sun Java System Directory Server)来验证用户和存储用户首选项。但是,要允许在非 LDAP Directory Server 中定义的用户进行访问,可以使用 Calendar Server 提供的 Calendar Server API (CSAPI) 编写插件,以访问非 LDAP 目录。有关 CSAPI 的信息,请参阅《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》

Calendar Server 用户首选项

Calendar Server 允许用户通过设置用户首选项属性(存储在 Directory Server 中)来自定义日历数据视图。用户首选项(与 Calendar Server 配置参数相对)是指日历数据的用户界面表示,包含诸如用户名、电子邮件地址和以及渲染日历视图时优先使用的颜色等条目。

有关首选项列表,请参阅《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》中的 WCAP 命令 get_userprefsset_userprefs

日历组

日历组是单个订阅的日历的命名列表。组日历允许将多个日历组合成一个日历以便于查看。用户使用 Communications Express 图形用户界面创建组。

例如,用户可以建立一个包含私人日历、部门日历和公司休假日历的日历组。用户还可以使用日历组来选择多个日历,以并列的方式查看这些日历,或邀请日历属主参与某个事件。

这些组不会同 LDAP 组发生混淆。在用户界面中创建的组存储在 icsSet 属性中该用户的 LDAP 条目中。因此,其他用户在 LDAP 中搜索参与者时看不到这些组。

有关 Calendar Server 用户的更多信息,请参见第 14 章,管理用户和资源

日历资源

资源是可以使用日历安排的任何内容,例如会议室或投影仪。每个这样的项目都有一个单独的资源 LDAP 条目。使用适当的工具创建 LDAP 条目及其关联的日历:

Calendar Server 数据

本节介绍有关 Calendar Server 数据的以下信息:

Calendar Server 数据格式

Calendar Server 数据格式采用 RFC 2445 "Internet Calendaring and Scheduling Core Object Specification (iCalendar)" 规范。Calendar Server 支持以下格式:

可以使用 CSAPI 为 WCAP 协议开发转换器 DLL 或共享库。有关 WCAP 和 CSAPI 的信息,请参见《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》

导入和导出日历数据

可以采用 iCalendar (.ical) 或 XML (.xml) 格式导入和导出日历数据。Calendar Server 管理员可以使用 Calendar Server 的 csimportcsexport 实用程序导入和导出日历数据。最终用户可以使用 Communications Express 用户界面导入和导出日历数据。

用于数据交换的日历链接

可以通过在电子邮件消息和 Web 页中嵌入链接的方式来引用日历。只要日历允许对其进行读访问,用户就可以单击链接来查看该日历,而无需登录到 Calendar Server。例如,以下链接指定了名为 Auditorium 的会议室资源:

http://calendar.sesta.com:8080/?calid=Auditorium

Calendar Server 报警

Calendar Server 支持服务器端电子邮件报警,可向一组收件人发送警报。电子邮件消息的格式是可以配置的,可以作为服务器属性,而不是作为用户或日历属性进行维护。Calendar Server 有限地支持 ITIP/IMIP 标准(RFC 2446 和 RFC 2447),包括用于事件的 ITIP 方法 PUBLISHREQUESTREPLYCANCEL

LDAP 数据高速缓存选项

LDAP 数据高速缓存选项可确保提交 LDAP 数据后可以立即使用该数据,即使将 LDAP Directory Server 配置为提交的数据需经一段时间延迟方可使用。

例如,如果您的站点上部署了主/从 LDAP 配置,其中,Calendar Server 是通过从属 LDAP Directory Server 访问主 LDAP 目录,因而会导致提交的 LDAP 数据需经一段延迟方可使用,则配置 LDAP 数据高速缓存可以确保 Calendar Server 客户端获得准确的 LDAP 数据。

本节包含以下主题:

使用 LDAP 数据高速缓存的注意事项

按照以下原则确定您的站点是否需要配置 LDAP 数据高速缓存:

主/从 LDAP 配置

主/从 LDAP 配置包含一个主(根)Directory Server 和一个或多个从属(用户或副本)Directory Server。Calendar Server 可直接访问或通过从属 Directory Server 访问主 LDAP Directory Server:

LDAP 数据高速缓存

LDAP 数据高速缓存通过为 Calendar Server 客户端提供最新的 LDAP 数据解决了主/从 LDAP 配置问题,即使主 Directory Server 还未更新每个从属 Directory Server。

如果启用了 LDAP 数据高速缓存,Calendar Server 会将已提交的 LDAP 数据写入高速缓存数据库(ldapcache.db 文件)。默认情况下,LDAP 高速缓存数据库位于 ldap_cache 数据库目录中,但如果需要,您也可以将其配置为其他位置。

客户端更改单个用户的 LDAP 数据时,Calendar Server 会将更改后的数据写入 LDAP 高速缓存数据库(同时也写入从属 Directory Server)。随后的客户端操作将从高速缓存数据库中检索 LDAP 数据。此数据检索应用于单个用户的以下操作:

从而,LDAP 数据高速缓存数据库可提供:

限制

LDAP 数据高速缓存不提供:

日历访问控制

Calendar Server 使用访问控制列表 (Access Control List, ACL) 来确定对日历、日历属性和日历组件(例如事件和待办事件 [任务])的访问控制。

本节包括以下主题:

增加 Calendar Server 登录的安全性

用户通过 Communications Express 登录 Calendar Server 时,默认情况下验证进程并不加密登录信息(包括用户名和密码)。如果希望增加站点登录的安全性,请配置 Calendar Server 使用安全套接口层 (SSL) 协议来加密登录数据。有关更多信息,请参阅第 8 章,配置 SSL“配置 SSL”。

用户访问控制

确定对日历、日历属性和日历组件的访问权限时,Calendar Server 将考虑以下用户:

访问控制列表 (ACL)

Calendar Server 使用访问控制列表 (ACL) 来确定对日历、日历属性和日历组件(例如事件和待办事件 [任务])的访问控制。ACL 由一个或多个访问控制条目 (access control entry, ACE) 组成,这些条目是共同应用到同一个日历或组件的字符串。ACL 中的每个 ACE 之间必须用分号分隔。例如:

ACE 由以下元素组成,每个元素之间由插入符号 (^) 分隔:

例如,在 ACE jsmith^c^wd^g 中:

Who

Who 元素是 ACE 中的主要值,表示将应用 ACE 的人(例如单个用户、域或特定类型的用户)。

Who 也称为通用主要名称 (UPN)。用户的 UPN 是用户的域和登录名的组合。例如,域 sesta.com 中的用户 bill 的 UPN 为 bill@sesta.com

表 1–2 访问控制条目 (ACE) 字符串中的 "Who" 格式

格式 

说明 

user

表示一个特定的用户。例如:jsmith。 

user@domain

表示特定域中的特定用户。例如:jsmith@sesta.com

@domain

表示指定域中的任何用户。 

例如:@sesta.com 指定 jsmith@sesta.com、sally@sesta.comsesta.com 中的任何其他用户。

使用此格式可以为用户授予或拒绝对整个域的访问权限。 

@

表示所有用户。 

@@{d|p|o|n}

表示日历的属主: 

  • @@d—主要属主的域

  • @@p—仅主要属主

  • @@o—所有属主,包括主要属主

  • @@n—非属主

What

What 元素指定要访问的目标,例如日历、日历组件(事件或任务)或日历属性。

表 1–3 访问控制条目 (ACE) 字符串中的 "What" 值

值 

说明 


c                           

指定日历组件,例如事件和任务 


p                           

指定日历属性,例如名称、说明和属主等 


a                           

指定整个日历(所有内容),包括组件和属性 

How

How 元素指定允许的访问控制权限的类型,例如读、写或删除。

表 1–4 访问控制条目 (ACE) 字符串中的 "How" 类型

类型 

说明 

r

读访问。 

w

写访问,包括添加新项和修改现有项。 

d

删除访问。 

s

预定(邀请)访问。可以发送请求、接受回复以及进行其他 ITIP 预定交互操作。 

f

仅空闲/繁忙(空闲时间)访问。空闲/繁忙访问表示用户能够查看日历中的时间安排,但不能查看事件的详细信息。已预定的时间块将只显示“不可用”。未预定任何事件的时间块旁边将显示“可用”。 

域的查找访问。 

e

以代表身份进行回复访问。此类型授予用户代表日历的主要属主接受或拒绝邀请的权限。此访问类型不需要明确授予,因为当一名用户被指定为日历的属主(非主要属主)时,就暗含授予了这种权限。 

i

以代表身份进行邀请访问。此类型授予用户代表日历的主要属主创建和修改已邀请其他参与者的组件的权限。此访问类型不需要明确授予,因为当一名用户被指定为日历的属主(非主要属主)时,就暗含授予了这种权限。 

c

以代表身份进行取消访问。此类型授予用户代表日历的主要属主取消已邀请其他参与者的组件的权限。此访问类型不需要明确授予,因为当一名用户被指定为日历的属主(非主要属主)时,就暗含授予了这种权限。 

z

自我管理访问—授予已经验证的用户添加和删除访问控制条目的权力。拥有该权限的用户可以添加和删除自身的权限。例如,UserA 可能不具有对 UserB 的日历的写访问权限,但是 UserA 被授予了对 UserB 的日历的自我管理访问权限。因此,UserA 可以添加一条访问控制条目,授予自己对 UserB 的日历的写访问权限。 

备注:UserA 不能使用该权限授予其他用户对 UserB 的日历的访问权限。例如,自我管理权限不允许 UserA 授予 UserC 对 UserB 的日历的访问权限。 

Grant

Grant 元素指定是授予还是拒绝授予指定类型(例如 d [删除] 或 r [读])的访问权限。

表 1–5 访问控制条目 (ACE) 字符串中的 Grant 值

值 

说明 

g

授予特定的访问控制权限。 

d

拒绝授予特定的访问控制权限。 

ACE 示例

以下示例显示了 ACE 的用法:

对 ACL 中的 ACE 进行排序

Calendar Server 读取 ACL 时,它将使用遇到的第一个 ACE,无论该 ACE 是授予还是拒绝授予对目标的访问权限。因此,ACL 条目的顺序非常重要。对 ACE 字符串排序时,应将明确具体的条目放在概括性条目之前。

例如,假设日历 jsmith:sports 的 ACL 中的第一个 ACE 将读访问权限授予所有用户。然后,Calendar Server 遇到的第二个 ACE 拒绝授予 bjones 对此日历的读访问权限。在这种情况下,Calendar Server 将授予 bjones 对此日历的读访问权限,而忽略第二个 ACE,因为它与第一个 ACE 冲突。因此,要确保实现特定用户(例如 bjones)的访问权限,应将 bjones 的 ACE 放在 ACL 中全局性较强的条目(例如,应用于日历的所有用户的 ACE)之前。

Calendar Server 内部子系统

Sun Java System Calendar Server 包括以下内部子系统:

下图显示了通过这些子系统的逻辑流程。

图 1–1 Calendar Server 内部子系统逻辑流程

该图显示了 Calendar Server 的子系统和组件的概念视图。后面的文字对这些子系统和组件进行了介绍。

协议子系统

客户端通过使用 HTTP 协议层提交请求来检索日历数据。这是最小 HTTP 服务器实现,已被流程化以支持日历请求。它是通过将 Web 日历访问协议 (WCAP) 命令附加到 URL 之后实现的。

WCAP 是一个开放协议,它允许您编写自己的 Calendar Server 界面。使用 WCAP 命令(.wcap 扩展名),可以执行除某些管理命令之外的大多数服务器命令。可以使用 WCAP 命令来请求以 XML 或封装在 HTML 中的 iCalendar 格式进行输出。

有关 WCAP 命令的信息,请参见《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》

核心子系统

核心子系统包括访问控制组件、WCAP(使用数据转换器格式化来自日历数据库组件中的数据)和所有 CSAPI 插件。核心子系统处理日历请求并生成 WCAP 输出。核心子系统还处理用户验证,包括Calendar Server API (CSAPI)

数据库子系统

数据库子系统使用 Sleepycat Software 公司的 Berkeley DB(数据库 API 未公开)。数据库子系统在数据库中存储并检索日历数据,包括事件、待办事件(任务)和警报。日历数据基于 iCalendar 格式,并且 Calendar Server 数据使用的模式是 iCalendar 标准的超集。

数据库子系统以低级格式返回数据,然后由核心 UI 生成器转换该低级数据并通过 WCAP 将其发送。

对于分布式日历数据库,Calendar Server 使用分布式有线协议 (DWP) 来提供联网功能。有关更多信息,请参见分布式数据库服务:csdwpd

有关日历数据库的更多信息,请参阅第 16 章,使用 csdb 管理 Calendar Server 数据库

Calendar Server 服务

Calendar Server 服务作为守护进程(或进程)运行。这些服务包括:

管理服务:csadmind

csadmind 服务为管理 Calendar Server 提供单点验证。csadmind 服务还管理报警通知、组计划请求。

HTTP 服务:cshttpd

由于 Calendar Server 使用 HTTP 作为其主要传输方式,因此 cshttpd 服务将侦听来自 Calendar Server 最终用户的 HTTP 命令、接收用户命令并返回日历数据,具体情况取决于传入 WCAP 命令中指定的格式。可以采用标准 RFC 2445 iCalendar 格式 (text/calendar) 或 XML 格式 (text/xml) 格式化数据。

自动备份服务:csstored

正确配置后,csstored 服务将创建日历数据库的自动备份。但是,安装时该服务处于未配置状态。可以在 csconfigurator.sh 配置程序运行时将 Calendar Server 配置为自动备份,也可以以后再配置,如该指南所述。

如果在未配置和禁用状态中启动该服务,它将每隔 24 小时给管理员发送一条说明没有启用自动备份的消息。

有关如何配置此服务以执行备份的说明,请参见第 10 章,配置自动备份 (csstored)

正确配置后,该服务将具有以下功能:

事件通知服务 (Event Notification Service, ENS):csnotifyd 和 enpd

ENS 服务包括以下这些独立的服务:


注 –

并不要求 enpdcsnotifyd 服务与 cshttpdcsdwpdcsadmind 进程在同一台服务器上运行。


分布式数据库服务:csdwpd

要求 csdwpd 服务将日历数据库分布到多个后端服务器中。csdwpd 服务允许您将日历数据库分布到同一 Calendar Server 配置中的多个后端服务器,以形成一个分布式的日历存储。

csdwpd 服务在后端服务器的后台运行,并接受符合数据库有线协议 (Database Wire Protocol, DWP) 的日历数据库访问请求。DWP 是一个内部协议,用于为 Calendar Server 数据库提供联网功能。

Calendar Server API 和 SDK

Calendar Server 包括以下 API 和 SDK:

Web 日历访问协议 (WCAP)

Calendar Server 支持 WCAP 3.0(基于命令的高级协议),它允许与客户端进行通信。WCAP 命令(使用 .wcap 扩展名)允许客户端接收、修改和删除日历组件、用户首选项、日历属性和其他日历信息(例如时区信息)。WCAP 元素(例如时间、字符串和参数)通常遵循 RFC 2445、RFC 2446 和 RFC 2447 规范。

WCAP 按照以下格式在 HTTP 消息中返回输出日历数据:

通过 WCAP 命令,使用 login.wcap 登录的 Calendar Server 管理员可以执行以下操作:

有关更多信息,请参见《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》

Calendar Server API (CSAPI)

Calendar Server API (CSAPI) 允许您自定义 Calendar Server 的功能区域(例如用户登录验证、访问控制和日历查找)。例如,默认情况下 Calendar Server 使用 LDAP Directory Server 中的条目来验证用户,存储用户首选项。CSAPI 允许您通过实现其他非基于 LDAP Directory Server 的验证机制来覆盖默认的 Calendar Server 验证机制。

有关 CSAPI 的信息,请参见《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》

事件通知服务 (ENS) API

事件通知服务 (ENS) 是一种报警分发程序,它检测报警队列中的事件并向这些事件的订户发送通知。ENS API 允许程序员修改 Calendar Server 使用的“发布和订阅”功能来执行订阅事件、取消订阅事件以及向事件订户发送通知等功能。ENS API 具体包括以下 API:发布 API、订户 API 以及“发布和订阅”分发程序 API。

有关 ENS API 的信息,请参见《Sun Java System Communications Services 6 2005Q4 Event Notification Service Guide》

代理验证 SDK (authSDK)

Calendar Server 为用户验证提供 authSDK。使用 authSDK,可以将现有入口服务与 Calendar Server 集成,这样用户就可以访问不同的应用程序而无需重新验证。authSDK 由多个函数和一个头文件组成,函数被打包在 DLL/共享对象库中。

建立在 Calendar Server 和 authSDK 之间的连接构成了一种信任关系。如果用户登录并成功通过 authSDK 验证,Calendar Server 将接受代理为其功能生成的证书。

有关 authSDK 的信息,请参见《Sun Java System Calendar Server 6 2005Q4 Developer’s Guide》