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 适配器。
在完成配置之后,本示例的工作方式将如下所示:
在包含此示例用户界面的向导应用程序中单击“ 完成 ”时,Internet Explorer 实例将启动并传递 BizTalk HTTP 接收 DLL 的 URL。
在 SSO 的帮助下,BizTalk Server 可有效地将 HTTP 请求转发到 IIS 虚拟目录中的 EmployeeData.aspx 文件,该目录已配置为使用基本身份验证。 此 ASPX 文件模拟一个进入非 Windows 后端系统的入口点。 由于您所使用的是 SSO,所以 HTTP 请求中已包含配置的凭据,这些凭据模拟了所模拟后端系统的登录帐户。
该 ASPX 文件访问 SQL 示例数据库 Northwind 的一个修改过的版本,检索与所模拟后端系统凭据相对应的雇员数据。
ASPX 文件在 HTTP 响应中返回检索到的雇员数据。
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 示例
创建 Microsoft Internet 信息服务 (IIS) 可用于进行基本身份验证的一个本地 Windows 帐户。 SSO 将 Windows 域帐户映射到该本地 Windows 帐户。 例如,可使用您的名字创建一个本地 Windows 帐户。
注意
如果您使用的计算机是一台域控制器,可以创建域帐户并将您所登录的域帐户映射到此帐户。
使用 Microsoft SQL Server Enterprise Manager 打开 Northwind 示例数据库中的 Employees 表,然后添加与刚创建的本地 Windows 帐户对应的行,包括各种列的示例数据。 您在 Employees 表的 LastName 列中添加的值必须与您在步骤 1 中添加的本地 Windows 帐户的用户名相同。
确保 ASP.NET 帐户 (ASPNET) 对 Northwind 数据库拥有读取权限。
使用 Visual Studio 打开项目文件 SsoSample.csproj。
在 “生成” 菜单上,单击 “生成解决方案” 。
注意
系统可能会要求你先保存解决方案文件,然后才能继续生成。
如果找不到项目的以下 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 示例
运行可执行文件 SsoSample.exe,可在以下文件夹中找到:
<示例路径>\SSO\HTTPSSO\bin\Debug\
此示例的向导应用程序随即打开。
在“欢迎”页上,接受用于配置 IIS、SSO 和 BizTalk 的默认设置,然后单击“ 下一步”。
在“IIS 配置”页上,接受要创建的两个 IIS 虚拟目录的默认设置,然后单击“ 下一步”。
在“SSO 配置”页上,接受关联应用程序的默认设置,可以使用 “添加应用程序 ”按钮进行访问。
在“SSO 配置”页上,接受用户映射的大部分默认设置,可使用 “添加映射 ”按钮进行访问。 根据生成和初始化此示例时添加的本地 Windows 帐户为以下两个设置提供值。
设置 值 外部用户名 设置为添加的本地 Windows 用户帐户名称。 外部用户密码 设置为添加的本地 Windows 用户帐户密码。 在“SSO 配置”页上,单击“ 下一步”。
在“BizTalk 配置”页上,接受发送和接收端口的默认设置,等等,然后单击“ 下一步”。
注意
如果想要查看简单的用户验证而不是从 Northwinds SQL 数据库的 Employee 表拉取的示例数据,可以将默认发送端口设置从 EmployeeData.aspx 更改为 ValidateUser.aspx 。 进行此更改会更改在步骤 9 中单击“ 完成 ”后在浏览器中显示的输出的性质。
查看与正在执行的 IIS、SSO 和 BizTalk 配置对应的状态消息。 可以在文件 SsoSample.cs 中定义的 IisConfigurator、 SsoConfigurator 和 BtsConfigurator 类中找到在此阶段运行的代码。 配置完成后,单击“ 下一步”。
在向导应用程序的最后一页上,接受“开始浏览器”的默认设置, (所选检查框和带有 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 项、关联应用程序等,以免发生配置错误。
若要从此示例中清理,请使用以下过程。
从此示例中清理
根据需要,反转你执行的手动配置,例如删除本地 Windows 帐户。
删除与虚拟目录对应的 IIS 应用程序,然后删除本示例创建的 IIS 虚拟目录。
使用 BizTalk 管理控制台,取消登记与本示例关联的发送端口,然后删除该发送端口。 然后,删除与此示例关联的接收端口(及其接收位置)。
使用 Ssomanage 应用程序(位于 \Program Files\Common Files\Enterprise Single Sign-On\)删除本示例的 SSO 应用程序:
Ssomanage –deleteapp SsoSampleApplication