针对 Kerberos 约束委托对 Analysis Services 进行配置

配置 Analysis Services 使用 Kerberos 身份验证时,你很可能希望实现以下两个结果中的一个或全部:在查询数据时让 Analysis Services 模拟一个用户标识;或者让 Analysis Services 将一个用户标识委托给下级服务。每个方案都具有稍有不同的配置要求。这两个方案都要求进行验证,以便确保正确完成配置。

提示提示

Microsoft Kerberos Configuration Manager for SQL Server 是一款诊断工具,可帮助解决与 Kerberos Configuration Manager for SQL Server 相关的连接问题。有关详细信息,请参阅 Microsoft Kerberos Configuration Manager for SQL Server

本主题包含以下各节:

  • 允许 Analysis Services 模拟某个用户标识

  • 配置 Analysis Services 以实现可信委托

  • 测试模拟的标识或委托的标识

注意注意

如果与 Analysis Services 的连接是单一跃点,或者您的解决方案使用 SharePoint Secure Store Service 或 Reporting Services 提供的预存凭据,则不需要使用委托。如果所有连接都是从 Excel 到 Analysis Services 数据库的直接连接或均基于已存储凭据,则可以使用 Kerberos(或 NTLM)而无需配置约束委派。

如果用户标识必须流经多个计算机连接(称为“双跃点”),则需使用 Kerberos 约束委派。如果 Analysis Services 数据访问依赖于用户标识,并且连接请求来自某一委托服务,则应使用下一节中的核对清单确保 Analysis Services 能够模拟原始调用方。有关 Analysis Services 身份验证流的详细信息,请参阅 Microsoft BI 身份验证和身份委托

作为一项最佳安全配置,Microsoft 始终建议约束委派而不是非约束委派。非约束委派是一大主要安全风险,因为它允许服务标识在任何下游计算机、服务或应用程序上模拟其他用户(与通过约束委派显式定义的那些服务完全不同)。

允许 Analysis Services 模拟某个用户标识

为了允许上级服务(例如 Reporting Services、IIS 或 SharePoint)模拟 Analysis Services 上的用户标识,您必须为这些服务配置 Kerberos 约束委派。在这种情况下,Analysis Services 使用委托服务提供的标识模拟当前用户,并且基于该用户标识的角色成员身份返回结果。

任务

说明

步骤 1:确认帐户是否适合委托

请确保用于运行服务的帐户在 Active Directory 中具有正确的属性。Active Directory 中的服务帐户不得标记为敏感帐户,也不得明确从委托方案中排除。有关详细信息,请参阅理解用户帐户

重要说明重要提示

通常,所有帐户和服务器必须属于同一个 Active Directory 域或者同一个林中的可信域。但是,因为 Windows Server 2012 支持跨域边界的委托,如果域功能级别是 Windows Server 2012,你可以配置跨域边界的 Kerberos 约束委派。另一方法是针对 HTTP 访问配置 Analysis Services 并且在客户端连接上使用 IIS 身份验证方法。有关详细信息,请参阅配置对 Internet Information Services (IIS) 7.0 上 Analysis Services 的 HTTP 访问

步骤 2:注册 SPN

在设置约束委派之前,您必须为 Analysis Services 实例注册服务主体名称 (SPN)。在为中间层服务配置 Kerberos 约束委派时,需要提供 Analysis Services SPN。有关说明,请参阅针对 Analysis Services 实例的 SPN 注册

服务主体名称 (SPN) 指定域中为 Kerberos 身份验证配置的服务的唯一标识。使用集成安全性的客户端连接通常请求 SPN 作为 SSPI 身份验证的一部分。该请求被转发到 Active Directory 域控制器 (DC),并且由 KDC 授予一个票证(如果客户端提供的 SPN 在 Active Directory 中有匹配的 SPN 注册)。

步骤 3:配置约束委派

在验证要使用的帐户并为这些帐户注册 SPN 后,下一步是配置上级服务(例如 IIS、Reporting Services 或 SharePoint Web 服务)进行约束委派,并将 Analysis Services SPN 指定为允许委托的特定服务。

在 SharePoint 中运行的服务(例如 SharePoint 模式下的 Excel Services 或 Reporting Services)常常承载使用 Analysis Services 多维或表格数据的工作簿和报表。为这些服务配置约束委派是一个常见的配置任务,并且是支持从 Excel Services 执行数据刷新所必需的。以下链接提供有关 SharePoint 服务以及其他可能向 Analysis Services 数据提出下游数据连接请求的服务的说明:

步骤 4:测试连接

在测试时,应使用不同标识从远程计算机进行连接,并使用与业务用户相同的应用程序查询 Analysis Services。您可以使用 SQL Server Profiler 来监视连接。您应该会看到发出请求的用户标识。有关详细信息,请参阅本节中的测试模拟的标识或委托的标识。

配置 Analysis Services 以实现可信委托

