ACL 中可接受的条目

有关在访问控制表 (ACL) 中生成的任何条目的详细信息,请参阅本主题。

ACL 中可接受的条目包括:

  • 通配符条目
  • 用户、服务器及组名(包括因特网客户机的用户和组名)
  • LDAP 用户
  • 匿名,用于匿名因特网用户访问和匿名 HCL Notes®用户访问
  • 数据库副本标识

每个 ACL 条目最多可以有 255 个字符。

使用分层名称格式在 ACL 中添加名称可以提高安全性。例如:

Sandra E Smith/West/Renovations/US
Randi Bowker/Sales/FactoryCo

通配符条目

要允许对数据库进行一般的访问,可以在 ACL 中输入带有通配符 (*) 的分层名称。可以在公共名称和组织单元组件中使用通配符。

尚未在 ACL 中指定用户或组名条目,并且其分层名称中包含带通配符组件的用户和/或服务器,将获得匹配的每个通配符条目指定的最高访问级别。

下面是一个通配符格式的 ACL 条目:

*/Illustration/Production/Renovations/US

该条目将所选访问级别授予:

Mary Tsen/Illustration/Production/Renovations/US
Michael Bowling/Illustration/Production/Renovations/US

而不将所选访问级别授予:

Sandy Braun/Documentation/Production/Renovations/US
Alan Nelson/Renovations/US

只能在 ACL 条目最左边的部分使用一个通配符。例如,不能使用如下所示的条目:

