HTTPSSO(BizTalk Server 示例)

HTTPSSO 示例演示如何将企业单 Sign-On (SSO) 功能与 Microsoft BizTalk Server HTTP 适配器配合使用。

注意

本示例不支持 64 位操作系统。

本示例的用途

本示例演示一个端到端的应用方案,该方案使用 SSO 及 BizTalk HTTP 发送和接收适配器来模拟 SSO 如何允许用户在通过 Windows 的身份验证之后无需提供其他凭据即可登录到非 Microsoft Windows 系统。

此外,本示例还使用 SSO 的管理和映射模块来创建使用 SSO 的互操作客户端 DLL 的关联应用程序和 SSO 映射。

示例通过实现端到端方案的以下几个方面演示了 SSO 的使用方法:

  • 用户界面,由配置为使用 Windows 集成身份验证的一个 Microsoft Internet 信息服务 (IIS) 虚拟目录表示。

  • 后端系统,由配置为使用基本身份验证的一个 IIS 虚拟目录表示。

  • 后端数据库,由 SQL 示例数据库 Northwind 表示。

此示例假定已安装 BizTalk Server 和 SSO。 你必须在 Windows XP Professional 上拥有 BizTalk Server、IIS、SSO 和 COM+ 的管理员权限。 此外,您还必须是 SSO Administrators、BizTalk Server Administrators 和 BizTalk Isolated Host Users Windows 组的成员。

若要有效利用本示例,您应当充分了解 SSO 和 BizTalk HTTP 适配器。 例如,您应当知道关联应用程序在 SSO 的上下文环境下的含义。 有关这些主题的信息,请参阅 使用 SSO。 另请参阅 HTTP 适配器

在完成配置之后,本示例的工作方式将如下所示:

  1. 在包含此示例用户界面的向导应用程序中单击“ 完成 ”时,Internet Explorer 实例将启动并传递 BizTalk HTTP 接收 DLL 的 URL。

  2. 在 SSO 的帮助下,BizTalk Server 可有效地将 HTTP 请求转发到 IIS 虚拟目录中的 EmployeeData.aspx 文件,该目录已配置为使用基本身份验证。 此 ASPX 文件模拟一个进入非 Windows 后端系统的入口点。 由于您所使用的是 SSO,所以 HTTP 请求中已包含配置的凭据,这些凭据模拟了所模拟后端系统的登录帐户。

  3. 该 ASPX 文件访问 SQL 示例数据库 Northwind 的一个修改过的版本,检索与所模拟后端系统凭据相对应的雇员数据。

  4. ASPX 文件在 HTTP 响应中返回检索到的雇员数据。

  5. BizTalk Server 将该 HTTP 响应发送到 Internet Explorer,后者向用户显示返回的雇员数据。

    如果绕过 BizTalk Server 和 SSO,并且直接浏览 EmployeeData.aspx 文件,会显示一个 Windows 对话框,提示您输入凭据。

    有关演示如何使用命令行实用工具 ssomanage.exe 配置 SSO(例如创建关联应用程序和用户映射)的示例,请参阅管理 (BizTalk Server 示例)

本示例所在的位置

<示例路径>\SSO\HTTPSSO\

下表显示了本示例中的文件及其用途说明:

