因特网和内部网客户机的验证和认证

在设置名称和密码访问并为因特网/内部网用户创建“个人”文档之后,在用户尝试执行某些访问权被限制执行的操作时,或者在服务器上不允许匿名访问时,Domino® 将对用户进行认证。

例如,当用户试图打开某个数据库,并且此数据库的 ACL 将“无访问”设为“-Default-”时,Domino® 会要求用户提供有效的用户名和密码。只有当用户提供的名称和密码与存储在用户的“个人”文档(或者在 LDAP 目录中,根据 LDAP 目录而非“个人”记录认证某些用户)中的名称和密码匹配,并且数据库 ACL 为该用户提供了访问权时,认证才会成功。匿名用户不经过认证。

可以使用 TCP/IP 和 SSL 进行名称和密码访问以及匿名访问。

这一部分也适用于访问已启用会话认证的 Domino® Web 服务器的 Web 客户机。

注: Domino® Web Server 应用程序编程接口 (DSAPI) 是 C API,您可以用它编写自己对 Domino® Web Server 的扩展。您可以通过这些扩展或“过滤器”定制 Web 用户的认证。有关 DSAPI 的更多信息,请参阅用于 Domino®Notes®Lotus® C API 工具包。

校验和认证过程

以下示例描述客户机 (Andrew) 如何使用 TCP/IP 连接到服务器 (Mail-E)。

  1. Andrew 试图访问 Mail-E 上的数据库。
  2. 服务器检查“因特网站点”文档(或“服务器”文档),以确定是否对 TCP/IP 启用了匿名访问。如果是,然后:
    1. 服务器将检查此数据库的 ACL 中是否包含名为“匿名”的项目。如果存在“匿名”且“匿名”的访问级别为“读者”或更高,则 Andrew 将匿名访问数据库。
    2. 如果访问控制列表中不包含名为“匿名”的项目,那么服务器将检查此数据库 ACL 的“-Default-”访问级别。如果“-Default-”访问权为“读者”或更高,那么 Andrew 将使用“-Default-”访问级别匿名访问此数据库。
  3. 如果对此协议禁用匿名访问,或者数据库 ACL 不允许匿名访问,那么服务器将检查“因特网站点”(或“服务器”文档),以确定是否对 TCP/IP 启用了名称和密码访问权。如果启用了名称和密码访问权,那么:
    1. 服务器将提示 Andrew 输入其用户名和密码。
    2. 服务器查找 Andrew 在浏览器中输入的用户名。服务器将使用较多名称变化,较低安全性较少名称变化,较高安全性查找机制,在所有的目录中搜索用户所输入的名称。
    3. 如果找到与 Andrew 所输入的用户名相匹配的名称,且 Andrew 输入的密码与其“个人”文档的“因特网密码”字段中的密码相匹配,则 Andrew 将通过认证。服务器将检查主 Domino® 目录以查找“个人”文档。如果服务器配置为搜索辅助 Domino® 目录或 LDAP 目录,那么它还将检查辅助 Domino® 目录和 LDAP 目录。
      注: Domino® 认证因特网用户时使用专有名称 (DN),即显示在“个人”文档的“全名”字段中的名。此名称应当用在组、授权的服务器管理、数据库 ACL 以及文件保护文档所对应的项目中。

    对于不具有“个人”记录,而是在辅助 LDAP 目录中拥有他们的记录的用户而言,其名称可能出现在 ACL 中。要允许对用户进行访问,ACL 应该包括用户的 LDAP 名称(除非“目录帮助”将用户名映射到相应的 Domino® 名称,在这种情况下,Domino® DN 应该出现在 ACL 中)。

    1. 接下来,服务器编译“grouplist”,其中包含了 Andrew 的专有名称,以及该服务器上的任何通配符项目和包含 Andrew 的任何组。
    2. 然后服务器将检查数据库的 ACL,以确定 Andrew 的名称是否在 ACL 中明确列出,或者与其名称的任何 grouplist 项目是否出现在 ACL 中。
    3. 如果 Andrew 的专有名称或其所属的任何组名称与 ACL 中的项目匹配,则 Andrew 将获得使用 ACL 中为该项目指定的访问级别访问数据库的权限。否则,他将被拒绝访问。