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

使用 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 |
分享到:
评论

相关推荐

    CAS的ASP.NET客户端配置及验证

    9. **测试与调试**:创建一个简单的`CASTest`应用,以验证CAS客户端配置是否正确。设置一些受保护的路由或控制器,然后尝试访问,观察是否能正确重定向到CAS登录页面,以及登录后是否能正常访问受保护资源。 在实际...

    ClientConfigurationTools

    【标题】"ClientConfigurationTools" 是一个基于C# WinForm技术开发的客户端配置工具,主要用于帮助用户方便地配置客户端应用程序连接到服务器端的地址。在IT行业中,客户端配置是系统集成和部署过程中不可或缺的一...

    hyper-v客户端源码

    1. **虚拟化技术**:Hyper-V是微软的一种基于硬件的虚拟化平台,它允许在单一物理主机上运行多个独立的操作系统实例,每个实例称为一个虚拟机。通过虚拟化技术,资源如CPU、内存、磁盘和网络接口被有效地分配和隔离...

    基于.Net的单点登录(SSO)解决方案

    - **Cookie管理**:当用户成功验证后,系统会在客户端设置一个会话cookie,这个cookie在后续请求中被用来保持登录状态。 为了实现SSO,还需要考虑以下方面: - **跨域问题**:如果各个应用部署在不同的域名下,...

    Microsoft Dynamics CRM_Suggested Hardware 500Users

    ### Microsoft Dynamics CRM 4.0:500并发用户建议硬件配置 #### 执行摘要与核心成果 微软商业系统架构(BSA)团队完成了本报告,以总结在Microsoft Dynamics CRM 4.0环境下500个并发用户执行一系列销售、营销、...

    轻量级SQL客户端支持多种数据库.docx

    比如,它的功能较为单一,对于那些需要复杂管理操作的场景可能不够适用;另外,该项目是由个人维护的,可能存在后续支持不足的问题。 - **未来展望**:虽然SQLECTRON目前的活跃度和社区支持可能不如一些大型开源...

    用VC做的一个简单邮件发送客户端

    由于没有实现IMAP或POP3等协议,该客户端无法下载或接收邮件,只能用来执行单一的邮件发送任务。此外,它“目前只支持几个免费的主流邮箱服务器”,这意味着它可能已经预设了与常见的免费邮箱服务如Gmail、Yahoo ...

    citrix4.5 客户端

    这个版本的客户端是完全汉化的,意味着所有界面和文档都经过了中文本地化处理,方便中国用户使用。 Citrix 客户端的核心技术基于 Independent Computing Architecture (ICA) 协议,这是一种高效的数据传输协议,...

    微软的MSCS 双机软件

    3. **配置网络**:创建专用的集群网络,用于节点间通信的心跳网络,以及面向客户端的公共网络。 4. **安装MSCS组件**:在每台服务器上安装并配置MSCS角色。 5. **创建集群**:在主节点上启动集群配置向导,输入集群...

    WinForm客户端向服客端发送消息示例

    .NET Remoting是微软.NET框架提供的一种跨进程通信机制,它允许不同进程间的对象互相调用方法,从而实现客户端和服务器的通信。Remoting技术支持多种通信协议,如HTTP、TCP/IP等,并提供了丰富的序列化机制来处理...

    svn客户端(visualsvn-server-1.0.3.rar)

    Subversion(简称SVN)是一种广泛使用的版本控制系统,它允许用户管理和跟踪文件和目录的不同版本。VisualSVN Server是专为Windows环境设计的SVN服务器,提供了一个直观、易用的界面来配置和管理SVN仓库。在这个介绍...

    AX2009安装与配置考试认证试题(MB6-820考题)

    此问题涉及到作为实施者如何连接到不同的应用对象服务器(AOS)实例,并使用Microsoft Dynamics AX客户端配置工具。为了访问该工具,实施者需要属于哪个用户组? - **选项分析:** - A项Guests组显然不具有足够的...

    页面AD用户自动登录程序

    它允许用户使用单一的身份验证凭证在整个网络中进行身份验证,提高了管理效率。而LDAP是一种开放的标准,用于访问和管理分布式目录信息,常被用作AD的接口,使得非Windows系统和服务也能与AD进行交互。 在这个程序...

    C# 微服务---Grpc框架 Demo 服务端 客户端分离

    4. **依赖注入**:在.NET Core中,服务端可能使用依赖注入(Dependency Injection,DI)来管理服务实例,如使用Microsoft.Extensions.DependencyInjection库,将服务注册到容器中,以便在需要时自动注入。...

    微软云Blob存储java开发所需的jar包

    在Java开发中,微软云Blob存储提供了一个高效且可扩展的对象存储解决方案,用于存放大量非结构化数据,如文本和二进制数据。...确保正确配置和使用jar包,是成功实现Java应用与Azure Blob存储交互的关键步骤。

    浅谈SQL Server客户端_服务器架构.pdf

    这种配置适用于单一用户的需求,或者在瘦客户端/服务器环境中,所有用户在一个承载SQL Server的服务器上进行操作。 另外,当需要更高级或性能要求较高的应用程序时,可以采用应用服务器模式,将SQL Server安装在...

    北邮计通网实验四IIS服务配置和使用

    通过本次实验,学生不仅掌握了在Windows 2003 Server环境下配置和使用IIS服务的基础知识,还学会了如何在单一服务器上构建复杂的网络服务架构。这些技能对于网络管理员来说至关重要,有助于提高网络资源的利用率和...

    AZ-140 考试考试题目.pdf

    它允许用户使用单一登录(SSO)来访问多个应用程序。 4. Azure Active Directory 域服务 (Azure AD DS): Azure Active Directory 域服务是一种基于云的域服务,提供了类似于传统的 Active Directory 域服务的功能...

    TFS2010安装和配置[整理].pdf

    本文将详细讲解TFS2010的安装和配置过程,包括基础配置、标准单一服务器配置和高级配置。 ### 一、安装前准备 在安装TFS2010之前,确保您的计算机已经安装了SQL Server 2008和Visual Studio 2010。SQL Server 2008...

Global site tag (gtag.js) - Google Analytics