0307.使用SPNEGO实现Domino与AD单点登录

1. 应用背景

伴随着 domino 8.5.1 (或更高版本)对 SPNEGO(Simple and Protected GSSAPI Negotiation Mechanism)单点登录的支持,使用 SPNEGO 单点登录,用户只需在自己的客户端上登陆到 Windows 的域中,就可以用浏览器直接访问 Domino 服务器资源而不用再次提供用户名称和密码。本文将详细介绍 Domino 自身实现 SPNEGO 单点登录配置步骤。

SPNEGO协议可以被用来协商使用何种安全机制。Windows 系统允许使用多种认证机制,因此它也使用 SPNEGO 协议来进行客户端和服务器之间的认证机制协商。它比较常见的使用在微软的 HTTP 认证中,包括了 NTLM(NT LAN Manager)和 Kerberos, 两者都在活动目录中使用,更多关于 SPNEGO 的信息可以参考:http://en.wikipedia.org/wiki/SPNEGO

注:

  • 此文档不涉及各位什么是SSO,也不会细述Domino SSO配置详细步骤,只关注如何在Domino启用SPNEGO
  • 此文档仅适用于DominoAD的单点登录,不涉及统一帐户管理与同步。不适用于WebSphere/Domino混合环境与AD实现单点登录。

2. 环境要求

  • 需要一台微软 Windows 活动目录域服务器,提供 Kerberos Key 分配中心服务和 LDAP 服务。
  • 需要使用 Windows 2003 服务器或 Windows 2003 以上版本服务器, 如果使用的是 Windows 2003 域服务器,不能使用向后兼容模式。

注:你不能把 Windows 2003 域服务器设置成使用 Windows 2000 混合模式。

  • Domino 8.5.1(或更高版本) 服务器运行在一个 Windows 机器上,并且这台机器加入了活动目录的域中。
  • Domino 8.5.1(或更高版本) 服务器配置成 “多服务器验证” 的单点登录授权机制(MSSO)。
  • 需要一台加入了活动目录域中的 Windows 的客户端, 这个机器上运行着支持 Domino 的浏览器。
  • Web 用户在活动目录域服务器中有账号。
  • 已知AD网络域名称,如:AD网络域名称为ACME.COM,NetBIOS名称为ACME

3. 具体配置

3.1 在AD创建运行帐户

为Domino服务运行在AD中创建一个帐号,如:sys_domino

3.2 生成SPN

实现 Lotus Domino 服务器的 SPNEGO, 活动目录服务器的管理员必须使用 setspn工具为 Domino 服务器分配一个 service principal name(SPN), SPNs 对应 Domino 服务器的 DNS 名称(例如:domino.acme.com)
在 Windows 2003 活动目录服务器上,安装 Windows s 2003 支持工具包,此工具包在 Windows 2003 安装光盘上,提供了 setspn 工具。在 Windows 2003 活动目录服务器上, 格式如下:
setspn -a HTTP/<hostname> <account_name>
注:
hostname:domino主机名
account_name:domino运行帐户名

命令行中运行以下命令 :

setspn -a HTTP/domino.acme.com sys_domino

我们可以看到 HTTP/domino.acme.com 被成功的创建了:

Registering ServicePrincipalNames for CN=domino,CN=Computers,DC=acme,DC=com HTTP/oa.acme.com Updated object

另外,必须确定 KDC(Kerberos Key Distribution Center) 服务已经在活动目录服务器上启动。如果有多台domino服务器需要分配SPN,则重复执行setspn命令

3.3 为参与单点登录的Domino服务器添加参数

在每台domino服务器的notes.ini文件中添加以下参数:
Wide_Search_For_Kerberos_Names=1
当然你也可以通过配置文档的方式进行统一更改,如下图:

3.4 修改Domino服务设置

打开Windows 2008的 服务器管理器-> 配置-> 服务,修改 Lotus Domino DiagnosticsLotus Domino Server服务,设置定为3.1所创建的域帐户运行这两个服务,如下图:
 

3.5 配置Domino单点登录

通过 Domino Administrator 在 Lotus Domino 应用程序服务器上创建 Web SSO 配置文档 , Web SSO 配置文档是存储在 Domino 目录中的网络域范围内的配置文档。该文档(应复制到参与一次登录网络域的所有服务器)将针对参与服务器和管理员进行加密,并包含一个共享密钥,以供服务器用来验证用户证书。
在 Domino Administrator 中,选择配置标签,在导航栏中扩展服务器图标后选择“所有服务器文档”,从“Web... ”下拉菜单中选择创建 Web SSO 配置文档。完成文档余下部分,如下图:

Web SSO 配置 文档中,单击 密钥 。选择 创建 Domino SSO 密钥 , 保存此文档。
使用 Domino Administrator, 选择 配置标签 , 在导航栏中扩展服务器图标后选择 所有服务器文档, 打开 Domino 服务器文档 , 选择 Internet 协议标签 , 后选择 Domino Web 引擎标签 , 在 会话验证 中选择 多服务器会话, 选择 LTPAToken 作为 Web SSO 配置 , 保存 Domino 服务器文档。如下图:
如果有多台Domino服务器,重复设置服务器文档,并同步names.nsf至每一台Domino服务器。
设置完成后重启Domino服务器。

3.6 在Domino目录中映射AD帐户

在names.nsf的个人文档管理标签中,将domino用户与AD帐户进行关联。填写的AD帐户名格式:
<ad帐户名>@<AD网络域名称>,其中: ad帐户名全小写, AD网络域名称全大写;如:
[email protected]
如下图:

修改后,保存个人文档。


4. 客户端设置

经过以上设置后,服务器已经设置好与AD的集成,如果客户端的操作系统XP或Windows7加入到域后,IE设置启用Windows集成验证,如下图:

访问Domino的Web服务则不在要求输入用户名和密码,系统会自动将域帐户信息发送至Domino Web服务进行验证。
如果未使用域登录,访问Domino Web服务时,会出现域帐户登录框,如下:
输入域帐户后,如:[email protected] ,可完成登录。
如果使用Mozilla Firefox,打开 FireFox 浏览器,在 URL 地址栏里输入about:config, 在过滤栏里输入network n, 双击network negotiate-auth trusted-uris, 输入 mail 服务器的 URL,例如: http://mail.acme.com,点击确认并重启浏览器
注:此方法目前不支持Google Chrome

5. 相关链接

你可能感兴趣的:(单点登录)