本部分仅包含“概述”一章。
Sun JavaTM System Calendar Server 6.3 (Calendar Server) 是一款基于 Web 的可伸缩解决方案,可供企业和服务提供商进行集中的日程管理和预定。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 用户应使用 Linux 默认路径替换显示 Solaris 默认路径的命令中的 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 文件中的参数的说明,参见附录 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 管理员用户 ID 为 calmaster,但如需要,您可以在配置 Calendar Server 时指定其他用户。安装后,也可以通过 ics.conf 文件中的 service.siteadmin.userid 参数来指定其他用户。
所指定的 Calendar Server 管理员用户 ID 必须为 Directory Server 中的有效用户帐户。如果配置时 Directory Server 中不存在 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 身份启动服务,则一旦执行了需要 root 权限的任务,每个进程都会将有效 UID 更改为运行时(非 root)用户和组。这么做允许使用 1024 以下的端口。但是,如果以非 root 运行时用户和组的身份启动服务,则必须将 Web 服务器端口设置为大于 1024 的值,这样才能成功启动服务。
在配置时会自动创建非 root 用户或组。默认值为 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(它允许最终用户在利用 Calendar Server 后端的同时继续使用其桌面上的 Outlook)从客户机连接到 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。
另请参见本指南附录 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 需要使用 LDAP 目录服务器(例如 Sun Java System Directory Server)来验证用户和存储用户首选项。
Calendar Server 允许用户通过设置用户首选项属性(它们存储在目录服务器中)来自定义其日历数据视图。用户首选项(与 Calendar Server 配置参数相对)是指日历数据的用户界面表示,包含诸如用户名、电子邮件地址和以及渲染日历视图时优先使用的颜色等条目。
有关首选项列表,参阅《Sun Java System Calendar Server 6.3 WCAP Developer’s Guide》中的 WCAP 命令 get_userprefs 和 set_userprefs。
组为用户的命名集合。每个组都有一个 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 用户界面导入和导出日历数据。
可将日历作为电子邮件消息和 Web 页面上嵌入的链接来进行引用。只要日历允许对其进行读访问,用户就可以单击链接来查看该日历,而无需登录到 Calendar Server。例如,以下链接指定了名为 Auditorium 的资源会议室:
http://calendar.sesta.com:8080/uwc/?calid=Auditorium
有关如何链接到日历的信息,参见15.8 创建日历链接。
Calendar Server 支持服务器端的电子邮件警报,并可将其发送给一组收件人。电子邮件消息的格式是可以配置的,可以作为服务器属性,而不是作为用户或日历属性进行维护。
Calendar Server 支持 ITIP/IMIP 标准(RFC 2446 和 RFC 2447),包括用于事件的 ITIP 方法PUBLISH、REQUEST、REPLY和CANCEL。
LDAP 数据高速缓存选项可确保提交 LDAP 数据后可以立即使用该数据,即使将 LDAP Directory Server 配置为提交的数据需经一段时间延迟方可使用。
例如,如果您的站点上部署了主/从 LDAP 配置,其中,Calendar Server 是通过从属 LDAP Directory Server 访问主 LDAP 目录,因而会导致提交的 LDAP 数据需经一段延迟方可使用,则配置 LDAP 数据高速缓存可以确保 Calendar Server 客户端获得准确的 LDAP 数据。
本节包含以下主题:
按照以下原则确定您的站点是否需要配置 LDAP 数据高速缓存:
如果您站点上的 Calendar Server 是直接访问主(或根)LDAP Directory Server,并且提交的 LDAP 数据在可用之前没有延迟,则无需配置 LDAP 数据高速缓存。确保将 local.ldap.cache.enable 参数设置为 "no"(默认值)。
如果您的站点上已部署了 1.7.2 Calendar Server 版本 6.3 的主/从 LDAP 配置,其中 Calendar Server 是通过从属 LDAP Directory Server 访问主 LDAP 目录,则提交的 LDAP 数据需经一段延迟方可使用。您需要配置 LDAP 数据高速缓存,以确保最终用户获得最新数据。
主/从 LDAP 配置包含一个主(根)Directory Server 和一个或多个从属(用户或副本)Directory Server。Calendar Server 可直接访问或通过从属 Directory Server 访问主 LDAP Directory Server:
如果 Calendar Server 直接访问主 LDAP Directory Server,LDAP 数据应为准确数据,则无需配置 LDAP 数据高速缓存。
如果 Calendar Server 通过从属 Directory Server 访问主 LDAP Directory Server,则系统通常会通过一个 LDAP 引用将 LDAP 数据更改透明地写入主 Directory Server,然后 LDAP 引用再将数据复制回所有从属 Directory Server。
在上述第二种配置中,由于提交的数据需要经过一段延迟方可在从属 Directory Server 上使用,因此可能会出现 LDAP 数据不准确的问题。
例如,Calendar Server 提交了 LDAP 数据更改,但由于主 Directory Server 更新每个从属 Directory Server 造成延迟,因此导致新数据在一段时间内不可用。随后的 Calendar Server 客户端操作将会使用旧的 LDAP 数据并显示旧的视图。
如果更新从属 Directory Server 的延迟时间较短(只有几秒钟),则客户端可能不会出现问题。但是,如果延迟时间较长(几分钟或几小时),则客户端在延迟期间将显示不准确的 LDAP 数据。
下表列出了受到主/从 LDAP 服务器配置中延迟影响的操作和 LDAP 属性:
操作 |
LDAP 属性 |
---|---|
自动置备日历 |
icsCalendar、icsSubscribed、icsCalendarOwned、icsDWPHost |
日历组 |
icsStatus、icsCalendar |
日历创建 |
icsCalendarOwned、icsSubscribed |
日历订阅 |
icsSubscribed |
用户选项 |
icsExtendedUserPrefs、icsFirstDay、icsTimeZone、icsFreeBusy |
日历搜索 |
icsCalendarOwned |
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 数据高速缓存数据库可提供:
单一系统上多个进程间的数据一致性—多处理器系统上的所有 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 创建日历链接。
Calendar Server 使用访问控制列表 (Access Control List, ACL) 来确定日历、日历属性和日历组件(例如事件和待办事项(任务))的访问控制。ACL 由一个或多个访问控制条目 (access control entry, 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" 值
值 |
说明 |
|
---|---|---|
|
指定日历组件,例如事件和任务 |
|
|
指定日历属性,例如名称、说明和所有者等 |
|
|
指定整个日历(所有内容),包括组件和属性 |
How 元素指定允许的访问控制权限的类型,例如读、写或删除。
表 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 访问控制条目 (Access Control Entry, 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 字符串排序时,应将明确具体的条目放在概括性条目之前。
例如,假设日历 jsmith:sports 的 ACL 中的第一个 ACE 将读访问权限授予所有用户。然后,Calendar Server 遇到的第二个 ACE 拒绝授予 bjones 对此日历的读访问权限。在这种情况下,Calendar Server 将授予 bjones 对此日历的读访问权限,而忽略第二个 ACE,因为它与第一个 ACE 冲突。因此,要确保实现特定用户(例如 bjones)的访问权限,应将 bjones 的 ACE 放在 ACL 中全局性较强的条目(例如,应用于日历的所有用户的 ACE)之前。
Sun Java System Calendar Server 包括以下内部子系统:
下图显示了通过这些子系统的逻辑流程。
客户端通过使用 HTTP 协议层提交请求来检索日历数据。这是最小 HTTP 服务器实现,已被流程化以支持日历请求。它是通过将 Web 日历访问协议 (WCAP) 命令附加到 URL 之后实现的。
WCAP 是一个开放协议,它允许您编写自己的 Calendar Server 界面。使用 WCAP 命令(.wcap 扩展名),可以执行除某些管理命令之外的大多数服务器命令。可以使用 WCAP 命令来请求以 XML 或封装在 HTML 中的 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 Calendar Server 版本 6.3 中的事件通知服务 (Event Notification Service, ENS):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:
1.11.1 Calendar Server 版本 6.3 中的 Web 日历访问协议 (Web Calendar Access Protocol, WCAP)
1.11.2 Calendar Server 版本 6.3 中的事件通知服务 (Event Notification Service, ENS) 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 命令来读取(获得)、修改(存储)或删除其他用户的日历。要为管理员授予此权限,必须将 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》。
事件通知服务 (Event Notification Service, ENS) 是一种报警分发程序,它会检测报警队列中的事件并向这些事件的订户发送通知。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 文档。