Calendar Server 支持托管(虚拟)域。在托管域安装中,所有域共享同一个 Calendar Server 实例,从而允许在同一台服务器上存在多个域。每个域都定义一个命名空间,其中的所有用户、组和资源都是唯一的。另外,每个域都有一组专门设置的属性和首选项。
本章介绍以下主题:
《Sun Java System Communications Services 6 2005Q4 Deployment Planning Guide》介绍了准备安装 Calendar Server 以使用托管域的所有必要步骤。
如果您的站点当前配置了多个 Calendar Server 实例或配置了受限制的虚拟域模式,请与 Sun Microsystems 销售代表联系,以确定您的迁移要求。
本节提供了托管域的概述,包括以下内容:
在托管域安装中,LDAP 目录被组织成各不相同、互不交叉的多个部分,每一部分都代表域名系统 (DNS) 中的一个域。用户、组和资源 uid 在每个域中都是唯一的。例如,每个域中只能有一个 uid 为 jdoe 的用户。每个标识名 (DN) 说明一个域的根。
Calendar Server 支持托管域的以下 LDAP 目录模式版本:
Sun LDAP Schema 2(兼容或本机模式)
运行 Directory Server 设置脚本 (comm_dssetup.pl) 时,可以选择 LDAP Schema 1 或 LDAP Schema 2。请注意以下事项:
首次安装—如果是首次在站点上安装 Calendar Server 6 2005Q4,请使用 LDAP Schema 2。
升级—如果是从 Calendar Server 版本 5 升级,请根据下面的说明使用相应版本的模式:
如果要使用 Access Manager 功能(例如单点登录 [SSO]),或者要使用 Delegated Administrator,请选择 LDAP Schema 2。
如果没有托管域,不需要使用 Access Manager 功能,或者不需要使用 Delegated Administrator 来置备用户,则可以使用任一版本的模式。但是,如果需要,请使用 LDAP Schema 2。
下图显示了使用 Sun LDAP Schema 2 的托管域安装的 LDAP 目录结构。
LDAP Schema 2 使用平面的 LDAP 目录结构,即所有域均在同一级上,没有嵌套。对于托管域安装,第一级条目(如图中 varriusDomain、sestaDomain 和 siroeDomain 所示)在目录结构中必须平行。不能嵌套。
如果要使用 Access Manager 功能(如单点登录 [SSO]),或使用 Delegated Administrator 置备用户,则需要使用 Schema 2。然而存在使用两树模式(同时使用 DC 树和结构树)的混合情况,这与 Schema 1 非常类似,但使用的是 Schema 2 对象类和属性。这是 Schema 2 兼容模式,在配置程序 (csconfigurator.sh) 中称之为 Schema 1.5。
下图显示了使用 Sun LDAP Schema 1 的托管域安装的 LDAP 目录结构示例。
此结构包含两个域管理树:DC 树和结构树 (OSI)
DC 树
结构 (OSI) 树
DC 树(节点)与 DNS 类似,它用于确定给定域名的域条目。LDAP 属性 inetdomainbasedn 指向基本 DN,基本 DN 是结构树(节点)中域用户、资源和组的根。在每个域中,Calendar Server 用户、资源和组的标识符必须唯一。
如果您的早期的 LDAP 配置中未包含 DC 树,为了使用 Schema 1 模式或 Schema 2 兼容模式,您必须按设置托管域环境中的说明自己创建 DC 树节点。
在使用 LDAP Schema 1 的托管域安装中,目录搜索需要完成以下两个步骤才能找到一个条目:
在 DC 树中,搜索操作定位包含 DN 值的域条目,该条目指向结构树中域的基本 DN(inetDomainBaseDN 属性)。
在结构树中,搜索操作定位域条目,然后在该条目的基本 DN 中搜索域中的用户、资源或组。
对于托管域安装,每个用户的用户 ID (uid ) 在该域中必须唯一。需要使用以下格式登录 Calendar Server:
userid[@domain-name]
如果省略 domain-name,Calendar Server 将使用由 ics.conf 文件中的 service.defaultdomain 参数指定的默认域名。因此,如果要登录默认域,只需提供 userid 即可。
对于非托管域环境的安装,则 domain-name 不是必需的元素。即使指定了域名,也将被系统忽略。
如果启用了自动置备,则用户首次登录时,Calendar Server 将为用户创建一个默认日历。有关日历创建的信息,请参见第 15 章,管理日历。
登录权限取决于 icsStatus 或 icsAllowedServiceAccess 属性。有关更多信息,请参见LDAP 属性和 property 名。
默认情况下,用户只能在自己所属的域中搜索用户和组,以邀请他们加入事件。但如果满足以下条件,也可以进行交叉域搜索,以搜索不同域中的用户和组:
可以在 icsExtendedDomainPrefs 属性的 domainAccess 属性中为每个域指定一个访问控制列表 (ACL),以允许或拒绝从其他域中进行交叉搜索。这样,即可允许或拒绝从特定域或所有域中搜索某个域。
有关 domainAccess 的说明,请参见LDAP 属性和 property 名。有关 ACL 的常规信息,请参见访问控制列表 (ACL)。
每个域都可以指定其用户可以搜索的外部域。LDAP 属性 icsDomainNames 用于指定域用户在搜索用户和组时可以搜索的外部域(只要该外部域的 ACL 允许搜索)。
例如,如果 various.org 域的 icsDomainNames 列出了 sesta.com 和 siroe.com,那么 various.org 中的用户就可以在 sesta.com 和 siroe.com 中执行交叉域搜索。有关 icsDomainNames 的说明,请参见LDAP 属性和 property 名。
有关如何启用交叉域搜索的说明,请参见启用交叉搜索域。
Calendar Server 仍支持在非托管域(即,只有单个域)环境中运行。例如,如果已安装了现有 Calendar Server 版本 5 或更早的版本,则通过将 ics.conf 参数 service.virtualdomain.support 设置为 "no",您仍可以在单域环境中操作。另请参阅启用托管域。
但是,仍需要将旧版本的组件数据库迁移到当前版本中。有关迁移的信息,请参见第 4 章,数据库迁移实用程序。
本节包含了在 LDAP 中创建新托管域条目之前可能需要执行的基本任务。
运行数据库迁移实用程序。
如果要从 Calendar Server 版本 5 迁移,请确保尝试设置托管域之前已经运行 cs5migrate、csmig 和 csvdmig。可以从 Sun 的技术支持获得 cs5migrate 的最新版本。有关这些迁移实用程序的更多信息,请参见第 4 章,数据库迁移实用程序。
如果尚未运行这些数据库迁移实用程序,请运行 comm_dsseetup.pl。
该命令将使用支持托管域所需的参数来更新 ics.conf 文件。
编辑 ics.conf 文件以启用托管域。
下表列出并说明了 ics.conf 文件中用于支持托管域的配置参数。如果该表中列出的任一参数不在 ics.conf 文件中,请将该参数及其相关值添加到该文件中,然后重新启动 Calendar Server 以使这些值生效。
参数 |
说明 |
---|---|
启用 ("yes") 或禁用 ("no") 托管(虚拟)域模式支持。默认值为 "no"。 |
|
指定 LDAP 模式的版本:
|
|
service.dcroot |
如果 local.schemaversion="1",则指定 LDAP 目录中 DC 树的根后缀。 例如:"o=internet"。 在托管(虚拟)域模式下,Calendar Server 使用 service.dcroot 参数,而不是 local.ugldapbasedn 和 local.authldapbasedn 参数。 相反,在非托管(虚拟)域模式下,Calendar Server 使用 local.ugldapbasedn 和 local.authldapbasedn 参数,而不是 service.dcroot 参数。 |
如果 local.schemaversion="2",则指定包含所有域的根后缀。 例如:"o=sesta.com"。 |
|
指定此 Calendar Server 实例的默认域。用于在登录过程中没有提供域名的情况。 例如:"red.sesta.com"。 |
|
指定 Calendar Server 解析 "userid[login-separator ]domain" 时用于 login-separator 的分隔符字符串。Calendar Server 将依次尝试每一个分隔符。 默认值为 "@+"。 |
|
指定域管理员的用户 ID。 例如:DomainAdmin@sesta.com。 |
|
控制交叉域搜索:
|
|
指定域的语言。默认值为 "en"(英语)。 |
创建默认域条目。
对于 Schema 2,默认域由 Delegated Administrator 配置程序 (config-commda) 来创建。
对于 Schema 1,创建 DC 树的根后缀下的一个或多个级别的默认域(其中一个托管域),取决于 DC 树的结构。例如,如果根后缀为 o=internet,那么下一个级别的节点为 com,如Sun LDAP Schema 1中所示。但是,默认域将为更低级别的一个节点,例如 sesta.com。使用 csdomain 创建 DC 树节点,如以下示例所示:
csdomain -n o=com,dc=com,o=internet create comcsdomain -n o=sesta.com,dc=sesta,dc=com,o=internet create sesta.com
启用默认域条目的日历服务。
对于 Schema 1:使用 csattribute 将 icsCalendarDomain 对象类添加到 o=sesta.com 域条目。
对于 Schema 2:在配置 Delegated Administrator 之后,请修改默认域(由 Delegated Administrator 配置程序创建)以添加日历(和邮件)服务。在以下示例中,日历和邮件服务将被添加到托管域中:
commadmin domain modify -D admin -w passwd -d defaultdomain -S cal,mail
在系统上创建所需的托管域。
有关如何在 Schema 2 模式下添加托管域的说明,请参见创建新托管域。
要创建 Schema 1 托管域,请使用 csdomain create,如以下示例所示:
csdomain -n o=red.sesta.com,dc=red,dc=sesta,dc=com create red.sesta.com
启用新托管域的日历服务,如设置托管域环境中所述。
如果 calmaster 站点管理员用户尚不存在,则创建该用户。
对于 Schema 2,使用 commadmin user create 命令来创建 calmaster 用户,如以下示例所示:
commadmin user create -D admin -w passwd -F Calendar -L Administrator -l calmaster -W calmasterpasswd -d sesta.com -S cal
要使用 Delegated Administrator 控制台的“创新建用户”向导来创建 calmaster,请参见 Delegated Administrator 联机帮助。
对于 Schema 1,使用 csuser 在结构树上创建 calmaster 用户,如以下示例所示:
csuser o=sesta.com,o=rootsuffix -d sesta.com -g Calendar -s Administrator -ycalmasterpasswordcreate calmaster
如果从早期的非托管域环境 (Schema 1) 中 calmaster 站点管理员用户已经存在,则通过执行以下步骤将其移到默认域中:
执行现有 calmaster LDAP 条目的 LDAP 转储并将其保存在临时文件(例如 /tmp/calmaster.ldif)中。
使用 ldapdelete 删除结构树根后缀上的现有 calmaster LDAP 条目,如下所示:
#ldapdelete -D "cn=Directory Manager" -w password uid=calmaster,ou=People,o=rootsuffix
修改日历管理员的组条目(更新 uniqueMember 属性)以反映更改,如以下 LDIF 示例所示:
dn:cn=Calendar Administrators,ou=Groups,o=rootsuffix changetype:modifyreplace:uniqueMember uniqueMember:uid=calmaster,ou=People,o=sesta.com,o=rootsuffix |
不必将组条目移到托管域中。
更新所有的管理脚本,以使 WCAP 命令中的 calid 成为全限定名称。即,每个 calid 必须包含域名。例如:jsmith@sesta.com。
如果 Messaging Server 已经创建了托管域,则可以为 Schema 1 或 Schema 2 下的日历启用这些托管域。本节包含以下主题:
要为日历服务启用域,请将以下对象类和两个属性添加到要为日历服务启用的每个域的 LDAP 域条目中:
对象类:icsCalendarDomain。
属性:icsStatus。将值设为 "active"。
属性:icsExtendedDomainPrefs。将属性选项 domainAccess 的值设为要用于访问控制的 ACL。
有两种方法可以执行此操作:使用 csattribute add 命令或使用以下示例中所示的 ldapmodify:
dn:dc=sesta,dc=com,o=internet changetype:modify add:objectclass objectClass:icsCalendarDomain add:icsStatus icsStatus:active add:icsExtendedDomainPrefs icsExtendedDomainPrefs:domainAccess=@@d^a^slfrwd^g;anonymous^a^r^g;@^a^s^g |
如果已经将现有的 Messaging Server LDAP 条目迁移到 Schema 2(使用 commdirmig)中,或在 Schema 2 模式中首次创建 Messaging Server LDAP 条目,请使用以下步骤以启用日历服务:
使用带 -S 选项的 Delegated Administrator 实用程序命令 commadmin domain modify 将日历服务添加到每个域中。
或者,也可以使用 Delegated Administrator 控制台将包含日历服务的服务软件包分配到相应域中。要这样做时,请使用“结构列表”页上的“分配服务软件包”按钮。
使用带 -S 选项的 Delegated Administrator 实用程序命令 commadmin user modify 将日历服务添加到为日历启用的每个域中的每个用户。
或者,也可以使用 Delegated Administrator 控制台将包含日历服务的服务软件包指定到相应域中的每个用户。要这样做时,请使用每个相应结构中“用户列表”页上的“指定服务软件包”按钮。
有关 commadmin 命令,请参见《Sun Java System Communications Services 6 2005Q4 Delegated Administrator Guide》。
有关 Delegated Administrator 控制台的更多信息,请参见其联机帮助。
有关 commdirmig 的信息,请参见《Sun Java System Communications Services 6 2005Q4 Schema Migration Guide》。