级别: 初级 刘 庆宇, 软件工程师, IBM 张 洁姗, 软件工程师, IBM 罗 亚峰, 软件工程师, IBM
2009 年 11 月 13 日 Notes 共享登录(Notes Shared Login)是 Lotus Domino/Notes 8.5 引入的一个新的安全特性,它允许用户登录 Windows 系统后,不输入密码就能够直接启动 Notes。同以前版本的客户端一次登录(Notes Single Logon)的最大不同是:Notes 共享登录不需要用户将 Notes ID 密码和 Windows 操作系统密码进行同步,用户可以在随意更改 Windows 操作系统密码的情况下不提供 Notes ID 密码来登录 Lotus Notes。本文首先介绍了 Lotus Notes 共享登录的原理,并同 Notes 客户端一次登录进行细致的比较。然后通过一个具体实例介绍了 Notes 共享登录相关配置,另外还介绍了 Notes 共享登录用户如何利用 ID Vault 来简化 ID 管理流程。
Notes 共享登录的工作原理及其优势
Notes 共享登录简称 NSL,是 Domino/Notes 8.5 引入的一个新的安全特性,它实现了省略输入 Notes 密码,简化了 Notes Client 用户操作,Lotus Domino 管理员对用户 ID 文件的管理也更为方便。
在 Lotus Notes 8.0 及以前版本中,Notes Single logon(Notes 一次登录)机制也允许用户不输入密码就能够直接启动 Notes。与 NSL 不同的是,Notes 一次登录必须要求 Notes 用户的 ID 文件密码和 Windows 密码保持同步,而使用 NSL 的 ID 文件并没有密码,改为使用 Windows 自带的安全机制 DPAPI(Windows Data Protection API)对 ID 文件进行加密和解密。DPAPI 加密是一种由 Windows 操作系统提供的、不需要其他额外库支持的加密方式。从逻辑上,DPAPI 使用操作系统用户的密码进行加密,所以 Notes 用户 ID 文件的密码将根据操作系统的用户信息进行加密,只有当相应的操作系统用户成功登录到操作系统后,ID 文件才会被解密。关于 DPAPI 的详细介绍,请参阅 MSDN 文章:http://msdn.microsoft.com/en-us/library/ms995355.aspx。
因为采用了 Windows 操作系统共享登录方式,Lotus Notes 用户不需要在登录 Lotus Notes 客户端时再次输入 ID 文件密码。所以,为了保证 Notes 用户数据的安全,设置 Windows 操作系统用户的密码是十分必要的。
表 1 列出了 Notes 一次登录和 Notes 共享登录的主要不同之处。NSL 的最大优势在于不再需要 Notes 密码和 Windows 密码的同步。在 Notes 8.5 以前的版本中,当 Notes 密码或者 Windows 密码过期时,为了实现 Notes 一次登录,Notes 用户必须修改 Windows 密码或者 Notes 密码来保持两者密码相同。而在 Notes 8.5 中,因为采用了 DPAPI 加密技术,用户无需再担心 Notes 密码和 Windows 密码同步的问题,不论何时修改 Windows 密码也不会影响 NSL 的使用。而且,因为 NSL 去掉了 Notes ID 文件的密码,自然也就不存在 Notes 密码的过期和忘记密码的问题,不但方便了用户,同时也方便了管理员对 ID 文件的管理。 表 1. Notes 一次登录和 Notes 共享登录的主要区别
|
比较项目
|
Notes Single Logon (R8)
|
NSL (ND8.5)
| | 实现方法
|
使用 Windows service provider framework 的服务
|
使用 Windows Data Protection API 对 ID 文件进行加密和解密
| |
是否为默认安装的组件
|
可选择安装的组件,默认不安装
|
默认安装的组件
| |
如何启用
|
只能通过客户端 User Security dialog 启用 / 禁用
|
管理员通过 policies/settings、用户通过 User Security dialog 启用 / 禁用
| |
是否需要 Notes 密码和 Windows 密码保持同步
|
是
|
否
| |
Notes 密码是否会过期
|
是
|
否
| |
用户 ID 安全性
|
被盗取了 ID 密码,用户 ID 可以在其他机器上使用
|
加密的 ID 文件无法在其他机器上使用,减少了被盗用的可能
|
Notes 共享登录的相关设置
启用 NSL,对环境有以下要求:
- 服务器和客户端已经安装了 Notes/Domino 8.5 环境。
- 客户端没有安装,或已经卸载了 Notes 一次登录组件。这两种用户安全机制彼此冲突,如果客户端安装了 Notes 一次登录的相关组件,就无法启用 NSL 了。
- 只有 Windows2000 及以上版本的 Windows 操作系统支持 NSL。这主要是因为 DPAPI 只支持 Windows2000 及以上版本的 Windows 操作系统。
下面,让我们通过一个实例来了解 NSL 的相关配置。
NSL 相关组件虽然是默认安装的,但在初始状态下,用户并不能使用这个功能。要使用户能够使用 NSL 这个新特性,需要 Lotus Domino 管理员给用户分配启用 NSL 的策略(Policy)文档。管理员通过策略,可以设置让用户能自己选择是否使用 NSL,也可以强制用户使用 NSL,或禁止用户使用 NSL。
Lotus Domino 管理员的相关设置
管理员为用户启用 NSL 的步骤如下:
创建安全性设置文件(Security Setting Document)
在 Domino Administrator 中,管理员在用户和组(People & Groups)页面中选择设置(Settings)→添加设置(Add Settings)→安全性(Security)→密码管理(Password Management)→ Notes 共享登录(Notes Shared Login)。
如图 1 中所示,管理员可以按需要修改画面上方“Notes Shared Login”部分几个项目的设置。对应的功能和选项请参考表 2。
图 1. NSL 安全设置选项
表 2. NSL 功能和选项参考表
|
功能
|
选项
| |
强制要求用户使用 NSL
|
· Enable Notes shared login with the operating system: "Yes"
· How to apply this setting: "Set value whenever modified"
· Allow User Changes: "No"
| |
将用户使用 NSL 设置为初始值,允许用户在客户端选择使用或者不使用
|
· Enable Notes shared login with the operating system: "Yes"
· How to apply this setting: "Set initial value"
· Allow User Changes: "Yes"
| |
将用户不使用 NSL 设置为初始值,允许用户在客户端选择使用或者不使用
|
· Enable Notes shared login with the operating system: "No"
· How to apply this setting: "Set initial value"
· Allow User Changes: "Yes"
|
同时管理员还可以设置当客户端 NSL 的启用 / 禁用状态变化时,对客户端用户的提示信息。如图 1 中所示,“Activation Notification”即激活通知,“Deactivate Notification”则是停用通知。提示信息的设置可以参考表 3。 表 3.NSL 通知设置参考表
|
功能
|
选项
| |
在弹出窗口中显示系统消息
|
系统对话框(System dialog)
| |
只在状态栏,启动窗口和日志文件(log.nsf)中显示系统消息
|
不通知(No notification ),此为默认设置
| |
在弹出窗口显示系统消息,并在其后显示不超过 256 字符的来自管理员的定制消息(Additional information from your administrator)。如果定制消息中包含网页地址,用户可以拷贝这个地址到他的浏览器中。
|
定制消息对话框(Custom message text)
|
另外,在密码管理(Password Management)子页面中,需要确认“检查 Notes 标识文件的密码(Check password on Notes id file)”被设置为 NO,如图 2 所示。因为启用了 NSL 的用户 ID 文件中没有密码了,NSL 也不支持对 Notes ID 文件的密码检查。
图 2. 密码管理安全设置
2. 创建策略文档并分配给用户
管理员需要创建一个策略,并加载刚才配置的安全性设置文件。策略类型(Policy type)可以是独立策略(Explicit),也可以是组织策略(Organizational)。
如果是独立策略,就需要手动分配给用户。选择人员(People)→打开用户的个人文档(Person document)→管理(Administration)页,如图 3 所示,把新配置的策略添加在“分配的策略(Assigned policy)”中。
图 3. 用户个人文档
如果是组织策略,这个策略对所有符合条件的组织成员生效,无需再手动分配。
至此,管理员为用户开启 NSL 的设置就完成了。如果管理员要使某个用户停止使用 NSL,可以通过修改安全性设置文件中相关项目的值禁用 NSL,也可以从用户个人文档中删除启用了 NSL 的策略。
Notes Client 的相关设置
如果管理员为某个用户分配了这样一个策略:将使用 NSL 设置为初始值,并且允许用户修改(具体设置请参考表 2.),当用户登录客户端,输入 Notes 密码并连接到 Domino 服务器后,就会看到管理员设置的激活通知等提示信息,提醒用户 NSL 已经启用,下次登录将不需要提供 Notes 密码。也就是说,NSL 在当前计算机上,对当前登录的 Notes 用户 ID 生效了。
此时,用户查看文件→安全→用户安全对话框(User Security dialog)也不再需要输入 Notes 密码,而将被要求输入当前登录系统的 Windows 用户密码。如图 4 所示,用户安全对话框将不再显示同 Notes 密码相关的信息。
图 4. 默认启用了 NSL 的用户安全对话框
请注意图 4 中“Log in to Notes using your operating system login“这一项。对于已经在客户端使用 NSL 的用户,这个项目就是被选中的状态。如果用户策略强制用户使用 NSL,这个项目就是被选中且不可修改的状态。
如果用户被分配的策略是:初始值设置为不使用 NSL,并且允许用户修改,那么用户登录和查看用户对话框时仍需输入 Notes ID 密码。用户安全对话框将如图 5 所示。
图 5. 默认不启用 NSL 的用户安全对话框
用户想要在客户端使用 NSL,就选中“Log in to Notes using your operating system login“这个项目,想停用 NSL 的话只需要把这个项目勾掉就可以了。当用户在客户端改变了 NSL 启用 / 禁用的状态,也同样会看到管理员设置的激活通知或停用通知等提示信息。
复制 ID 文件
如果用户已经在某台计算机上使用了 NSL,对应的 ID 文件就会变为通过 Windows 提供的 DPAPI 来加密和解密,ID 文件本身也被改动了,直接拷贝这个用户文件到另外的计算机上,Notes Client 将不能解密它。
如果用户想在另外一台机器上使用这个 ID 文件,就需要执行一个特殊的操作来复制出带有密码保护的 ID 副本。具体步骤如下:
- 选择菜单文件→安全→用户安全。
- 输入 Windows 密码并单击确定。
- 对于使用 NSL 的用户,用户安全对话框将显示如图 4。单击 Copy ID 按钮。
- 根据对话框提示,输入副本的文件名和保存路径,注意文件名要包含扩展名“.id”。
- 根据提示,为 ID 副本设置密码。请注意,用户需要记住这个密码,以便能在另一台计算机上使用这个副本。
- 阅读提示信息并单击确定。
现在,就可以把新生成的 ID 文件副本拷贝到另外的计算机上使用了,复制出的 ID 文件副本是用 Notes 密码加密和解密的。和未使用 NSL 的 ID 文件一样,这个副本可以直接拷贝到另外的计算机上使用,密码即为复制时设定的密码。当用户用这个副本在另外的计算机上登录 Notes Client 时,系统环境和对此用户生效的策略将决定在这台计算机上是否会启用 NSL。
使用 ID Vault 进行 ID 管理
启用了 NSL 的用户可以使用 ID Vault 来进行 ID 管理。ID Vault 是 Domino 8.5 引入的一个新的安全特性,旨在帮助管理员简化管理流程,更有效地管理用户 ID 文件,更容易地解决用户丢失 ID 文件或忘记密码的问题。
ID Vault 使用服务器上的数据库保存用户 ID 文件加密备份,当用户成功启用 Vault 后,客户端的 ID 文件就被上传到 Vault 中进行保存,此后客户端的 ID 文件和 Vault 中的 ID 文件就会自动保持同步。当用户忘记密码时,Domino 管理员通过 Admin 客户端将用户密码重置,或者用户自助式地重置密码。用户输入重置后的密码连接到服务器,ID 文件就会自动从 Vault 中下载到客户端,而不需要手动将 ID 文件拷贝到客户端。用户 ID 文件丢失或损坏的情况则更简单,用户登录时输入用户密码,ID 文件就会自动从 Vault 下载到客户端。
启用 NSL 后,客户端使用 Windows 自带的安全机制 DPAPI 对用户 ID 文件进行加密和解密,ID 文件并不包含 Notes 密码信息。因此管理员不需要再管理 Notes 密码,也不需要为忘记密码的用户提供帮助。但是启用了 NSL 的用户仍可以使用 Vault 来保存 ID 文件,以便当用户 ID 文件丢失或损坏时,可以迅速地从 Vault 中恢复 ID 文件。具体的恢复过程取决于用户的环境,下面就按照不同的用户环境分别进行介绍 :
- 用户先启用 Vault,再启用 NSL,用户 ID 文件丢失时的恢复步骤
当用户先启用 Vault 再启用 NSL 时,Vault 中记录的是启用 NSL 之前的密码。当用户的 ID 文件丢失时,用户使用启用 NSL 之前的密码从 Vault 中下载 ID 文件到本地,之后 NSL 会自动重新保护本地 ID 文件。
- 用户启用 Vault 后在 Windows 客户端上启用了 NSL,之后在另外一台 Linux 客户端上修改了 ID 密码,Windows 客户端上 ID 文件丢失时的恢复步骤
用户在 Windows 客户端上启用 NSL 后,Vault 中记录的是启用 NSL 之前的密码。但是当用户在 Linux 客户端上修改 Notes 密码之后,Vault 则变成记录修改后的密码。当 Windows 客户端上的 ID 文件丢失时,用户需要使用修改后的密码从 Vault 中下载 ID 文件到本地,之后 NSL 会自动重新保护本地 ID 文件。
- 用户先启用 NSL,再启用 Vault,用户 ID 文件丢失时的恢复步骤
用户先启用 NSL 再启用 Vault 时,Vault 中记录的用户 ID 文件并没有密码信息,当用户的 ID 文件丢失时,需要管理员先重置 Vault 中的用户 ID 密码。当用户从客户端启动 Notes 时,在密码提示窗口输入新设置的 ID 密码即可将 ID 文件从 Vault 中下载到本地,之后 NSL 会自动重新保护本地 ID 文件。
Notes 共享登录的局限
- NSL 不支持以下形式的 Notes ID 文件:
- 在不运行 Microsoft Windows 系统的计算机上使用的 ID 文件
- 被智能卡(Smartcards)保护的 ID 文件
- 被多个密码保护的 ID 文件
- 用于安装在移动存储上的 Notes 的 ID 文件
- 使用强制用户配置文件(Windows mandatory profiles)的 Windows 用户所使用的 ID 文件
- 在 Citrix 环境中使用的 ID 文件
- 漫游用户(Roaming user)的 ID 文件无法使用 NSL
- NSL 只是使用户不用再管理客户端登录的密码,不会影响 Internet 密码。即使原来用户的密码和 Internet 密码是同步的,NSL 启用后用户仍需管理自己的 Internet 密码。
- 启用 NSL 会改变 ID 文件,这样 NSL 只能在激活该功能的计算机上使用。这是因为该功能依赖于该特定计算机的 Windows 安全性基础结构。
- NSL 不支持 Notes 客户端的锁定 Notes ID 功能(Ctrl+F5),也不支持自动锁定 Notes ID(Automatic log-out from Notes),用户可以使用 Windows 屏幕保护程序来防止他人访问自己的计算机。
参考资料 学习
获得产品和技术
作者简介  | |  | 刘庆宇,IBM 软件开发中心软件工程师,目前从事 Notes/Domino 的测试工作。 |
 | |  | 张洁姗,IBM 软件开发中心软件工程师,目前从事 Notes/Domino 的测试工作。 |
 | |  | 罗亚峰,软件工程师,来自 IBM Lotus Notes/Domino 产品组,长期从事 Domino 管理的功能测试。 |
对本文的评价
|