通过将 Analysis Services 配置为使用 Kerberos 约束委派,可允许服务模拟下级服务(例如关系数据库引擎)上的客户端标识,然后就可以像直接连接客户端一样查询数据。

针对 Analysis Services 的委托方案被限制为针对 DirectQuery 模式配置的表格模型。这是 Analysis Services 可以将委托的凭据传递到其他服务的唯一情形。在所有其他方案中,比如前一节提到的 SharePoint 方案,Analysis Services 位于委托链的接收端。有关 DirectQuery 的详细信息,请参阅 DirectQuery 模式(SSAS 表格)

注意注意

一大常见误解是 ROLAP 存储、处理操作或对远程分区的访问会以某种方式为约束委派提出要求。事实并非如此。所有这些操作均直接由服务帐户(也称为帐户)代表自己执行。只要将这些操作的权限直接授予服务帐户(例如:授予对相关数据库的 db_datareader 权限,以便此服务可以处理数据),Analysis Services 中的这些操作就不需要委托。有关服务器操作和权限的详细信息,请参阅配置服务帐户 (Analysis Services)

本节说明如何针对信任的委托设置 Analysis Services。在完成此任务后,Analysis Services 将能把委派凭据传递给 SQL Server,以支持用于 Tabular 方案的 DirectQuery 模式。

准备工作:

在两个先决条件均得到满足后,继续执行以下步骤。请注意,若要设置约束委派,您必须是域管理员。

  1. 在“Active Directory 用户和计算机”中,找到 Analysis Services 按其运行的服务帐户。右键单击该服务帐户,然后选择**“属性”**。

    出于说明目的,以下屏幕快照使用 OlapSvc 和 SQLSvc 分别表示 Analysis Services 和 SQL Server。

    OlapSvc 是为针对 SQLSvc 的约束委派将配置的帐户。在您完成此任务后,OlapSvc 将有权将服务票证上的委托的凭据传递给 SQLSvc,并且在请求数据时模拟原始调用方。

  2. 在“委托”选项卡上,选择**“仅信任此用户对指定服务的委托”,后跟“仅使用 Kerberos”。单击“添加”**以便指定允许 Analysis Services 将凭据委托到的服务。

    只有在将用户帐户 (OlapSvc) 分配给某一服务 (Analysis Services) 并且为该服务注册了 SPN 的情况下,“委托”选项卡才会出现。SPN 注册要求该服务正在运行。

    Active Directory 中的帐户属性页

  3. 在“添加服务”页上,单击**“用户或计算机”**。

    Active Directory 中的添加服务页

  4. 在“选择用户或计算机”页上,输入用于运行 SQL Server 实例并且向 Analysis Services 表格模型数据库提供数据的帐户。单击**“确定”**接受该服务帐户。

    如果您不能选择想要的帐户,则确认 SQL Server 正在运行并且为该帐户注册了 SPN。有关针对数据库引擎的 SPN 的详细信息,请参阅为 Kerberos 连接注册服务主体名称

    Active Directory 中的选择用户或计算机

  5. 该 SQL Server 实例现在应出现在“添加服务”中。也在使用该帐户的任何服务也将出现在该列表中。选择您要使用的 SQL Server 实例。单击**“确定”**接受该实例。

    Active Directory 中的添加服务

  6. 该 Analysis Services 服务帐户的属性页现在应类似于以下屏幕快照。单击**“确定”**保存所做的更改。

    帐户属性页,已填充

  7. 通过基于不同标识从远程客户端计算机进行连接来测试委托是否成功和查询表格模型。您应在 SQL Server Profiler 中看到针对请求的用户标识。

测试模拟的标识或委托的标识

使用 SQL Server Profiler 可监视正查询数据的用户的标识。

  1. 在 Analysis Services 实例上启动 SQL Server Profiler,然后开始一个新跟踪。

  2. 在“事件选择”中,确认在“安全审核”部分中选中了 Audit Login 和 Audit Logout。

  3. 通过某一应用程序服务(例如 SharePoint 或 Reporting Services)从远程客户端计算机连接到 Analysis Services。Audit Login 事件将显示连接到 Analysis Services 的用户的标识。

彻底的测试将要求使用可捕获网络上的 Kerberos 请求和响应的网络监视工具。针对 Kerberos 筛选的网络监视器实用工具 (netmon.exe) 可用于此任务。有关使用 Netmon 3.4 和其他工具测试 Kerberos 身份验证的详细信息,请参阅配置 Kerberos 身份验证:核心配置 (SharePoint Server 2010)

另外,请参阅Active Directory 中最易混淆的对话框,了解在 Active Directory 对象的属性对话框的“委托”选项卡中,每个选项的详尽说明。此文章也说明了如何使用 LDP 来测试和解释测试结果。

请参阅

概念

连接到 Analysis Services

针对 Analysis Services 实例的 SPN 注册

连接字符串属性 (Analysis Services)

其他资源

Microsoft BI 身份验证和身份委托

使用 Kerberos 相互身份验证