文件 说明
AssemblyInfo.cs,SsoSample.csproj 本 HTTP SSO 示例的项目文件和相关文件。
SsoSample.cs 作为本示例重要组成部分的 HTTP SSO 图形应用程序的顶层 Microsoft Visual C# 源文件。 此文件包含在名为 SsoConfigurator 的类中的 SSO 配置代码,该类最终是此示例的重点。
在 \Scripts 文件夹中:EmployeeData.aspx 用于在雇员发出请求以查看个人数据(无论是直接浏览还是使用 SSO)时访问和查询后端数据库(在本例中,为 SQL Northwind 数据库)。
在 \Scripts 文件夹中:ValidateUser.aspx 用于验证用户并报告用户是否为有效用户的简单测试(无论是直接浏览还是使用 SSO)。
在 \UI 文件夹中:AddApplication.cs、AddApplication.resx、AddMapping.cs、AddMapping.resx、App.ico、BtsPage.cs、BtsPage.resx、ExecutePage.cs、ExecutePage.resx、 FinishPage.cs、FinishPage.resx、IisPage.cs、IisPage.resx、InfoPage.cs、InfoPage.resx、PageBase.cs、PageBase.resx、SsoPage.cs、SsoPage.resx、SsoSampleWizard.cs、SsoSampleWizard.resx、WelcomePage.cs、WelcomePage.resx、WorkPage.cs、WorkPage.resx 辅助性的 Visual C# 源文件及其关联的 XML 格式的资源文件,这些文件用于构成了示例重要组成部分的 HTTP SSO 图形应用程序。

生成和初始化此示例

生成和初始化 HTTPSSO 示例

  1. 创建 Microsoft Internet 信息服务 (IIS) 可用于进行基本身份验证的一个本地 Windows 帐户。 SSO 将 Windows 域帐户映射到该本地 Windows 帐户。 例如,可使用您的名字创建一个本地 Windows 帐户。

    注意

    如果您使用的计算机是一台域控制器,可以创建域帐户并将您所登录的域帐户映射到此帐户。

  2. 使用 Microsoft SQL Server Enterprise Manager 打开 Northwind 示例数据库中的 Employees 表,然后添加与刚创建的本地 Windows 帐户对应的行,包括各种列的示例数据。 您在 Employees 表的 LastName 列中添加的值必须与您在步骤 1 中添加的本地 Windows 帐户的用户名相同。

  3. 确保 ASP.NET 帐户 (ASPNET) 对 Northwind 数据库拥有读取权限。

  4. 使用 Visual Studio 打开项目文件 SsoSample.csproj。

  5. “生成” 菜单上,单击 “生成解决方案”

    注意

    系统可能会要求你先保存解决方案文件,然后才能继续生成。

    如果找不到项目的以下 BizTalk 程序集引用,请将其删除,从指示的位置重新添加这些引用,然后再次生成:

    • Microsoft.BizTalk.ExplorerOM。 默认情况下,Microsoft.BizTalk.ExplorerOM.dll 文件位于 \Program Files (x86) \Microsoft BizTalk Server <VERSION>Developer Tools\中。

    • Microsoft.BizTalk.SSOClient.Interop。 默认情况下,Microsoft.BizTalk.Interop.SSOClient.dll 文件位于 ProgramFiles>\Common Files\Enterprise Single Sign-On\文件夹中<。

      这会在以下文件夹中生成可执行文件 SsoSample.exe:

      <示例路径>\SSO\HTTPSSO\bin\Debug\

运行本示例

注意

如果在 IIS 6.0 上以辅助进程隔离模式运行本示例,将为两个虚拟目录都创建应用程序池。 必须在 Windows 帐户中手动为这两个应用程序池配置标识, (可以在 Internet Information Services Manager) 中配置标识。

