`
gzg844cz
  • 浏览: 41852 次
社区版块
存档分类
最新评论

使用 Microsoft 客户端配置单一登录

 
阅读更多

使用 Microsoft 客户端配置单一登录
2010年12月31日
  以下部分描述如何通过基于简单和受保护协商(Simple and Protected Negotiate,简称 SPNEGO)机制和 Kerberos 协议的 Windows 身份验证以及 WebLogic 协商标识声明提供程序来使用 Microsoft 客户端设置单一登录(Single Sign-On,简称 SSO)。   通过使用 Microsoft 客户端进行单一登录 (SSO),可以在 WebLogic Server 域中运行的 Web 应用程序或 Web Service 与 Microsoft 域中的 .NET Web Service 客户端或浏览器客户端(例如,Internet Explorer)之间进行跨平台身份验证。Microsoft 客户端必须使用基于简单和受保护协商 (SPNEGO) 机制的Windows 身份验证。   跨平台身份验证通过仿真使用 Kerberos 协议的本地 Windows 到 Windows 身份验证服务的协商行为来实现。为使跨平台身份验证正常运行,非 Windows 服务器(本文中为 WebLogic Server)需要解析 SPNEGO 标记才能提取随后将用于身份验证的 Kerberos 标记。   要通过 Microsoft 客户端使用 SSO,需要:   在主机上安装:   Windows 2000 或更高版本 
  完全配置的 Active Directory 身份验证服务。特定的 Active Directory 要求包括: 
  用于映射 Kerberos 服务的用户帐户 
  这些帐户的服务委托人名称(Service Principal Name,简称为 SPN) 
  创建 Keytab 文件并复制到 WebLogic Server 域的启动目录中 
  已正确安装 WebLogic Server 并将其配置为通过 Kerberos 进行身份验证(如本文所述) 
  在客户端系统上安装:   Windows 2000 Professional SP2 或更高版本 
  以下类型的客户端之一: 
  经过适当配置的 Internet Explorer 浏览器。支持 Internet Explorer 6.01 或更高版本。 
  .NET Framework 1.1 和经过适当配置的 Web Service 客户端。 
  客户端必须登录到 Windows 2000 域并且必须从该域中的 Active Directory 服务器获取 Kerberos 凭据。本地登录将不起作用。   使用 Microsoft 客户端配置 SSO 需要经过对 Microsoft Active Directory、客户端和 WebLogic Server 域的设置过程(有关这些过程的详细信息,请参阅以下部分)。   在 Active Directory 中定义一个委托人来表示 WebLogic Server。Kerberos 协议使用 Microsoft 中的 Active Directory 服务器来存储所需的安全信息。 
  需要在 Microsoft 域中访问的任何 Microsoft 客户端都必须设置为使用 Windows 集成身份验证,以便在可用时发送 Kerberos 票据。 
  在 WebLogic Server 域的安全领域中,配置一个协商标识声明提供程序。SSO 中使用的 Web 应用程序或 Web Service 需要以特定的形式设置身份验证。此外,还必须创建定义 WebLogic Server 的 Kerberos 标识的位置的 JAAS 登录文件。 
  要使用 Microsoft 客户端配置 SSO,请执行下列操作:   将网络域配置为使用 Kerberos。请参阅将网络域配置为使用 Kerberos 。 
  创建 WebLogic Server 的 Kerberos 标识。 
  在运行 WebLogic Server 的主机的 Active Directory 中创建用户帐户。 
  创建该帐户的服务委托人名称。 
  创建该帐户的用户映射和 keytab 文件。 
  请参阅创建 WebLogic Server 的 Kerberos 标识 。   选择一个 Microsoft 客户端(Web Service 或浏览器)并将其配置为使用 Windows 集成身份验证。请参阅将 Microsoft 客户端配置为使用 Windows 集成身份验证 。 
  将 WebLogic Server 域设置为使用 Kerberos 身份验证。 
  创建一个 JAAS 登录文件并使其指向步骤 1 中创建的 Microsoft 域中的 Active Directory 服务器和 keytab 文件。请参阅创建 JAAS 登录文件 。 
  配置 WebLogic Server 安全领域中的协商标识声明提供程序。请参阅配置协商标识声明提供程序 。 
  使用特定的启动参数启动 WebLogic Server。请参阅通过启动参数在 WebLogic Server 中使用 Kerberos 身份验证 。 
  以下部分将详细描述这些步骤。   通过使用 Active Directory 和 Kerberos 服务,Windows 域控制器可以充当 Kerberos 密钥分发中心(Key Distribution Center,简称 KDC)。在任何域控制器上,Active Directory 和 Kerberos 服务都自动运行。   要在网络域控制器中配置 Kerberos,需要将每台要访问 KDC 的计算机配置为查找 Kerberos 领域和可用的 KDC 服务器。在 Windows 计算机上,修改 C:\winnt 文件夹中的 krb5.ini 文件。在 UNIX 计算机上,修改 krb5.conf 文件,其默认位置为 /etc/krb5/ 。例如:   清单 6-1 示例 krb5.ini 文件   Active Directory 提供对服务委托人名称 (SPN) 的支持,SPN 是 Kerberos 身份验证中的关键组件。它们是服务器上所运行的服务的唯一标识符。需要为使用 Kerberos 身份验证的每一项服务都设置 SPN,这样客户端才能识别网络上的服务。SPN 通常类似于 name@YOUR.REALM。需要定义 SPN 来表示 Kerberos 领域中的 WebLogic Server。如果某项服务未设置 SPN,客户端将无法找到该服务。如果未正确设置 SPN,Kerberos 身份验证将无法进行。Keytab 文件是用于存储 SPN 的机制。Keytab 文件将复制到 WebLogic Server 域并在登录过程中使用。此配置步骤描述如何创建 WebLogic Server 的 SPN、用户映射和 keytab 文件。   此配置步骤需要使用下列 Active Directory 实用工具:  注意:
  setspn 和 ktpass Active Directory 实用工具都是 Microsoft 的产品。因此,BEA Systems 不提供有关此类实用工具的完整文档。有关详细信息,请参阅适当的 Microsoft 文档。  要创建 WebLogic Server 的 Kerberos 标识,请执行下列步骤:   在 Active Directory 服务器中,为运行 WebLogic Server 的主机创建一个用户帐户(选择"新建">"用户",而不是"新建">"计算机")。 
  在创建该用户帐户时,应使用计算机的简单名称。例如,如果主机名为 myhost.example.com ,则在 Active Directory 中创建一个名为 myhost. 的用户。   请记录下创建用户帐户时定义的密码。在步骤 3 中将需要使用该密码。请勿选择"User must change password at next logon "选项或任何其他密码选项。   配置新用户帐户以使其符合 Kerberos 协议。此用户帐户的加密类型必须是 DES 并且必须要求进行 Kerberos 预身份验证。 
  在左窗格的"用户"树中,用鼠标右键单击该用户帐户的名称,然后选择"属性"。 
  选择"帐户"选项卡并选中"此帐户需要使用 DES 加密类型"框。确保未选中其他框,尤其不要选中"不要求进行 Kerberos 预身份验证"框。 
  设置加密类型可能会损坏密码。因此,应重置用户密码,方法是用鼠标右键单击该用户帐户的名称,选择"重设密码",然后重新输入之前指定的同一密码。 
  使用 setspn 实用工具为步骤 1 中创建的用户帐户创建服务委托人名称 (SPN)。请输入下列命令: setspn -a host/myhost.example.com myhost
  setspn -a HTTP/myhost.example.com myhost
  使用以下命令检查与您的用户帐户关联的 SPN: setspn -L account name
  这是一个重要步骤。如果将同一服务链接到 Active Directory 服务器中的另一帐户,则客户端将不会向服务器发送 Kerberos 票据。   使用 ktpass 实用工具创建用户映射: 
  Windows 
  ktpass -princ host/myhost@Example.CORP -pass password -mapuser myhost -out c:\temp\myhost.host.keytab  创建 keytab 文件。在 Windows 上,ktab 实用工具管理密钥表中的委托人名称和密钥对,并允许您列出、添加、更新或删除委托人名称和密钥对。在 UNIX 上,最好使用 ktpass 实用工具。 
  Windows   在运行 WebLogic Server 的主机上运行 ktab 实用工具来创建 keytab 文件: ktab -k keytab-filename -a myhost@Example.CORP
  将 keytab 文件复制到 WebLogic Server 域的启动目录中。 
  UNIX   使用 ktpass 实用工具并通过类似以下形式的命令创建用户映射,其中 password 是在步骤 1 中创建的用户帐户的密码: ktpass -princ HTTP/myhost@Example.CORP -pass password -mapuser myhost 
  -out c:\temp\myhost.HTTP.keytab
  将步骤 a 中创建的 keytab 文件复制到 WebLogic Server 域的启动目录中。 
  以根用户身份登录,然后使用 ktutil  实用工具将它们合并到一个 keytab 文件中,如下所示: ktutil: "rkt myhost.host.keytab"
  ktutil: "rkt myhost.HTTP.keytab"
  ktutil: "wkt mykeytab"
  ktutil: "q"
  运行 kinit  实用工具验证 Kerberos 身份验证是否正常运行。 kinit -k -t keytab-fileaccount-name
  其输出应类似以下内容:  New ticket is stored in cache file C:\Documents and 
  Settings\Username\krb5cc_MachineB
  应确保将需要用于单一登录的 Microsoft 客户端配置为使用 Windows 集成身份验证。以下部分描述如何将 .NET Web 服务器和 Internet Explorer 浏览器客户端配置为使用 Windows 集成身份验证。   要将 .NET Web Service 配置为使用 Windows 身份验证,请执行下列操作:   在 Web Service 的 web.config 文件中,将 IIS 和 ASP.NET 的身份验证模式设置为 Windows,如下所示: 
  此设置通常是默认设置。   添加 Web Service 客户端需要传递给代理 Web Service 对象的语句,以便通过 SOAP 发送凭据。 
  例如,如果某项 Web Service 的 Web Service 客户端由代理对象 conv 表示,则语法为:  /*
  * 明确将凭据传递到 Web Service
  */
  conv.Credentials =
  System.Net.CredentialCache.DefaultCredentials;
  要将 Internet Explorer 浏览器配置为使用 Windows 身份验证,请在 Internet Explorer 中执行以下过程:   在 Internet Explorer 中,选择"工具">"Internet 选项"。 
  选择"安全"选项卡。 
  选择"本地 Intranet",然后单击"站点"。 
  在"本地 Intranet"弹出窗口中,确保选中"包括所有不使用代理服务器的站点"和"包括没有列在其他区域的所有本地 (Intranet) 站点"选项。 
  单击 "高级" 。 
  在"本地 Intranet"(高级)对话框中,添加所有要在参与 SSO 配置的 WebLogic Server 实例中使用的相对域名(例如,myhost.example.com ),然后单击"确定"。 
  选择"工具">"Internet 选项"。 
  选择"安全"选项卡。 
  选择"本地 Intranet",然后单击"自定义级别..."。 
  在"安全设置"对话框中,滚动到"用户验证"部分。 
  选择"只在 Intranet 区域自动登录"。使用此选项时,用户不必重新输入登录凭据,它是此解决方案的关键部分。 
  单击"确定"。 
  如果启用了代理服务器,则:   选择"工具">"Internet 选项"。 
  选择"连接"选项卡,然后单击"局域网设置"。 
  验证代理服务器地址和端口号是否正确。 
  单击"高级"。 
  在"代理服务器设置"对话框中,确保在"例外"字段中输入了所有需要的域名。 
  单击"确定"关闭"代理服务器设置"对话框。 
  如果运行 Internet Explorer 6.0,则除了已描述的设置外,还需要进行另一项设置。   在 Internet Explorer 中,选择"工具">"Internet 选项"。 
  选择"高级"选项卡。 
  滚动到"安全"部分。 
  确保选中"启用集成 Windows 身份验证(需要重启动)",然后单击"确定"。 
  如果未选中此选项,请重新启动计算机。 
  如果在 Windows 或 UNIX 平台上运行 WebLogic Server,则需要 JAAS 登录文件。JAAS 登录文件指示要的 WebLogic 安全框架使用 Kerberos 身份验证并定义包含 WebLogic Server 的 Kerberos 标识信息的 keytab 文件的位置。该文件的位置在 WebLogic Server 的 java.security.auth.login.config 启动参数中指定,如通过启动参数在 WebLogic Server 中使用 Kerberos 身份验证 中所述。  清单 6-2 包含一个用于 Kerberos 身份验证的示例 JAAS 登录文件。   清单 6-2 用于 Kerberos 身份验证的示例 JAAS 登录文件   WebLogic Server 包含一个安全提供程序 - 协商标识声明提供程序,它可支持使用 Microsoft 客户端的单一登录 (SSO)。此标识声明提供程序会解码简单和受保护协商 (SPNEGO) 标记来获取 Kerberos 标记,并在验证 Kerberos 标记后将 Kerberos 标记映射到 WebLogic 用户。需要在 WebLogic 安全领域中配置协商标识声明提供程序,以便启用 Microsoft 客户端的 SSO。请参阅"管理控制台联机帮助"中的配置协商标识声明提供程序 和配置身份验证和标识声明提供程序 。   要在 WebLogic Server 中使用 Kerberos 身份验证,请在启动 WebLogic Server 时使用下列启动参数:   其中   java.security.krb5.realm 定义运行 Active Directory 服务器的 Microsoft 域。 
  java.security.krb5.kdc 定义运行 Active Directory 服务器的主机名。 
  java.security.auth.login.config 定义 Kerberos 登录信息的位置。 
  javax.security.auth.useSubjectCredsOnly 指定可以使用主题凭据之外的身份验证机制。 
  weblogic.security.enableNegotiate 可使 WebLogic Server 中的 Servlet 容器支持 SPNEGO 使用的协商标记。 
  发表于 @ 2010年12月31日 13:25:00 |
分享到:
评论

相关推荐

    Windows Server 2003服务器群集创建和配置指南

    容错服务器通常使用深层硬件冗余,加上专门的软件,几乎可以即时地恢复任何单一的硬件或软件错误。这些解决方案要比Windows群集(Windows Clustering)解决方案昂贵得多,因为组织必须为处于空闲状态等待错误的冗余...

    SharePoint Server2007宝典.part02

    11.4.2 配置网站使用率分析报告 254 11.4.3 扩展配额 255 11.4.4 删除未使用的网站 256 11.5 配置移动访问 258 11.6 小结 258 第12章 实现记录管理 259 12.1 记录管理规划 259 12.1.1 规划概述 260 12.1.2 创建文件...

    Windows Server 2003 服务器群集创建和配置指南

    容错服务器通常使用深层硬件冗余,加上专门的软件,几乎可以即时地恢复任何单一的硬件或软件错误。这些解决方案要比“Windows 群集”解决方案昂贵得多,因为企业必须为处于闲置状态等待错误的冗余硬件支付费用。 ...

    Windows_Server_2003服务器群集创建和配置指南

    容错服务器通常使用深层硬件冗余,加上专门的软件,几乎可以即时地恢复任何单一的硬件或软件错误。这些解决方案要比Windows群集(Windows Clustering)解决方案昂贵得多,因为组织必须为处于空闲状态等待错误的冗余...

    ASP.net技术内幕

    2.3 在控件上进行格式化 2.3.1 基本Web控件属性 2.3.2 在Web控件上应用样式 2.4 小结 <br/>第3章 用检验控件执行表单的检验 <br/>3.1 使用客户端检验 3.1.1 配置客户端检验 ...

    TFS2010安装教程.rar

    有关如何规划 安装的更多信息,请参见 Microsoft 网站上的以下页面:选择 Team Foundation Server 部署配置。 内容 方案:针对小型团队安装 Team Foundation Server 您可以在服务器或客户端操作系统上随 SQL ...

    asp.net技术内幕(1)

    用检验控件执行表单的检验 <br>3.1 使用客户端检验 3.1.1 配置客户端检验 3.1.2 启用和禁用客户端检验 3.2 必填域:RequiredFieldValidator控件 3.3 检验表达式:RegularExpressionValidator...

    asp.net技术内幕(2)

    用检验控件执行表单的检验 <br>3.1 使用客户端检验 3.1.1 配置客户端检验 3.1.2 启用和禁用客户端检验 3.2 必填域:RequiredFieldValidator控件 3.3 检验表达式:RegularExpressionValidator...

    asp.net技术内幕(5)

    用检验控件执行表单的检验 <br>3.1 使用客户端检验 3.1.1 配置客户端检验 3.1.2 启用和禁用客户端检验 3.2 必填域:RequiredFieldValidator控件 3.3 检验表达式:RegularExpressionValidator...

    asp.net技术内幕(4)

    用检验控件执行表单的检验 <br>3.1 使用客户端检验 3.1.1 配置客户端检验 3.1.2 启用和禁用客户端检验 3.2 必填域:RequiredFieldValidator控件 3.3 检验表达式:RegularExpressionValidator...

    asp.net技术内幕(3)

    用检验控件执行表单的检验 <br>3.1 使用客户端检验 3.1.1 配置客户端检验 3.1.2 启用和禁用客户端检验 3.2 必填域:RequiredFieldValidator控件 3.3 检验表达式:RegularExpressionValidator...

    在Eclipse中使用SVN与CVS代码管理工具管理项目

    一、 Visual Source Safe( 简称 VSS )VSS是微软的产品,是配置管理的一种很好的入门级的工具。VSS最初的名字叫Source Safe,是一家小公司的产品,92年曾经获了最佳小型管理工具奖,然后立即被微软收购。但是微软收购...

    spring security 参考手册中文版

    32.3 CAS客户端的配置 244 32.3.1服务票据认证 244 32.3.2单一注销 246 32.3.3使用CAS认证无状态服务 249 配置CAS以获取代理授予票证 249 使用代理票证调用无状态服务 250 32.3.4代理票证认证 251 33. X.509认证 253...

    KMS服务器方案.doc

    一个单一的 KMS 主机可以支持无限制数量的 KMS 客户端,但是出于故障转移的考虑,推荐使用最少两个 KMS 主机。大多数组织运行两台 KMS 主机就可为其整个架构提供效劳。 3.3 准备 KMS 主机 准备一台 KMS 主机。KMS ...

    InstallAnywhere v5.5.1--专业、强大的安装工具

    InstallAnywhere封装了许多预制的动作和面板,所以你可以快速直观地创建、配置单一的通用安装器。拥有针对多个平台的单一安装器意味着更短的开发时间,更简单的文档,更快速的测试和更少的支持电话-所有这些都转变成...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。 B/S模式带来了巨大的好处: 开发成本及维护成本降低。由于B/S...

    基于J2EE框架的个人博客系统项目毕业设计论...

    由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。 B/S模式带来了巨大的好处: 开发成本及维护成本降低。由于B/S...

    安卓java获取webview源码-microsoft-authentication-library-for-android:适用于Andro

    添加了新的单一帐户公共客户端应用程序 API 重载 02/12/2020新更新: WebView 缩放控件现在可配置 错误/问题已修复: 为具有多个策略的 B2C 应用返回的 id_token 不正确 WebView 在生命周期内多次调用 l

    微服务架构和基于容器参考应用程序eShopOnContainers.zip

    在该解决方案当前的开发环境配置中,SQL数据库将自动部署样本数据到单个SQL Server for Linux容器(SQL数据库的单一共享Docker容器),因此整个解决方案可以启动并运行,而无需任何依赖任何云或特定的服务器。...

Global site tag (gtag.js) - Google Analytics