Sharepoint规划单点登录
更新时间:2023-03-08 05:12:08 阅读量: 综合文库 文档下载
规划单一登录
更新: 2009-04-23 本文内容:
? ? ? ? ? ? ?
关于单一登录 常用 SSO 方案
Office SharePoint Server SSO 体系结构 规划服务器场级 SSO 设置 规划企业应用程序定义设置 规划 SSO 操作 工作表
利用本文来规划在 Microsoft Office SharePoint Server 2007 中使用单一登录 (SSO)。本文介绍在安全环境中配置 SSO 的方式(包括如何使用 SSO 连接到后端数据系统)。
关于单一登录
Office SharePoint Server 2007 中的 SSO 功能将用户凭据映射到后端数据系统。通过 SSO,您可以访问 Office SharePoint Server 2007 外部的服务器计算机和服务中的数据。您可以从 Office SharePoint Server 2007 Web 部件内查看、创建和更改此数据。SSO 功能可确保:
? ? ?
安全地管理用户凭据。
执行在外部数据源上配置的用户权限级别。
当用户在 Office SharePoint Server 2007 内查看外部数据源中的数据时,系统不会提示用户重新输入其凭据。
?
Office SharePoint Server 2007 可以连接到多个外部数据系统,无论平台要求和身份验证要求是什么。
SSO 需要使用用户帐户的 Windows 凭据。在 Web SSO 用于对用户帐户进行身份验证的环境中,仅当调用 SSO 应用程序编程接口 (API) 的当前线程具有与其关联的 Windows 标识时,才能使用 SSO。
常用 SSO 方案
SSO 主要用于商业智能方案。在 Office SharePoint Server 2007 中,很多功能都依赖 SSO,这些功能包括:
?
业务数据目录
? ? ? ? ? ? ?
Excel Services
InfoPath Forms Services 业务数据 Web 部件 KPI Web 部件
Microsoft Office SharePoint Designer 数据表单 Web 部件 业务数据搜索 列表中的业务数据
此外,您还可以引入用于连接到外部数据源的自定义 Web 部件(包括那些基于除 Windows 之外的操作系统的 Web 部件)。例如,您可以连接到以下企业应用程序:
? ? ?
SAP 业务信息仓库 Siebel 电子商务应用程序 Microsoft BizTalk Server
有关商业智能方案的详细信息,请参阅规划商业智能。
Office SharePoint Server SSO 体系结构
此节介绍如何在 Office SharePoint Server 2007 中实现 SSO。 Microsoft Single Sign-On Service
Office SharePoint Server 2007 中的 SSO 功能使用 Microsoft Single Sign-On Service (SSOSrv)。下图演示如何在 Office SharePoint Server 2007 服务器场中实现单一登录服务。
1. SSO 加密密钥服务器 启用单一登录服务的第一台服务器计算机将成为加密密钥服务器。加密密
钥服务器将生成并存储加密密钥。加密密钥用于对存储在 SSO 数据库中的凭据进行加密和解密。加密密钥服务器应该是应用程序服务器计算机(例如索引服务器)。
2. 单一登录服务 必须将此服务安装在服务器场中的所有 Web 服务器计算机上。此外,还必须将
此服务安装在承载 Excel Services 应用程序服务器角色的任何计算机上。如果使用了业务数据目录搜索功能,则还必须将此服务安装在索引服务器上。
3. SSO 数据库 当您在管理中心网站中配置 SSO 服务器设置时,Office SharePoint Server
2007 将在承载配置数据库的数据库服务器计算机上创建一个 SSO 数据库。如果安装了 Microsoft SQL Server,则 SSO 数据库是 SQL Server 数据库。如果未安装 SQL Server,则单一登录服务将使用 SQL Server 2005 Express Edition。SSO 数据库存储加密凭据。
注意: 如果要从以前版本的 SharePoint Portal Server 升级,则必须重新创建 SSO 环境(包括新建一个 SSO 数据库)。无法将 SSO 迁移或升级到 Office SharePoint Server 2007。 企业应用程序定义
在 SSO 环境中,后端外部数据源和系统称为企业应用程序。配置完 SSO 环境之后,您即可创建企业应用程序定义。管理员为 Office SharePoint Server 2007 所连接的每个企业应用程序配置一个相应的企业应用程序定义。也可以为同一物理企业应用程序配置多个企业应用程序定义,以保护可对其进行访问的不同组的安全。
企业应用程序定义将定义如下内容:
? ?
企业应用程序标识(显示名称、编程名称和联系人电子邮件地址)。
映射到企业应用程序的用户帐户的类型。这取决于企业应用程序(在某些情况下指 Web 部件)是基于个人帐户还是基于组帐户执行权限。
? ?
从用户收集的凭据的类型(用户名、密码或其他凭据,例如智能卡)。
供 Office SharePoint Server 2007 Web 部件用来连接到企业应用程序的帐户。
单一登录功能支持多个 Web 部件访问不同企业应用程序的方案。不同企业应用程序均可以使用不同类型的身份验证。企业应用程序还可以基于除 Windows 以外的操作系统。 SSO 票证
在用户与各种系统和应用程序进行交互的企业环境中,该环境很可能没有保留涵盖多个流程、产品和计算机的用户上下文。因为需要验证发出原始请求的用户,所以此用户上下文对提供单一登录功能至关重要。在多个服务器参与将凭据从加密密钥服务器传递到企业应用程序的方案中,单一登录服务将提供 SSO 票证(而非 Kerberos 票证)。这些服务器使用此票证来获取与发出原始请求的用户相对应的凭据。
例如,可能将工资单环境配置为通过 BizTalk Server 访问 SAP 系统中的数据。如果 Web 部件连接到了 SAP 系统,则会通过 BizTalk Server 计算机传送凭据。在 SSO 环境中,Web 部件将 SSO 票证发送至连接到 SAP 系统的 BizTalk Server 计算机上的服务。如果用户属于在企业应用程序定义中指定的某个帐户或组帐户,则该服务将 SSO 票证兑换为 SAP 系统的凭据。若要使 BizTalk Server 计算机上的该服务可以兑换 SSO 票证,必须将该服务所使用的帐户添加到 SSO Administrators 组中。 当 Windows 用户请求票证时或当应用程序代表用户请求票证时,单一登录服务将发出票证。单一登录服务只能为发出请求的用户发出票证(您不能为其他用户请求票证)。票证包含当前用户的加密域和用户名,以及票证过期时间。
企业应用程序验证完原始请求者的身份之后,该应用程序将兑换票证以获取发出请求的用户的凭据。默认情况下,票证在两分钟后过期。SSO 管理员可以修改票证的过期时间。票证超时值必须足够长,以可在发出票证的时间与兑换票证的时间之间持续。 SSO 管理
管理 SSO 涉及两种类型的管理员:
?
SSO 管理员 这些管理员负责设置和配置 SSO、管理 SSO 帐户、备份加密密钥以及创建和更改加密密钥。出于安全方面的考虑,要求 SSO 管理员在本地登录到加密密钥服务器以设置、配置和管理 SSO。禁止 SSO 管理员从远程服务器计算机管理 SSO 服务器设置。
?
企业应用程序定义管理员 这些管理员负责创建和管理企业应用程序定义,以及更新用于访问企业应用程序的帐户和凭据。这些管理员可远程管理企业应用程序定义。
将在下文中详细介绍 SSO 管理员的特定帐户和权限。 网络依赖性
在 Office SharePoint Server 2007 服务器场中,单一登录服务依赖 NetBIOS 名称在加密密钥服务器与数据库服务器计算机之间进行通信。如果未向数据库服务器计算机提供 NetBIOS 名称解析功能,则 SSO 配置将失败。
规划服务器场级 SSO 设置
此节介绍服务器场级设置的规划选择。这些规划选择包括:
? ? ? ? ? 决定哪台服务器计算机将承载 SSO 加密密钥服务器角色。 设置 SSO 帐户并确保这些帐户是使用适当权限创建的。
记录为在管理中心的“管理单一登录的服务器设置”页上配置的服务器场级设置作出的决定。
工作表操作 使用单一登录服务器场设置工作表(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=73336&clcid=0x804)(该链接可能指向英文页面)来记录您的规划选择。 SSO 加密密钥服务器
确定服务器场中哪台计算机将承载 SSO 加密密钥服务器角色。推荐的配置是选择一台应用程序服务器计算机(例如索引服务器),理由如下:
?
运行单一登录服务的所有服务器计算机必须能够通过网络与加密密钥服务器进行通信。当使用包含多台 Web 服务器计算机的服务器场时,一些负载平衡技术不允许 Web 服务器互相通信。
?
应用程序服务器计算机不由最终用户直接访问,它们通常受到附加安全层的保护。例如,经常实施安全协议(例如 IPsec 或 SSL)来保护服务器场内服务器到服务器的通信安全。此外,某些服务器场拓扑结构还在 Web 服务器计算机与应用程序服务器计算机之间实施附加路由器或防火墙。
必须在承载 Excel Services 角色的任何应用程序服务器计算机上安装单一登录服务。如果使用业务数据目录搜索功能,则还必须在索引服务器上安装单一登录服务。这些要求使这些服务器计算机中的每台均成为加密密钥服务器角色的好选择。
确保 SSO 管理员可在本地登录到加密密钥服务器。此外,通过确保以下各项来确保 Internet Explorer 中的安全设置不会阻止对 SSO 的管理:
?
选择了默认选项“只在 Intranet 区域自动登录”。(为此,在“工具”菜单上,依次单击“Internet 选项”、“安全”选项卡和“自定义级别”按钮,然后在“安全设置”对话框中,转到“用户身份验证”部分。)
?
未选择“用户名和密码提示”。
SSO 帐户
设置、运行和管理 SSO 系统需要四个不同的帐户:
? ? ? ?
SSO 配置帐户 SSO 管理员帐户 SSO 服务帐户
企业应用程序管理员帐户
在评估环境中,可以对这些帐户中的每个帐户均使用服务器场帐户。但是,在安全环境中,您应该考虑使用哪些帐户,以及如何配置这些帐户。此节详细介绍了帐户要求并提供了有关在安全环境中配置这些帐户的建议。
设置、运行和管理 SSO 系统所需的四个帐户实现了角色分隔和权限隔离。下表列出了这些帐户并介绍了使用这些帐户所执行的操作。
帐户 SSO 配置帐户 说明 ? ? 在 Office SharePoint Server 2007 中设置单一登录服务。 在 Office SharePoint Server 2007 中配置和管理单一登录服务(包括管理加密密钥)。 ? 在 Office SharePoint Server 2007 中创建、修改或删除企业应用程序定义。 SSO 管理员帐户 ? 在 Office SharePoint Server 2007 中配置和管理单一登录服务(包括管理加密密钥)。 ? 在 Office SharePoint Server 2007 中创建、修改或删除企业应用程序定义。 兑换 SSO 票证。在凭据通过中间服务(例如 BizTalk Server)到达企业应用程序定义的方案中,此帐户用于向中间服务提供权限以兑换 SSO 票证。 SSO 服务帐户 企业应用程序管理员帐户 帐户 SSO 配置帐户 在 Windows 中运行单一登录服务。 在 Office SharePoint Server 2007 中创建、修改或删除企业应用程序定义。 要求 ? ? ? ? 必须是用户域帐户。不能是组帐户。 用户帐户必须是服务器场管理员。 必须是加密密钥服务器计算机上的 Administrators 组的成员。 必须是运行 SQL Server 的计算机上的以下 SQL Server 安全角色的成员: ? ? ? SSO 管理员帐户 表。 Dbcreator Securityadmin 必须与 SSO 管理员帐户相同,或是 SSO 管理员帐户的组帐户的成员。 ? 必须是 Windows 全局组或个人用户帐户。不能是域本地组帐户或通讯组列? SSO 服务帐户必须是此用户或此组的成员。 ? ? ? SSO 配置帐户必须是此用户或此组的成员。 必须添加到具有读取权限级别的 SharePoint 管理中心网站。 为管理 SSO 而添加到此组的所有用户必须是加密密钥服务器上的 Administrators 组的成员。不要使此帐户本身成为加密密钥服务器上的 Administrators 组的成员。 SSO 服务帐户 ? ? ? 必须是域用户帐户。不能是组帐户。 必须是 SSO 管理员帐户或作为 SSO 管理员帐户的组帐户的成员。 必须是服务器场中运行 Office SharePoint Server 2007 的所有服务器计算机上的本地组 WSS_Admin_WPG 的成员。 ? 必须是 Office SharePoint Server 2007 配置数据库上的公用数据库角色的成员。 ? 必须是 SSO 数据库所在的 SQL Server 实例上的 Sysadmin 服务器角色的成员。 ? 在安全环境中,不要通过属于本地计算机上的 Administrators 组成员的帐户运行该服务。 注意: 若要更改服务帐户,必须首先备份主密钥,然后在更改服务帐户之后还原主密钥。 企业应用程序管理员帐户 ? ? 必须是全局组帐户或个人用户帐户。此帐户不能是域本地组或通讯组列表。 必须对 SharePoint 管理中心网站具有读取权限级别。 在安全环境中,建议在可能的情况下配置四个不同的帐户并使用一个组帐户。如果对 SSO 配置帐户、SSO 管理员帐户和 SSO 服务帐户使用用户帐户,则必须使用相同的用户帐户。下表提供了有关配置这些帐户的建议。
评估环帐户 SSO 配置帐户 境 服务器场帐户 SSO 管理员帐户 服务器场创建一个专用域组帐户。向此组添加以下内容: 安全环境 使用属于Farm Administrators 组成员的管理员的个人用户帐户。 ? 将用作 SSO 配置帐户的用户帐户。 帐户 ? ? 用于运行单一登录服务的帐户 允许在 Office SharePoint Server 2007 中对单一登录服务进行管理的用户。此外,将这些用户添加到加密密钥服务器上的 Administrators 组中。 兑换 SSO 票证的服务的服务帐户。这些帐户是用于在加密密钥服务器与企业应用程序之间传递凭据的中间服务。 SSO 服务帐户 服务器场帐户 ? ? 使用个人用户帐户。使用与 SSO 配置帐户不同的帐户。 不要将此帐户添加到 Farm Administrators 组中或本地计算机上的 Administrators 组中。 不要使用用于运行 Internet Information Services (IIS) 应用程序池的相同服务帐户。 企业应用程序管理员帐户 服务器场帐户 创建一个专用域组帐户。将允许创建和管理企业应用程序定义的用户添加到此组。 下图显示这些帐户的推荐安全配置。
数据库设置
数据库设置用于创建 SSO 数据库,包括:
? ?
服务器名称 这是数据库服务器计算机的 NetBIOS 名称。不要输入完全限定域名 (FQDN)。 数据库名称 这是 SSO 数据库的名称。
除非提前创建数据库,否则建议保留默认设置。 超时设置
超时设置包括以下内容:
?
票证超时(分钟) 用于设置在 SSO 票证过期之前可经过的分钟数。确保票证超时值足够长,以便可在发出票证的时间与企业应用程序兑换该票证的时间之间持续。建议设置为两分钟以留出足够
的时间兑换票证。如果在两分钟内未兑换票证,则网络问题或其他问题可能会阻止计算机之间的连接。
?
删除早于该时间的审核日志记录 用于设置在删除审核日志中的记录之前保留的天数。
默认超时设置是推荐的起始点。
规划企业应用程序定义设置
此节介绍了企业应用程序定义的规划选择。 工作表操作 使用单一登录企业应用程序定义工作表(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=73335&clcid=0x804)(该链接可能指向英文页面)来记录您的规划选择。为计划添加的各个企业应用程序定义填写此工作表。 创建完企业应用程序定义之后,不能修改以下属性:
? ? ?
企业应用程序定义的名称
帐户类型(组或个人、经 Windows 身份验证的组或个人或使用受限帐户的组) 登录帐户信息字段
应用程序和联系人信息
应用程序和联系人信息包括以下设置:
? ?
显示名称 企业应用程序的友好名称。
应用程序名称 企业应用程序的编程名称。这是将用于调用企业应用程序定义的 Web 部件的名称。
?
联系人电子邮件地址 用户可为企业应用程序进行联系的电子邮件地址。
帐户类型
帐户类型是指用于将用户凭据映射到企业应用程序的帐户类型:个人帐户或组帐户。如果每个用户在企业应用程序中均具有帐户,请选择“个人”。如果企业应用程序对所有用户使用一个帐户,请选择“组”。 请注意,安全授权可由企业应用程序或连接到企业应用程序的 Web 部件来执行。安全授权的设置方式会影响企业应用程序所采用的帐户类型。例如,可以使用以下两种方法之一来设置对访问付款存根应用程序中的个人数据的授权:
?
用户自己在付款存根系统中具有访问其付款存根的帐户。在这种情况下,企业应用程序使用个人帐户。
?
用于访问付款存根数据的 Web 部件将执行安全授权。在这种情况下,Web 部件基于用户凭据执行用户授权,付款存根系统对所有用户使用组帐户。因此,在这种情况下,企业应用程序定义使用组帐户。
此外,如果使用组帐户,则可将企业应用程序定义配置为使用特权帐户。如果选择特权帐户,则这些凭据与常规凭据分开存储,并且使用不同的 API 来访问特权凭据。在中间应用程序(例如业务数据目录)对基于凭据检索到的数据实施进一步安全修整的情况下,使用特权帐户。
使用受限凭据的应用程序必须基于通过使用特权凭据返回的数据执行进一步授权和数据修整。服务器场管理员必须确保使用特权帐户的所有应用程序都执行此授权和数据修整。另外,如果没有执行此附加授权和修整的应用程序可以访问特权帐户,则此应用程序可通过使用特权凭据访问本应修整的数据从而危及安全。 仅在以下情况下选择“使用特权帐户的组”:
? ? ? ?
帐户为组帐户。
业务数据目录用于连接到企业应用程序。
连接到企业应用程序的中间应用程序符合特权帐户的使用条款。 数据高度敏感。
身份验证类型
身份验证类型是指 Office SharePoint Server 2007 服务器连接到企业应用程序时所采用的方法:Windows 身份验证或不使用身份验证。此身份验证仅适用于运行 Office SharePoint Server 2007 的服务器登录到企业应用程序时所用的凭据。不影响对用户凭据进行的身份验证。
如果在运行 Windows 的计算机上承载企业应用程序,请选择“Windows 身份验证”。如果在未运行 Windows 的计算机上承载企业应用程序,则保留此设置为空。如果没有使用 Windows 身份验证,则不加密登录凭据。如果选择 Windows 身份验证,而企业应用程序系统不支持 Windows 身份验证,则 SSO 连接将失败。 用户的登录帐户信息
为登录帐户信息提供的字段可确定登录所需的信息。默认情况下,仅指定用户名和密码。您最多可以指定五条必须包括的不同信息。例如,您可以要求 SAP 服务器名称或 SAP 客户端号。在以下情况下,系统将提示用户输入凭据:
? ?
身份验证失败或找不到凭据。
将 Web 部件编程为提示用户输入凭据。
登录帐户信息用于使用个人帐户的企业应用程序定义。不建议对使用组帐户的企业应用程序定义提示输入登录帐户信息。
在此处配置的登录帐户信息必须符合企业应用程序的登录要求。此外,您还必须确定在用户提供这些凭据时,系统是否需要屏蔽这些凭据。
通常,仅需要用户名和密码。某些高度安全的环境可能需要其他用户标识。此外,某些系统可能需要用户的其他信息来标识应用程序。例如,用户可能输入下表中显示的信息来访问 Oracle。
在此字段中 字段 1 字段 2 字段 3 输入此信息 Oracle 用户名 Oracle 用户密码(为“掩码”选项选择“是”) Oracle 数据库名称 用户可能输入下表中显示的信息来访问 SAP 应用程序。 在此字段中 字段 1 字段 2 字段 3 字段 4 字段 5 企业应用程序的帐户信息
如果使用组帐户来连接到企业应用程序,则需要提供帐户凭据。在添加企业应用程序定义之后,SSO 管理员或企业应用程序管理员帐户成员通过在管理中心网站上单击“管理企业应用程序定义的帐户信息”来指定用于连接到外部服务器计算机的帐户名和密码。 工作表操作 使用单一登录企业应用程序定义工作表(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=73335&clcid=0x804)(该链接可能指向英文页面)来记录组帐户的名称。 在管理中心网站中输入帐户信息的管理员还必须知道组帐户的密码。
如果使用个人帐户来连接到企业应用程序,则无需在管理中心网站中输入帐户信息。
输入此信息 SAP 用户名 SAP 密码(为“掩码”选项选择“是”) SAP 系统号 SAP 客户端号 语言 规划 SSO 操作
管理加密密钥
在加密用于 SSO 的凭据的过程中,使用加密密钥。该密钥帮助解密存储在 SSO 数据库中的加密凭据。第一次在管理中心的“管理单一登录的服务器设置”页上配置 SSO 和企业应用程序定义时,会自动创建加密密钥。对加密密钥的管理包括审核加密密钥和重新生成加密密钥。 审核加密密钥
您可以启用对加密密钥所做更改的审核。如果读取或写入该密钥,则会在安全日志中记录安全事件。您可以使用事件查看器来查看安全日志。启用日志记录包括:
?
修改 SSO 注册表项。
?
在组策略对象编辑器中创建一个本地计算机策略。
重新生成加密密钥
因为加密密钥保护安全凭据,所以您应该定期(例如每 90 天)重新生成密钥。如果泄露了帐户凭据,则您也应该重新生成加密密钥。
重新加密过程是一个长期执行的操作。建议您在非高峰期间更改加密密钥。重新加密加密密钥会对 SSO 环境产生以下影响:
? ?
在重新加密过程中,不允许写入操作(例如,更新凭据和更改企业应用程序定义)。 读取操作(例如检索凭据)继续照常运行。
您必须在本地登录到加密密钥服务器才能重新加密加密密钥。您还必须是 SSO 管理员帐户的成员。 如果在重新加密过程中重新启动了加密密钥服务器或加密密钥服务器上的单一登录服务停止,则应该在事件日志中查找错误。如果事件日志报告错误,则必须重新启动重新加密过程。如果以任何方式取代了重新加密过程,则必须重新运行此过程。如果取代了重新加密过程,则此过程会还原回其原始状态。 在创建加密密钥时,可以选择使用新密钥重新加密现有凭据。如果没有使用新的加密密钥重新加密现有凭据,则用户必须为个人企业应用程序定义重新键入其凭据,而组企业应用程序定义的管理员必须重新键入组凭据。
当您重新加密单一登录服务凭据存储时,将在 Microsoft Windows Server 2003 应用程序事件日志中记录事件。在启动重新加密之后,您可以监视应用程序事件日志,以验证是否已重新加密凭据存储。在启动重新加密时,将在应用程序事件日志中记录事件 ID 1032。在重新加密结束时,将在应用程序事件日志中记录事件 ID 1033。如果在重新加密过程中出现任何失败,则会在日志中记录事件。 在决定管理加密密钥的规划选择时,请考虑以下方面:
? ? ?
计划每隔多长时间重新加密一次加密密钥? 是否应同时使用新的加密密钥重新加密现有凭据? 在哪些其他情况下,需要重新加密加密密钥?
工作表操作 使用单一登录服务器场设置工作表(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=73336&clcid=0x804)(该链接可能指向英文页面)来记录您的规划选择。 备份 SSO 环境
备份 SSO 环境包括备份以下两个单独的实体:
? ?
加密密钥 SSO 数据库
您应该在最初设置 SSO 之后备份加密密钥,然后在每次重新生成加密密钥时再次备份该密钥。无需按固定时间间隔备份加密密钥,除非该时间间隔与重新生成加密密钥相关。不能远程备份加密密钥。您必须是 SSO 管理员帐户的成员并在本地登录到加密密钥服务器才能备份加密密钥。只能将加密密钥备份到可移动存储媒体中,不能将其备份到本地硬盘上。可以从管理中心的“管理加密密钥”页中备份加密密钥。 您应该在最初创建 SSO 数据库之后对其进行备份,然后在每次重新加密凭据时再次对其进行备份。此外,您可以在服务器场的定期安排的数据库备份中包含 SSO 数据库备份。定期安排的备份将包括对 SSO 数据库进行的其他更改(例如,新的企业应用程序定义和更新的凭据)。
不要将加密密钥的备份媒体与 SSO 数据库的备份媒体存放在相同的位置。如果用户同时获得数据库和密钥的副本,则存储在数据库中的凭据可能会泄露。理想情况下,应将加密密钥的备份锁在一个安全的地方。 在您决定备份 SSO 环境的规划选择时,请考虑以下方面:
? ?
备份加密密钥的时间间隔。
备份 SSO 数据库的规划。最有效的规划是包括 SSO 数据库和定期服务器场备份。
工作表操作 使用单一登录服务器场设置工作表(该链接可能指向英文页面)(http://go.microsoft.com/fwlink/?linkid=73336&clcid=0x804)(该链接可能指向英文页面)来记录您的规划选择。 还原 SSO 环境
有几种情况需要还原 SSO 环境。在某些情况下,仅需要还原加密密钥或仅需要还原 SSO 数据库。下表描述了几种还原情况并指出需要还原的内容。 情况 将加密密钥服务器角色移动到不同的服务器计算机上。 更改 SSO 服务帐户。 还原失败的数据库服务器计算机。 将 Office SharePoint Server 2007 服务器场迁移到一组不同的服务器计算机。 从整个服务器场灾难中恢复。 要还原的内容 加密密钥 加密密钥 SSO 数据库 加密密钥和 SSO 数据库 加密密钥和 SSO 数据库 此节的其余部分将详细介绍还原 SSO 环境所涉及的特定任务,具体取决于相关情况。 若要将加密密钥服务器角色移动到不同的服务器计算机,请按照以下步骤操作: 将加密密钥服务器角色移动到不同的服务器计算机
1. 备份加密密钥。
2. 在服务器场中的所有计算机上禁用单一登录服务。 3. 登录到新的加密密钥服务器。 4. 启动单一登录服务。
5. 在管理中心网站中配置 SSO 服务器场级设置。指定现有的 SSO 数据库。 6. 还原加密密钥。
7. 在服务器场中的所有 Web 服务器计算机上启动单一登录服务。 更改 SSO 服务帐户
SSO 服务帐户的安全标识符 (SID) 用作加密 SSO 凭据的公式的一部分。因此,若要更改 SSO 服务帐户,您必须重新配置 SSO 环境。请按照以下步骤更改 SSO 服务帐户: 更改 SSO 服务帐户
1. 备份加密密钥。
2. 在服务器场中运行单一登录服务的所有服务器计算机上,使用新的服务帐户重新配置该服务。 3. 在管理中心网站中使用新的 SSO 服务帐户重新配置 SSO 服务器场级设置。指定现有的 SSO
数据库。 4. 还原加密密钥。
5. 重新加密 SSO 数据库中的凭据。还原的加密密钥用于重新加密这些凭据。 仅还原 SSO 数据库服务器
如果承载 SSO 数据库的服务器计算机失败,则仅需要还原 SSO 数据库。通过使用在 Office
如果将 SSO 数SharePoint Server 2007 环境中用于还原任何其他数据库的相同方法来还原该数据库。
据库还原到不同的服务器计算机,请使用新的数据库服务器计算机的名称重新配置 SSO 服务器场级设置。
还原整个 SSO 环境
在一些情况下需要同时还原加密密钥和 SSO 数据库。请按照以下步骤还原整个 SSO 环境: 还原整个 SSO 环境
1. 将 SSO 数据库还原到预定的数据库服务器计算机。
2. 按照配置新的 SSO 环境的过程设置和配置 SSO,不需要输入现有 SSO 数据库的服务器名称
和数据库名称。
3. 将加密密钥还原到新的 SSO 环境。 响应 SSO 安全威胁
安全威胁可包括备份媒体丢失、密码泄露或其他可能潜在威胁存储在 SSO 数据库中的凭据或存储在企业应用程序中的数据的事件。如果您遇到可能潜在影响您的 SSO 环境的安全威胁,请执行以下操作来响应此威胁: 响应安全威胁
1. 重新生成加密密钥。
2. 使用新的加密密钥来重新加密 SSO 数据库中的凭据。 3. 如果密码可能受到威胁,请更改企业应用程序的密码。 4. 如果用户的密码可能受到威胁,请鼓励他们更改其密码。
如果潜在的安全威胁很严重,则可以停止单一登录服务,以立即停止访问 SSO 数据库中存储的凭据。如果需要停止单一登录服务,则可以按照以下步骤将该服务安全还原到现有 Office SharePoint Server 2007 服务器场:
将单一登录服务还原到现有服务器场
1. 将 SSO 环境还原到独立的服务器计算机。 2. 重新生成加密密钥。
3. 重新加密 SSO 数据库中的凭据。 4. 备份 SSO 环境。
5. 将 SSO 环境还原到现有 Office SharePoint Server 2007 服务器场。
工作表
使用下面的工作表来规划单一登录:
?
单一登录企业应用程序定义工作表(该链接可能指向英文页面)
(http://go.microsoft.com/fwlink/?linkid=73335&clcid=0x804)(该链接可能指向英文页面)
?
单一登录服务器场设置工作表(该链接可能指向英文页面)
(http://go.microsoft.com/fwlink/?linkid=73336&clcid=0x804)(该链接可能指向英文页面)
下载此书籍
本主题包含在以下可下载书籍内,以方便您阅读和打印:
?
Office SharePoint Server 2007 的规划和体系结构 - 第 2 部分(该链接可能指向英文页面)
有关可下载书籍的完整列表,请参阅 Office SharePoint Server 2007 的可下载书籍。
实现可插入 SSO 提供程序(从MSDN复制的,怕链接失效)
Posted on 2009-11-16 21:56 程旭圆 阅读(67) 评论(0) 编辑 收藏 所属分类: sharepoint
源文地址:http://msdn.microsoft.com/zh-cn/library/ms566925.aspx
默认情况下,Microsoft Office SharePoint Server 2007 提供 Microsoft Single Sign-On (SSO) Service,用于存储和映射与第三方或后端系统建立连接时所使用的凭据。许多公司已开发了内部凭据存储系统,或者使用 Microsoft Single Sign-On Service 之外的其他解决方案。Office SharePoint Server 2007 提供一种称为可插入 SSO 的机制,作为在两个位置保持凭据映射的替代方法。利用此功能,可以为 Office SharePoint Server 2007 中的标准 SSO 提供程序指定备用 SSO 提供程序。
先决条件
生成 SSO 提供程序之前必须设置环境。此演练假定已设置了 Office SharePoint Server 2007、安装了从 Microsoft 下载中心(该链接可能指向英文页面)下载的 AdventureWorks 2000 数据库副本,并已确保域名为 LITWAREINC。如果使用的是其他域名,则必须调整此演练中的代码示例。 假定已存在下表中显示的域帐户和组。
ExternalPartners InternalSales Tom Tompson Jerry Jones InternalAccess ExternalAccess
有关如何设置数据库和必要的用户帐户的完整说明,请参阅随 AdventureWorks 2000 数据库提供的 README.txt 文件。
域组 域组 域用户 域用户 域用户 域用户
实现单一登录提供程序
替换 Office SharePoint Server 2007 中默认 SSO 提供程序的过程包括实现 Microsoft.SharePoint.Portal.SingleSignon.ISsoProvider接口、将其安装到全局程序集缓存以及向 Office SharePoint Server 2007 注册新的 SSO 提供程序。
只能向 Office SharePoint Server 2007 注册一个 SSO 提供程序。注册新的 SSO 提供程序将替换 Office SharePoint Server 2007 中的默认 SpsSsoProvider类。由于一次只能使用一个 SSO 提供程序,因此建议在使用自定义 SSO 提供程序时停止 Microsoft Single Sign-On Service。
创建功能最简单的 SSO 提供程序将需要实现 ISsoProvider 接口的 GetCredentials 和 GetSsoProviderInfo 方法。本演练介绍如何创建简单的 SSO 提供程序以及使用它通过业务数据目录访问数据。
在本演练中,自定义 SSO 提供程序将 InternalSales 组中的用户映射到 InternalAccess 用户帐户,以便检索 AdventureWorks 2000 数据库中的产品数据。
生成提供程序
本节介绍如何生成并注册简单的 SSO 提供程序,并说明提供程序的异常处理。
下载 若要下载示例提供程序,请参阅 SharePoint Server 2007:软件开发工具包(该链接可能指向英文页面)。 示例
通过创建类库项目,在 Microsoft Visual Studio 2005 中创建 SSO 提供程序程序集。向该项目添加对 Microsoft.SharePoint.Portal.SingleSignon.dll
(
位
于
%ProgramFiles%\\Common
Files\\Microsoft Shared\\web server extensions\\12\\ISAPI 目录)的引
用。实现 ISsoProvider 接口,如下例所示。 C#
using System;
using System.Collections.Generic; using System.Reflection; using System.Text; using System.Web;
using System.Web.Services;
using Microsoft.SharePoint.Portal.SingleSignon;
namespace SampleSSOProvider {
///
/// SimpleSSOProvider
///
public class SimpleSSOProvider: ISsoProvider {
public Application.ApplicationInfo[] GetApplicationDefinitions() {
//NOTE: Used by SpsSsoProvider, not necessary for SimpleSSOProvider throw new NotSupportedException(); }
public Application.ApplicationField[] GetApplicationFields(string AppID) {
//NOTE: Used by SpsSsoProvider, not necessary for SimpleSSOProvider throw new NotSupportedException(); }
public Application.ApplicationInfo GetApplicationInfo(string AppID) {
Application.ApplicationInfo applicationInfo = new
Application.ApplicationInfo(\, \, Application.ApplicationType.GroupWindows, \);
Application.ApplicationInfo applicationInfo = new
Application.ApplicationInfo(\,\,Application.ApplicationType.GroupWindows,\,
(SsoCredentialContents)((Int32)SsoCredentialContents.UserName + (Int32)SsoCredentialContents.Password +
(Int32)SsoCredentialContents.WindowsCredentials)); */
return applicationInfo; }
public Uri GetCredentialManagementURL(string AppID) {
//NOTE: Used by SpsSsoProvider, not necessary for SimpleSSOProvider throw new NotSupportedException(); }
public SsoCredentials GetCredentials(string AppID) {
//Note: Used by SpsSsoProvider, necessary for any SimpleSSO Provider. Implementation discussed in detail in the next section of this topic }
public SsoCredentials GetCredentialsUsingTicket(string Ticket, string AppID) {
//NOTE: Used by SpsSsoProvider, necessary for Simple SSO Provider when used by Excel Services.
//TODO: Implement Ticket management code; currently just return SsoCredentials
return GetCredentials(AppID); }
public string GetCurrentUser() {
//NOTE: Used by SpsSsoProvider, not necessary for SimpleSSOProvider throw new NotSupportedException(); }
public SsoCredentials GetSensitiveCredentials(string AppID) {
//NOTE: Used by SpsSsoProvider, necessary for Simple SSOProvider when used by Excel Services
//TODO: Implement Sensitive Credential method, for sample just returning basic credentials
return GetCredentials(AppID); }
public SsoProviderInfo GetSsoProviderInfo() {
//TODO: Used by SpsSsoProvider, necessary for any SimpleSSOProvider }
public string GetTicket() {
//NOTE: Used by SpsSsoProvider, necessary for SimpleSSOProvider when used by Excel Services
//TODO: Implement Ticket management code; currently just return a string return \; }
public void PutIdentityOnRequest(ref
System.Web.Services.Protocols.HttpWebClientProtocol request, string AppID) {
//NOTE: Used by SpsSsoProvider, not necessary for SimpleSSOProvider throw new NotSupportedException(); }
public void PutIdentityOnRequestUsingTicket(ref
System.Web.Services.Protocols.HttpWebClientProtocol request, string Ticket, string AppID) {
//NOTE: Used by SpsSsoProvider, not necessary for SimpleSSOProvider throw new NotSupportedException(); } } }
至少必须实现 GetCredentials 和 GetSsoProviderInfo 方法。所创建的 SimpleSSOProvider 类根据当前用户以及所提供的应用程序标识符 (AppID) 返回新的凭据。可以
使
用
正
在
执
行
的
线
程
的
CurrentPrincipal
属
性
(System.Threading.Thread.CurrentPrincipal) 获取有关当前用户的信息。以下代码介绍GetCredentials 方法的实现。 C#
public SsoCredentials GetCredentials(string AppID) {
//NOTE: Used by SpsSsoProvider, necessary for any SimpleSSOProvider System.Diagnostics.Trace.WriteLine(\SimpleSSOProvider::GetCredentials\); System.Diagnostics.Trace.Indent();
// Retrieve the logged in user's information string domain = System.Environment.UserDomainName;
System.Diagnostics.Trace.WriteLine(\ + domain); try {
System.Diagnostics.Trace.WriteLine(\ + System.Threading.Thread.CurrentPrincipal.Identity.Name);
// Start building an SsoCredentials object to store two values - UserName and Password
SsoCredentials creds = new SsoCredentials();
creds.Evidence = new System.Security.SecureString[2];
switch (AppID){
case \:
System.Diagnostics.Trace.WriteLine(\AdventureWorks\);
if
(System.Threading.Thread.CurrentPrincipal.IsInRole(\)) {
System.Diagnostics.Trace.WriteLine(\is in InternalSales? \ + System.Threading.Thread.CurrentPrincipal.IsInRole(\)); // Provide components for the InternalAccess account token creds.Evidence[0] = MakeSecureString(domain + \);
creds.Evidence[1] = MakeSecureString(\); } else {
// Provide components for the ExternalAccess account token creds.Evidence[0] = MakeSecureString(domain + \);
creds.Evidence[1] = MakeSecureString(\); } break;
default: throw new
SingleSignonException(SSOReturnCodes.SSO_E_APPLICATION_NOT_FOUND); }
// Put the UserName/Password values into the credential object creds.UserName = creds.Evidence[0]; creds.Password = creds.Evidence[1];
System.Diagnostics.Trace.Unindent(); return creds; }
catch(SingleSignonException ex) {
System.Diagnostics.EventLog.WriteEntry(\, \SSO Exception: \ + ex.ToString()); throw; }
catch(Exception ex) {
System.Diagnostics.EventLog.WriteEntry(\, \Exception: \ + ex.ToString());
throw new SingleSignonException(SSOReturnCodes.SSO_E_EXCEPTION, ex); } }
SsoProvider 实现不需要 SsoCredentialsContents,但某些其他客户端应用程序可能需要 SsoCredentialsContents。在所提供的示例中,Excel Services 将尝试通过 Windows 登录使用已设置的 UserName 和 Password 连接到资源。如果尚未提供 WindowsCredentials 的值,则将在连接字符串中设置 UserName和 Password。 名称 说明 无 UserName 未提供证据。 UserName 存在时设置。 Password Evidence MappedGroup WindowsCredentials
Password 存在时设置。
使用扩展字段(合计最多五个,包括 UserName 和 Password)时设置。应用程序定义为 Group 定义时设置。 应用程序定义为 Windows 身份验证时设置。
GetSsoProviderInfo 方法仅返回有关提供程序的信息,如 Vendor 名称和 Version,如下面的代码所示。 C#
public SsoProviderInfo GetSsoProviderInfo() {
//NOTE: Used by SpsSsoProvider, necessary for any SimpleSSOProvider SsoProviderInfo ssoProvInfo = new SsoProviderInfo();
ssoProvInfo.AssemblyName = Assembly.GetExecutingAssembly().FullName; ssoProvInfo.Vendor = \; ssoProvInfo.Version = \;
return ssoProvInfo; } 如
果
Excel
Services
将
使
用
SSO
提
供
程
序
,
则
还
必
须
提
供 GetCredentialsUsingTicket 和 GetTicket 方法的实现。
我们创建的 SimpleSsoProvider 类是 SSO 提供程序的一个非常简单的示例。实际的实现必须从安全库检索凭据,并保护内存中存储的任何值。 GetCredentials
返
回
的
SsoCredentials
对
象
使
用
SecureString
类
存
储 UserName 和 Password 属性以及所有 Evidence 值。SecureString 对其数据进行加密,使这些数据不会被轻易解密。 异常处理
如果我们的 SimpleSSOProvider 无法正确地确定 AppID,则引发 SingleSignonException 的实例,并使用标准 SSOReturnCodes 字段。下表显示了用于几种错误情况的一些常见 SSOReturnCodes 字段。
名称 说明 SSO_E_ACCESSDENIED SSO_E_CREDS_NOT_FOUND SSO_E_SSO_NOT_CONFIGURED SSO_E_APPLICATION_NOT_FOUND SSO_E_EXCEPTION 注册提供程序
访问被拒绝。 找不到被请求的用户或应用程序对应的凭据。 未正确配置 SSO 提供程序服务。 无法找到应用程序定义。 SSO 提供程序服务引发了异常。 若要安装 SimpleSSOProvider,必须在全局程序集缓存中将其注册,然后用 ProviderAdmin 控制台应用程序(位于 Office SharePoint Server 2007 安装目录的 bin 目录中)将其注册。ProviderAdmin 应用程序将当前的 SSO 提供程序替换为您所指定的 SSO 提供程序。在服务器场环境中,必须向场中的每台计算机都注册新的 SSO 提供程序。以下过程介绍如何注册提供程序,以及如何删除自定义提供程序并重新启用原有的提供程序。 注册 SimpleSSOProvider
? ProviderAdmin 工具采用完全限定的程序集名称以及实现 ISsoProvider 接口的类的名称。
为了注册本示例中的 SimpleSSOProvider,ProviderAdmin 工具执行以下命令。
? ? ?
Microsoft.SharePoint.Portal.SingleSignon.ProviderAdmin.exe \PublicKeyToken=e447e624e7099fd1\\删除自定义 SSO 提供程序,并重新启用原有的 SSO 提供程序。
? 若要删除自定义 SSO 提供程序并重新启用 Office SharePoint Server 2007 中原有的
SSO 提供程序,请使用以下命令注销 SSO 提供程序。
Microsoft.SharePoint.Portal.SingleSignon.ProviderAdmin.exe /u
访问单一登录提供程序
需要访问 SSO 提供程序的 Web 部件或其他组件不应再使用 Credentials 对象。使用 Credentials 对象只能检索随 Office SharePoint Server 2007 提供的默认 SSO 提供程序,即使已使用 ProviderAdmin 工具注册新的提供程序也是如此。若要获取对当前注册的 ISsoProvider 的引用,请使用以下过程。
获取对当前注册的 SSO 提供程序的引用
? 使用 SsoProviderFactory 类的 GetSsoProvider 方法获取对当前注册
的 ISsoProvider 的引用。您的代码可以使用 ISsoProvider 接口的GetCredentials 方法获取应用程序凭据,如下所示。
? ?
ISSOProvider issop;
issop = SsoProviderFactory.GetSsoProvider();
SsoCredentials ssocred = issop.GetCredentials(\SsoCredentials 类通过 SecureString 类提供对凭据的访问。可以使用多种不同的方法(如 SecureStringToBSTR 方法)将 SecureString 实例转换为可用格式,如下例所示。 C#
ISsoProvider provider = SsoProviderFactory.GetSsoProvider(); SsoCredentials creds = provider.GetCredentials(\); IntPtr pUserName = IntPtr.Zero; try {
pUserName =
System.Runtime.InteropServices.Marshal.SecureStringToBSTR(creds.UserName); //NOTE: After this has been converted to a String object, it remains in //memory until the garbage collector collects it. String userName =
System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pUserName); } finally {
// Free zero out and free the BSTR pointers. if (IntPtr.Zero != pUserName) {
System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(pUserName); }
}
从业务数据目录中使用单一登录提供程序
程旭圆
关注 - 1 粉丝 - 1
关注博主
0 0
(请您对文章做出评价)
正在阅读:
Sharepoint规划单点登录03-08
电磁学课后习题答案10-26
(完整版)人教版小学三年级音乐测试题05-02
施工组织设计方案(范文)09-29
我是你眼角的一滴泪散文11-21
困难职工帮扶长效机制创建经验交流材料(精选多篇)精品04-23
2017年度文体部工作计划05-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 单点
- Sharepoint
- 登录
- 规划
- 2013年四川会计从业资格证考试初级会计电算化(笔考)问答题汇总
- 立体几何 2014高考数学试题集锦
- 运用QC方法提高地暖地面合格率(2016)
- 教科版六年级科学下册表格教案(一二单元) - 图文
- 焊接工艺评定书
- 小学二年级班主任家长会发言稿 共六篇
- 关于加强非公有制经济组织和社会组织党的建设
- 商品流通企业会计实务 习题及参考答案
- 第6章 资本结构练习
- 大学英语四级模拟测试答案
- 2位数码管显示00-99的89c51单片机电子秒表设计 的程序和电路图
- 博时策略灵活配置混合型证券投资基金基金合同(草案)
- 各结构词语
- 专业与课程评估:地方高校教学质量保障体系的建设途径初探-2019
- Dyyouja天津农学院教案(首页)
- 信息安全维护操作规程
- 《心理学史》(第2版)叶浩生主编
- 第二章 导数与微分课后答案
- 人教版七年级下生物教学计划
- 2016年下半年宁夏省电气工程师《专业基础》:供电模拟试题