Sun ONE logo     上一章     目录     索引     下一章     
Sun ONE Calendar Server 管理员指南



第 4 章   管理 Calendar Server 访问控制


Sun™ ONE Calendar Server 使用访问控制列表 (ACL) 来确定对日历、日历属性和日历组件(如事件和待办事项(即任务))的访问控制。

本章包含以下几节:


用户访问控制

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

  • 主要日历所有者

    主要日历所有者对他们自己的日历具有完全的访问权。Calendar Server 对访问自身日历的主要所有者不会执行任何访问控制检查。

  • 管理员和超级用户

    管理员(如 icsusercalmaster)或超级用户(如 root)不受访问控制限制的约束,他们可以对日历或日历组件执行任何操作。有关更多信息,请参见“Calendar Server 管理员”

  • 其他日历所有者

    主要日历所有者可以为他们的日历指定其他所有者。之后,其他所有者便可以代表主要所有者来安排、删除、修改、接受或谢绝日历的事件或待办事项(任务)。

  • anonymous 用户

    如果 ics.conf 文件中的 service.http.allowanonymouslogin 设置为“yes”(即默认值),则特殊日历 ID (calid) anonymous 可以使用任何口令访问 Calendar Server。anonymous 用户与任何特定的域都不相关。通过编辑 calstore.anonymous.calid 参数,您可以更改 anonymous 用户的 calid

    如果日历的权限允许任何人读取,您还可以匿名查看该日历。例如,以下链接允许用户匿名查看 calidtchang:meetings 的日历(假设该日历的权限允许任何人读取):

    http://calendar.sesta.com:8080/?calid=tchang:meetings

    anonymous 用户可查看、打印和搜索日历上的公用事件和任务,但不能执行任何其他操作。

    有关如何匿名查看资源日历的信息,请参见“链接到日历”


访问控制列表 (ACL)

Calendar Server 使用访问控制列表 (ACL) 来确定对日历、日历属性和日历组件(如事件和待做事项(即任务))的访问控制。ACL 由一个或多个访问控制项 (ACE) 组成,这些访问控制项是共同应用于同一日历或组件的字符串。ACL 中的每个 ACE 必须以分号分隔。例如:

  • jsmith^c^wd^g 包含一个 ACE。

  • @@o^a^r^g;@@o^c^wdeic^g;@^a^sf^g 有三个 ACE 。

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

  • Who-ACE 所应用的个人、用户、域或用户类型。

  • What-访问目标,如日历、日历组件(如事件和待办事项(即任务))或日历属性。

  • How-允许的访问控制权限类型,如读取、写入或删除。

  • Grant-授予或拒绝的特定访问控制权限。

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

  • jsmith 表示 Who 元素,指示 ACE 所应用的对象。

  • c 表示 What 元素,指示要访问的内容(仅限于日历组件)。

  • wd 表示 How 元素,指示要授予或拒绝的访问权限(写入和删除)。

  • g 表示 Grant 元素,指示授予 jsmith 对日历组件的指定访问权限(写入和删除)。

Who

Who 元素是 ACE 的主要值,指示 ACE 所应用的对象,如个别用户、域或特定的用户类型。

Who 又称为通用主要名称 (UPN)。用户的 UPN 由用户的登录名和用户的域组合而成。例如,对于 sesta.com 域中的用户 bill,其 UPN 为 bill@sesta.com

表 4-1 显示 Calendar Server ACE 中使用的 Who 格式。


表 4-1    访问控制项 (ACE) 字符串的 Who 格式 

格式

说明

user  

表示特定用户。例如:jsmith  

user@domain  

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

@domain  

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

例如:@sesta.com 指定 jsmith@sesta.comsally@sesta.com 以及 sesta.com 域中的其他任何人。

使用此格式可授予或拒绝对整个用户域的访问  

@  

表示所有用户。  

@@{p|o|n}

 

表示日历的所有者:

  • @@p-仅限于主要所有者

  • @@o-包括主要所有者在内的全部所有者

  • @@n-非所有者

 

What

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

表 4-2 显示 Calendar Server ACE 中使用的 What 目标值。


表 4-2    访问控制项 (ACE) 字符串的 What 值 

说明

c
 

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

p
 

指定日历属性,如名称、说明、所有者等  

a
 

指定整个日历(全部),包括组件和属性  

How

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

表 4-3 显示 Calendar Server ACE 中使用的访问控制权限的 How 类型。


表 4-3    访问控制项 (ACE) 字符串的 How 类型 

类型

说明

r  

“读取”访问权限。  

w  

“写入”访问权限,包括添加新项目和修改现有项目的权限。  

d  

“删除”访问权限。  

s  

“安排”(邀请)访问权限。您可提出请求,接受回复以及采用其他 iTIP 日程安排交互操作。  

f  