*/Illustration/*/Renovations/US 

来表示这些条目:

Michael Bowling/Illustration/West/Renovations/US
Karen Richards/Illustration/East/Renovations/US

当使用带通配符的 ACL 条目时,应将用户类型设置为“未指定”、“混合组”或“个人组”。

用户名

对于其 Notes® 用户标识经过验证的任何个人的名称,或使用名称和密码或 SSL 客户机认证进行认证的因特网用户的名称,都可以添加到 ACL 中。

  • 对于 Notes® 用户,为每个用户输入完整的分层名称;例如,John Smith/Sales/Renovations,而无需考虑用户与存储数据库的服务器是否在同一分层组织中。
  • 对于因特网用户,输入作为“个人”文档的“用户名”字段中第一个条目的名称。
    注: 可以在用户名字段中输入许多别名并且可以使用这些别名进行认证,但是,只能使用列表中的第一个名称来进行安全授权检查。这是应该在所有 HCL Domino®数据库 ACL、“服务器”文档中的安全性设置以及 .ACL 文件中使用的名称。

服务器名称

可以向 ACL 中添加服务器的名称以控制数据库从数据库副本中接收更改。为了保证更高的安全性,应使用服务器完整的分层名称;例如,Server1/Sales/Renovations,而无需考虑添加的服务器的名称与存储数据库的服务器是否在不同的分层组织中。

组名

可以向 ACL 中添加组名(例如,Training)来表示需要相同访问权的多个用户或服务器。用户必须以主分层名称在组中列出。组中也可以包含使用通配符的条目。可以在 ACL 中使用组名之前,必须先在下列任一目录中创建组:HCL Domino®目录、辅助 Domino® 目录,或者外部 LDAP 目录(在目录辅助数据库中已将其配置用于组授权)。

注: 确保您在 ACL 中使用的所有组名都遵循为创建它们而指定的指南。使用错误的名称会引起访问问题。
提示: 数据库的管理者应使用单独的名称而不是组名。这样,当用户选择创建 > 其他 > 特殊/给数据库管理者发送消息时,就会知道收件人是谁。

组提供了管理数据库 ACL 的便捷方法。在 ACL 中使用组有如下优点:

  • 无需向 ACL 中添加很长的个人名称列表,而只需添加一个组名。如果某个组不止列在一个 ACL 中,那么只需修改 Domino® 目录或 LDAP 目录中的组文档,而无需在多个数据库中添加和删除个人名称。
  • 如果需要更改几个用户或服务器的访问级别,可以只对整个组进行一次更改。
  • 使用组名来反映组成员的职责,或者部门或公司的组织。
提示: 还可以使用组授予某些用户对数据库的控制访问权,而无需授予他们“管理者”或“设计者”访问权。例如,可以在 Domino® 目录中为需要的每个数据库访问级别创建组、将组添加到 ACL 中,并允许特定的用户拥有组。这些用户可以修改组,但是不能修改数据库的设计。

终止组

当员工从您的组织离职时,应该从 Domino® 目录的所有组里除去他们的姓名并将其添加到“仅拒绝列表”组中,以拒绝他们对服务器的访问。“服务器”文档中的“拒绝访问”列表中包含了不再有权访问 Domino® 服务器的 Notes® 用户名和组名。同时,对于已经离职的员工,必须确保在组织里所有数据库的 ACL 中除去该雇员的姓名。从 Domino® 目录中删除某人时,如果已经创建拒绝访问组,那么可以选择将已删除的用户添加到拒绝访问组选项。(如果此类组不存在,将显示一个对话框,其中显示未选择拒绝访问组或拒绝访问组不可用。)

LDAP 用户

可以使用辅助 LDAP 目录来认证因特网用户。然后将这些因特网用户的姓名添加到数据库的 ACL,中以控制这些用户对数据库的访问。

此外,还可以在包含这些因特网用户名的辅助 LDAP 目录中创建组,然后将这些组作为条目添加到 Notes® 数据库的 ACL 中。例如,某个因特网用户可能尝试访问 Domino® Web 服务器上的数据库。如果 Web 服务器认证了此用户,并且 ACL 中包含名为“Web”的组,那么服务器除在主 Domino® 目录中查找因特网用户名以外,还能够在位于外部 LDAP 目录的组“Web”中查找此因特网用户名条目。请注意,要使这种情况成为可能,Web 服务器上的“目录辅助”数据库必须包含针对于 LDAP 目录的一个“LDAP 目录辅助”文档,并且启用了“组扩展”选项。您还可以使用此功能来查找存储在外部 LDAP 目录组中的 Notes® 用户的名称以用于数据库 ACL 检查。

将 LDAP 目录用户或组的名称添加到数据库 ACL 中时,对名称使用 LDAP 格式,但应使用正斜杠 (/) 而不是逗号 (,) 作为定界符。例如,如果 LDAP 目录中的用户名如下所示:

uid=Sandra Smith,o=Renovations,c=US

应在数据库的 ACL 中输入以下内容:

uid=Sandra Smith/o=Renovations/c=US

如果要在 ACL 中输入非层次的 LDAP 目录组的名称,只需输入属性值而不是属性名。例如,如果 LDAP 组名的非分层名称如下所示:

cn=managers

则只需在 ACL 中输入以下内容:

managers

如果要输入层次组名,请在 ACL 条目中包括 LDAP 属性名。例如,如果组的分层名称如下所示:

cn=managers,o=acme

则在 ACL 输入以下内容:

cn=managers/o=acme

请注意,如果指定的属性名与 Notes® 中使用的属性名 (cn、ou、o 和 c) 完全相对应,那么 ACL 不会显示这些属性。

例如,如果在 ACL 中输入以下名称:

cn=Sandra Smith/ou=West/o=Renovations/c=US

由于属性与 Notes® 使用的属性完全相对应,因此名称在 ACL 中显示如下:

Sandra Smith/West/Renovations/US

LDAP 用户可接受的 ACL 条目

1. LDAP 用户可接受的 ACL 条目

LDAP DN

ACL 条目

cn=Scott Davidson+ id=1234, ou=Sales,o=Renovations
cn=Scott Davidson+id=1234/ou=Sales/o=Renovations
cn=Scott Davidson,o=Renovations\, Inc
cn=Scott Davidson/o=Renovations, Inc
注: 如果 LDAP 名称中包含反斜杠,并且反斜杠后跟着另外一个字符,请在数据库的 ACL 中指定该名称时,应省略反斜杠。
uid=smd12345,dc=Renovations,dc=Com
uid=smd12345/dc=Renovations/dc=Com
uid=Sandra Smith,o=Renovations,c=US
uid=Sandra Smith/o=Renovations/c=US

匿名

任何没有首先进行认证而访问服务器的用户或服务器都被该服务器认为是“匿名”。匿名数据库访问权是授予因特网用户以及没有向服务器进行认证的 Notes® 用户。

匿名访问常在一般公众可以使用的服务器上的数据库中使用。在访问控制表中输入名称 Anonymous 并分配相应的访问级别,即可控制授予匿名用户或服务器的数据库访问级别。通常,可以为匿名用户分配对数据库具有“读者”访问权。

所有数据库模板 (.NTF) 文件中用于 Anonymous 的缺省 ACL 条目的访问级别均为“读者”,这样当用户或服务器根据该模板创建或刷新 .NSF 文件时,可以成功地读取模板。

数据库 (.NSF) 文件中用于 Anonymous 的缺省 ACL 条目为“无访问权”。

2. 匿名访问数据库的条件

对因特网协议启用的匿名访问

对因特网协议禁用的匿名访问

数据库 ACL 中启用的匿名访问

用户以“匿名”条目的访问级别访问数据库。例如,如果“匿名”的访问权设置为“只读”,那么访问该数据库的匿名用户将被授予“只读”访问权。

用户尝试访问服务器上的任何资源时都需要进行认证。如果数据库中未列出用户(既未通过组条目或通配符条目列出,也未明确列出),那么用户将以 -Default- 条目的访问级别访问数据库。

数据库 ACL 中被授予“无访问权”的匿名

如果已授予“匿名”“无访问权”(并且未启用读/写公用文档特权),那么不允许匿名用户访问数据库,并且会提示匿名用户进行认证。认证期间,会在数据库 ACL 检查该名称,以确定应授予用户的数据库访问级别。

在数据库 ACL 中没有列出“匿名”

匿名用户以 -Default- 条目的访问级别访问数据库。例如,如果将 -Default- 的访问权设置为“读者”,并且 ACL 中没有“匿名”条目,那么访问数据库的匿名用户将被授予“读者”访问权。

当匿名用户(无论是以“匿名”条目还是以 -Default- 条目的访问权访问数据库的用户)想在数据库中进行一些其访问级别所不允许的操作时,服务器将会要求他们进行认证。例如,如果“匿名”设置为“读者”,当某匿名用户尝试新建一个文档时,服务器将会提示该用户使用名称和密码进行认证。

提示: 如果希望所有用户都针对数据库进行认证,必须确保数据库 ACL 中的“匿名”具有“无访问权”访问级别,并且确保未启用“读公用文档”和“写公用文档”。应将因特网用户名添加到 ACL 中并授予所希望的访问级别。

Domino® 服务器仅使用组名 Anonymous 进行访问控制检查。例如,如果“匿名”在数据库 ACL 中具有“作者”访问权,那么用户的真实姓名会出现在这些文档的“作者”字段中。在文档的“作者”字段中,Domino® 服务器只能显示匿名 Notes® 用户的真实姓名,而不能显示匿名因特网用户的真实姓名。不管是否使用了匿名访问,“作者”字段都不具有安全功能。如果为了安全起见需要认证作者名的有效性,那么应对文档进行签名。

副本标识

要允许一个数据库中的代理程序使用 @DbColumn 或 @DbLookup 检索另一个数据库中的数据,应在要检索的数据所在的数据库的 ACL 中输入包含该代理程序的数据库的副本标识。包含代理程序的数据库对要检索数据所在的数据库必须至少具有“读者”访问权。这两个数据库还必须在同一个服务器上。例如,数据库 ACL 中的副本标识为 85255B42:005A8fA4。可以用大写或小写字母输入副本标识,但是不要将其用引号括起来。

如果没有向访问控制表中添加副本标识,但数据库 -Default- 条目的访问级别为“读者”或更高级别时,那么其他数据库仍然可以检索数据。

ACL 条目的评估顺序

Notes 以特定的顺序评估 ACL 条目以决定应授予尝试访问数据库的认证用户什么样的访问级别。如果用户不能通过服务器的认证,而服务器又允许用户访问,那么即使用户名为“Anonymous”,系统仍将评估用户的访问权。

  • ACL 首先检查用户名,以查看其是否与 ACL 中确定的某个条目匹配。ACL 检查匹配的所有用户名。例如,Sandra E Smith/West/Renovations 应与 Sandra E Smith/West/Renovations/US 和 Sandra E Smith 条目匹配。如果某个人的两个不同条目具有不同的访问级别(例如,由不同的管理员在不同的时间授予),那么该用户尝试访问数据库时将被授予最高的访问级别,以及该用户的两个 ACL 条目的访问权组合。
    注: 如果仅在 ACL 中输入公共名称(如 Sandra E Smith),那么仅当用户名和数据库服务器在同一域层次中时该条目才会进行匹配。例如,如果用户为 Sandra E Smith,其分层名称为 Sandra E Smith/West/Renovations,并且数据库服务器为 Manufacturing/FactoryCo,那么 Sandra E Smith 条目不会在 ACL 中获得对服务器 Manufacturing/FactoryCo 的正确访问级别。要使用户获得其他域服务器上 ACL 中正确的访问级别,必须按照完整的分层格式输入用户名。
  • 如果没有找到用户名匹配项,ACL 将检查是否有组名条目与其匹配。如果尝试访问数据库的用户恰好与多个组条目匹配 - 例如,如果用户是 Sales 的成员,而 Sales 有两个组条目,即 Renovations Sales 和 Sales Managers - 那么该用户将被授予最高访问级别,同时会被授予该组在 ACL 中两个条目访问权的组合。
    注: 如果用户与 ACL 中的某个确切条目匹配,并且还是 ACL 中列出的某个组的成员,那么该用户将始终被授予该确切条目的访问级别,即使组的访问级别可能更高。
  • 如果没有找到组名匹配项,ACL 将检查是否有通配符条目与其匹配。如果尝试访问数据库的用户恰好与多个通配符条目匹配,该用户将被授予最高访问级别,而其访问权将是所有匹配的通配符条目访问权的组合。
  • 如果组条目和通配符条目都应用于尝试访问数据库的用户,那么此用户具有分配给该组条目的访问权。例如,如果组 Sales 具有“读者”访问权,而通配符条目 */West/Renovations 具有“管理者”访问权,且这两个条目都应用于某个用户,那么此用户对数据库具有“读者”访问权。
  • 最后,如果数据库 ACL 条目中找不到匹配项,那么将授予该用户为 -Default- 条目定义的访问级别。