运行 HTTPSSO 示例

  1. 运行可执行文件 SsoSample.exe,可在以下文件夹中找到:

    <示例路径>\SSO\HTTPSSO\bin\Debug\

    此示例的向导应用程序随即打开。

  2. 在“欢迎”页上,接受用于配置 IIS、SSO 和 BizTalk 的默认设置,然后单击“ 下一步”。

  3. 在“IIS 配置”页上,接受要创建的两个 IIS 虚拟目录的默认设置,然后单击“ 下一步”。

  4. 在“SSO 配置”页上,接受关联应用程序的默认设置,可以使用 “添加应用程序 ”按钮进行访问。

  5. 在“SSO 配置”页上,接受用户映射的大部分默认设置,可使用 “添加映射 ”按钮进行访问。 根据生成和初始化此示例时添加的本地 Windows 帐户为以下两个设置提供值。

    设置
    外部用户名 设置为添加的本地 Windows 用户帐户名称。
    外部用户密码 设置为添加的本地 Windows 用户帐户密码。
  6. 在“SSO 配置”页上,单击“ 下一步”。

  7. 在“BizTalk 配置”页上,接受发送和接收端口的默认设置,等等,然后单击“ 下一步”。

    注意

    如果想要查看简单的用户验证而不是从 Northwinds SQL 数据库的 Employee 表拉取的示例数据,可以将默认发送端口设置从 EmployeeData.aspx 更改为 ValidateUser.aspx 。 进行此更改会更改在步骤 9 中单击“ 完成 ”后在浏览器中显示的输出的性质。

  8. 查看与正在执行的 IIS、SSO 和 BizTalk 配置对应的状态消息。 可以在文件 SsoSample.cs 中定义的 IisConfiguratorSsoConfiguratorBtsConfigurator 类中找到在此阶段运行的代码。 配置完成后,单击“ 下一步”。

  9. 在向导应用程序的最后一页上,接受“开始浏览器”的默认设置, (所选检查框和带有 URL http://localhost/SsoSampleBizTalkHttpReceive/BTSHttpReceive.dll?<message/>) 的文本框,然后单击“完成”。

    Internet Explorer 的实例将打开,并很快显示添加到 Northwinds SQL 数据库的 Employee 表的示例员工数据。

    出于比较目的,可以绕过 BizTalk 和 SSO,直接浏览到其中一个 ASPX 文件:

    • http://localhost/SsoSampleServerApplication/ValidateUser.aspx

    • http://localhost/SsoSampleServerApplication/EmployeeData.aspx

    在这两种情况下,由于绕过 BizTalk 和 SSO,IIS 会提示你输入身份验证信息, (使用之前) 创建的本地 Windows 帐户信息。

注释

SsoSample.exe 向导应用程序配置两个 IIS 虚拟目录:

  • 第一个虚拟目录配置了 Windows 集成身份验证,对应于 BizTalk HTTP 接收 ISAPI 扩展。 它必须与位于以下文件夹中的 .dll 文件 BTSHTTPReceive.dll 相关联:

    <安装路径>\HttpReceive

  • 第二个虚拟目录配置了基本身份验证,并模拟接受用户 ID 和密码以对用户进行身份验证的后端系统。 它必须与位于以下文件夹中的一个 ASPX 文件(ValidateUser.aspx 或 EmployeeData.aspx)相关联:

    <示例路径>\SSO\HTTPSSO\Scripts

    可以使用 SsoSample.exe 向导应用程序配置一个或多个关联应用程序。 对于其中每个关联应用程序,可以创建一个或多个用户映射。 其中每个用户映射都会将 Windows 用户帐户映射到用于访问特定后端系统的帐户。 在此示例中,该帐户是一个本地 Windows 帐户,用于向模拟正版后端系统的第二个 IIS 虚拟目录进行身份验证。

若要重新运行此示例,有几个选择:

  • 在 Internet Explorer 中直接浏览到以下 URL:

    http://localhost/SsoSampleBizTalkHttpReceive/BTSHttpReceive.dll?<message/>

  • 再次运行向导应用程序,但清除第一页上的所有配置检查框。

  • 再次运行向导应用程序,在第一页中选中配置检查框,但请仔细适当地配置其他 BizTalk 项、关联应用程序等,以免发生配置错误。

若要从此示例中清理,请使用以下过程。

从此示例中清理

  1. 根据需要,反转你执行的手动配置,例如删除本地 Windows 帐户。

  2. 删除与虚拟目录对应的 IIS 应用程序,然后删除本示例创建的 IIS 虚拟目录。

  3. 使用 BizTalk 管理控制台,取消登记与本示例关联的发送端口,然后删除该发送端口。 然后,删除与此示例关联的接收端口(及其接收位置)。

  4. 使用 Ssomanage 应用程序(位于 \Program Files\Common Files\Enterprise Single Sign-On\)删除本示例的 SSO 应用程序:

    Ssomanage –deleteapp SsoSampleApplication  
    

另请参阅

SSO(BizTalk Server 示例文件夹)