仅限于“空闲/已占用”(可用性)访问权限。“空闲/已占用”访问权限是指用户可查看日历上已安排的时间,但不能查看事件的详细信息。已安排时间块的旁边只会显示“不可用”一词。在没有安排任何事件的时间块旁边将显示“空闲”一词。  

e  

以所有者的名义进行回复。此类型授予用户以日历主要所有者的名义接受或谢绝邀请的权限。此访问类型不需要明确授予,因为在将用户指定为日历的所有者(主要所有者以外的所有者)时也就暗示了此访问类型。  

i  

以所有者的名义进行邀请。此类型授予用户以日历主要所有者的名义对其他参与者受邀的组件进行创建和修改的权限。此访问类型不需要明确授予,因为在将用户指定为日历的所有者(主要所有者以外的所有者)时也就暗示了此访问类型。  

c  

以所有者的名义执行取消操作。此类型授予用户以日历主要所有者的名义对参与者受邀的组件执行取消操作的权限。此访问类型不需要明确授予,因为在将用户指定为日历的所有者(主要所有者以外的所有者)时也就暗示了此访问类型。  

Grant

Grant 元素指定要授予或拒绝对指定访问类型的访问权限,如 d(删除)或 r(读取)。

表 4-4 显示 Calendar Server ACE 中使用的 Grant 属性值。


表 4-4    访问控制项 (ACE) 字符串的 Grant 值 

说明

g  

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

d  

拒绝特定的访问控制权限  

ACE 示例

以下示例说明 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

将 ACE 置于 ACL 中

当 Calendar Server 读取 ACL 时,ACL 会使用第一个对目标授予或拒绝访问权限的 ACE。因此,ACL 的顺序相当重要,ACE 字符串的排序顺序应是影响范围小的 ACE 在前,影响范围大的 ACE 在后。

例如,假定在日历 jsmith:sports 的 ACL 中,第一个 ACE 是将读取访问权限授予所有用户。然后,Calendar Server 遇到的第二个 ACE 是拒绝 bjones 对此日历的读取访问权限。在这种情况下,Calendar Server 会授予 bjones 对该日历的读取访问权限,而忽略第二个 ACE,因为它与第一个 ACE 发生冲突。因此,为确保采用特定用户(如 bjones)的访问权限,bjones 的 ACE 应位于 ACL 中影响范围较大的项(如应用于所有日历用户的 ACE)之前。


访问控制配置参数

表 4-5 说明 ics.conf 文件中,由 Calendar Server 所使用的访问控制配置参数。有关更多信息,请参见第 8 章 “Calendar Server 配置”


表 4-5    访问控制配置参数 

参数

说明

calstore.calendar.default.acl  

指定用户创建日历时所使用的默认访问控制设置。默认值是:

"@@o^a^r^g;@@o^c^wdeic^g;@^a^fs^g;@^c^^g;@^p^r^g"  

calstore.calendar.owner.acl  

为日历所有者指定默认的访问控制设置。默认值是:

"@@o^a^rsf^g;@@o^c^wdeic^g"  

resource.default.acl  

指定创建资源日历时使用的默认访问控制设置。默认值是:

"@@o^a^r^g;@@o^c^wdeic^g;@^a^rsf^g"  


公用和私人事件及任务过滤器

在创建新的事件或任务时,用户可以指定该事件或任务是“公用”、“私人”还是“仅时间与日期”(机密)的:

  • 公用-有权读取用户日历的任何人都可以查看事件或任务。

  • 私人-只有日历所有者可以查看事件或任务。

  • 仅时间与日期(机密)-日历所有者可以查看事件或任务。其他有权读取日历的用户只能在日历上看到“未命名的事件”,并且该标题不是活动链接。

calstore.filterprivateevents 确定 Calendar Server 是否过滤(或识别)“私人”和“仅时间与日期”(机密)事件和任务。默认情况下,该参数会设置为“yes”。如果将 calstore.filterprivateevents 设置为“no”,则 Calendar Server 会将“私人”和“仅时间与日期”事件和任务视为“公用”事件和任务来处理。


访问控制命令行公用程序

Calendar Server 提供下表所示的命令行公用程序,使您能够设置或修改 ACL 进行访问控制:

表 4-6    访问控制命令行公用程序

公用程序

说明

cscal  

使用带 -a 选项的 createmodify 命令,可为特定用户的日历设置 ACL。  

csresource  

使用带 -a 选项的 create 命令,可为资源日历的资源(如会议室或设备)设置 ACL。  

csuser  

使用带 -a 选项的 csuser 公用程序,可管理存储在 LDAP 目录服务器和日历数据库中的日历用户信息。  


上一章     目录     索引     下一章     
版权所有 2002 Sun Microsystems, Inc. 全权所有。

更新日期 2002 年 8 月 30 日