首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > Windows Server > 使用SSO来实现一次登录 > 正文

使用SSO来实现一次登录

出处:微软中国 作者:微软中国 时间:2005-6-10 11:32:00

微软已经推出了Office System,其中的SharePoint Portal Server 2003(以下简称SPS2003)可以用来快速地建立起一个门户网站,可以使企业内用户轻易地找到所需要的信息,协同工作,同时,也可以向Internet上的用户提供一个信息查询的门户网站。

 

如果用户的客户端和SPS2003服务器以及其他一些服务器(例如Exchange Server)在同一个域中,那么通过SPS2003的网站,访问其他的信息是一件轻而易举的事情,但在很多时候,可能会遇到下面的问题:

 

1. 客户端并没有加入到域中,或者客户端通过虚拟专用网(VPN)接入公司网络。此时,在访问所有的服务器时,都需要输入用户信息。

 

2. 用户会使用一些第三方的产品,无法将这些服务器加入到域中。此时,即使登录了SPS2003的网站,在访问其他服务器的时候,还是会出现需要用户信息的窗口。

 

正是基于以上的需求,在SPS2003中,有一项新的功能—Single Sign On(以下简称SSO)SSO的基本思想就是:

 

建立一个加密的数据库,把用户的认证信息,存放到这个数据库中。当成功地验证了登录SPS2003网站的用户身份以后,就可以从加密的数据库中,获得用户的信息,从而用来访问其他的服务器或者一些第三方的服务器。

 

下面,我们来看看如何对上面提出的第一种情况客户端不在域中的时候,使用SSO来达到登录SPS2003网站以后,就可以访问其他域中的资源了。

 

怎样配置Single Sing-On

启用 Single Sign-On

 

在前端 Web 服务器、作业服务器和运行 Single Sign-on 服务的任何服务器上执行下列操作:

 

1.     在任务栏上,单击“开始”,指向“管理工具”,再单击“服务”。

 

2.     在“服务”管理控制台上,双击“Microsoft Single Sign-on Service”。

 

3.     单击“登录”选项卡。

 

4.     在“登录帐户”下,单击“此帐户”。

 

5.     在“此帐户”框中,键入一个帐户名,该帐户应当是本地 Administrators 组的成员,或者是 STS_WPG SPS_WPG 本地组的成员。此用户还必须是 Single Sign-On Administrator 帐户的成员。

 

6.     在“密码”和“确认密码”框中,键入密码。

 

7.     单击“应用”。

 

8.     单击“常规”选项卡。

 

9.     在“启动类型”列表中,单击“自动”。

 

10.  在“服务状态”节中,如果服务状态没有显示“已启动”,请单击“启动”。

 

11.  单击“确定”。

 

 

指定 Single Sign-on 和应用程序定义的设置

 

1.     单击开始,指向所有程序,指向“SharePoint Portal Server”,再单击“SharePoint Portal Server Single Sign-On 管理

 

2.     管理 server_name Single Sign-on 设置页上的服务器设置节中,单击管理服务器设置

 

3.     管理 Single Sign-on 的服务器设置页上的“Single Sign-On 设置节中,在帐户名框中,键入可以设置和管理 Single Sign-on Service Single Sign-On 管理员帐户。

 

该帐户可以为组帐户或单个用户帐户。它不能是本地域工作组或通讯组列表。

该帐户的格式是\用户组名\用户名

 

4.     企业应用程序定义设置节中的帐户名框中,键入可以设置和管理应用程序定义的企业应用程序管理员帐户。

 

该帐户可以为组帐户或单个用户帐户。它不能是本地域工作组或通讯组列表。

该帐户的格式是\用户组名\用户名

 

5.     数据库设置节中,执行下列操作:

 

1) 服务器名称框中,键入要将 Single Sign-on 的设置和帐户信息存储在其中的数据库服务器的名称。

2) 数据库名称框中,键入 Single Sign-on 数据库的名称。

 

6.     超时设置节中,执行下列操作:

 

1) 票证超时(分钟)”框中,键入票证或存取令牌超时之前等待的分钟数。

2) 删除早于该时间的审核日志记录()”框中,键入删除记录之前需在审核日志中保存的天数。

 

注释  在指定的天数之后,审核日志将被覆盖。因为日志包含所有违法操作或登录尝试的记录,所以建议您保存这些日志的备份副本。这些日志驻留在 Single Sign-on 数据库中,并且在备份该数据库时会自动备份。

 

7.     单击确定

 

8.     如果出现一个消息框,声明已经重新配置了 Single Sign-on,请单击确定

 

 

创建加密密钥

 

1.        单击开始,指向所有程序,指向“SharePoint Portal Server”,再单击“SharePoint Portal Server Single Sign-On 管理

 

2.        管理 server_name Single Sign-on 设置页上的服务器设置部分中,单击管理加密密钥

 

3.        管理加密密钥页的加密密钥创建部分中,单击创建加密密钥

 

4.        若要重新加密 Single Sign-On 数据库的凭据,请在创建加密密钥页上,选中使用新加密密钥重新加密所有凭据复选框,再单击确定

 

要点  该操作运行时间较长。如果不用新加密密钥重新加密现有的凭据,则用户必须重新键入其凭据,应用程序定义的管理员必须重新键入组凭据。

 

5.        单击确定

 

编辑应用程序定义

 

1.     单击开始,指向所有程序,指向“SharePoint Portal Server”,再单击“SharePoint Portal Server Single Sign-On 管理

 

2.     理服务器 server_name Single Sign-on 设置页上的应用程序设置部分中,单击管理企业应用程序定义的设置

 

3.     管理企业应用程序定义页上,单击“新建项目”。

 

4.     在“编辑企业应用程序定义页上的应用程序和联系人信息部分中,可编辑显示名称和电子邮件联系人。

 

1)“显示名称框中,键入该应用程序定义的显示名称。

在我们现在的例子中,请使用“SSOApp”作为程序的名称。

2) 电子邮件联系人框中,键入作为该应用程序联系人的用户的电子邮件地址。

 

5. 为账号类型选择“单独的”,这样的话对每一个用户都会存储一个用户信息。

 

5.     帐户信息部分中,选择一个或多个要映射到该应用程序定义的必需登录信息的字段。

 

1) 为每个字段键入一个显示名称,以提醒您输入必需的信息。

2) 为了确保在查看帐户信息时不会显示敏感性信息(如密码),请对屏蔽?单击

 

建议在我们的应用中,添加三个字段,分别按次序为UserName, PasswordDomainName

 

6.     单击确定

 

 

管理应用程序定义的帐户信息

 

1.     单击开始,指向所有程序,指向“SharePoint Portal Server”,再单击“SharePoint Portal Server Single Sign-On 管理

 

2.     管理 server_name Single Sign-on 设置页上的企业应用程序定义设置部分中,单击管理企业应用程序定义的帐户信息

 

3.     管理企业应用程序定义的帐户信息页上的帐户信息部分中,执行下列操作:

 

1) 企业应用程序定义列表中,选择该应用程序定义的名称。

2) 帐户名组帐户名框中,键入要修改的帐户名。

 

4.     企业应用程序定义部分中,可执行下列操作:

 

更新该应用程序的帐户信息

1) 单击更新帐户信息

2) 单击确定

3) 提供 application_definition_name 帐户信息页上的登录信息框中,键入可访问该应用程序的帐户的用户名。企业应用程序是一种后端业务应用程序,SharePoint Portal Server 通过使用应用程序定义与之建立连接。

4) 单击确定

 

删除该应用程序的帐户信息

1) 单击从此企业应用程序定义中删除为此帐户存储的凭据

2) 单击确定

3) 若要删除用户凭据,请在确认消息框上单击确定

 

从所有应用程序定义中删除该帐户

1) 单击从所有企业应用程序定义中删除为此帐户存储的凭据

2) 单击确定

3) 若要从所有应用程序定义中删除用户凭据,请在确认消息框上单击确定

 

在我们的应用中,我们需要为每一位要使用Single Sign-On的用户,建立一个账号信息。

 

 

 

创建使用SSO技术的Web Part

 

 

1.  下载并安装Web Part Template for Visual Studio.NET

http://msdn.microsoft.com/library/en-us/dnspts/html/sharepoint_webparttemplates.asp

 

2.  打开Visual Studio.NET, 新建C#工程中的Web Part Library

 

3.  WebPart1.cs更名为“WPHttpRequest.cs”,并输入以下代码,代码的原理是使用WebRequest类以用户默认的身份信息向远端的URL发送请求,由于Single Sign-On的作用,原本此用户需要再次通过身份验证,现在只需要提供默认的身份信息便可以直接访问远端的主机。

 

using System;

using System.ComponentModel;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Xml.Serialization;

using Microsoft.SharePoint;

using Microsoft.SharePoint.Utilities;

using Microsoft.SharePoint.WebPartPages;

 

//添加引用

using System.Net;

using System.IO;

//重新命名NameSpaceWPHttpRequest

namespace WPHttpRequest

{

     [DefaultProperty("Text"),

         ToolboxData("<{0}:HttpRequestWebPart runat=server></{0}:HttpRequestWebPart>"),

         XmlRoot(Namespace="WPHttpRequest")]

     //重新命名ClassWPHttpRequest

     public class HttpRequestWebPart : Microsoft.SharePoint.WebPartPages.WebPart

     {

         //定义私有变量

private const string c_Url = "http://"; //目标URL

         private const string defaultText = "";

         private string text=defaultText;

         private string _myurl = "";

         [Category("Custom Properties")]

         [DefaultValue(c_Url)]

         [WebPartStorage(Storage.Personal)]

         [FriendlyNameAttribute("Url")]

         [Description("Type the Url here.")]

         [Browsable(true)]

         [XmlElement(ElementName="Url")]

          //定义属性

         public string Url //目标URL

         {

              get

              {

                   return _myurl;

              }

              set

              {

                   _myurl = value;

              }

         }

 

 

         [Browsable(true),Category("Miscellaneous"),

              DefaultValue(defaultText),

              WebPartStorage(Storage.Personal),

              FriendlyName("Text"),Description("Text Property")]

         public string Text

         {

              get

              {

                   return text;

              }

 

              set

              {

                   text = value;

              }

         }

         //重载RenderWebPart,并调用GetHttpRequestContent获取目标URL的内容

protected override void RenderWebPart(HtmlTextWriter output)

         {

              this.Text = GetHttpRequestContent(this.Url); 

output.Write(SPEncode.HtmlEncode(Text));

         }

          //获取远端页面的信息

         private string GetHttpRequestContent(string url)

         {

              string respstr = "";

              try

              {

                   Uri contentUrl = new Uri(url);

                   WebRequest req = WebRequest.Create(contentUrl);

                   //设置预先验证用户权限

req.PreAuthenticate = true;

                   //建立网络身份验证

req.Credentials = CredentialCache.DefaultCredentials;

                   //获取远端返回的文件流

                   WebResponse resp = req.GetResponse();

                   Stream stream = resp.GetResponseStream();

                   StreamReader sr = new StreamReader(stream);

                   //以字符串形式读取数据流

respstr = sr.ReadToEnd();

                   sr.Close();

              }

              catch (Exception ex)

              {

                   //返回错误信息

return "Error: " + ex.Message;

              }

              return respstr;

         }

     }

}

 

4.  VS.NET的命令窗口中运行“SN –k <YOUR_KEYFILE.snk>”。并修改AssemblyInfo.cs中的[assembly: AssemblyKeyFile(KEY_FILE_FULLPATH)]加入刚才生成的Key,签名生成的Web Part

 

5.  将“WebPart1.dwp”更名为“WPHttpRequest.dwp”并修改<Assembly><TypeName>,的设置使其指向WPHttpRequest Web Part的相关信息。

 

<?xml version="1.0" encoding="utf-8"?>

<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >

     <Title>HttpRequestWebPart</Title>

     <Description>HttpRequestWebPart.</Description>

     <Assembly>WPHttpRequest</Assembly>

     <TypeName>WPHttpRequest.HttpRequestWebPart</TypeName>

     <!-- Specify default values for any additional base class or custom properties here. -->

</WebPart>

 

6.  打开Manifest.xml,如果没有在工程中添加任何资源,请直接删除配置文件的<ClassResources><ClassResource FileName=""/></ClassResources>段。修改并确认配置文件中的AssemblySafeControlDwpFile的设置,使之指向WPHttpRequest Web Part

 

<?xml version="1.0"?>

<!-- You need to have just one manifest per CAB project for Web Part Deployment.-->

<!-- This manifest file can have multiple assembly nodes.-->

<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">

  <Assemblies>

    <Assembly FileName="WPHttpRequest.dll">

      <SafeControls>

        <SafeControl

          Namespace="WPHttpRequest"

          TypeName="*"

        />

      </SafeControls>

    </Assembly>

  </Assemblies>

  <DwpFiles>

    <DwpFile FileName="WPHttpRequest.dwp"/>

  </DwpFiles>

</WebPartManifest>

 

7.  在同一个Solution中添加一个CAB安装包工程,加入工程的主输出内容文件

 

8.  生成整个Solution,确认两个工程都成功编译。

 

 

添加Web Part

 

使用下面的方法,来部署和添加WPHttpRequest.dwp这个Web Part

 

stsadm.exe –o addwppack –filename path_to_HTTPRequestCab.cab

 

1.       stsadm.exe 默认在\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\bin文件夹中。

 

2.       需要把path_to_HTTPRequestCab.cab改成具体的路径名称,例如C:\HttpRequestCAB.CAB

 

C:\Inetpub\wwwroot\bin下的WPHttpRequest.dll文件,拷贝到C:\Windows\assembly目录中,同时,删除C:\Inetpub\wwwroot\bin下的WPHttpRequest.dll文件。

 

在成功地把这个Web Part添加到了SPS2003 Portal页面上以后,我们可以通过点击编辑页面”-修改共享页面”-修改共享Web Parts”,然后来编辑添加的这个Web Part。在个性化属性中,为URL添加一个地址,例如http://server/page.asp,然后点击确定。

 

 

相关文档

 

Microsoft.SharePoint.Portal.SingleSignOn Namespace

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/nsPortalSingleSignOn.asp

 

A Developer's Introduction to Web Parts

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnspts/html/sharepoint_northwindwebparts.asp

 

Code Access Security for Developers

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/spptsdk/html/smpscCodeAccessSecurityDevs.asp

 

Debugging Web Parts

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnspts/html/sharepoint_northwindwebparts.asp

相关文章 热门文章
  • 微软高管:Office 365帮企业节省成本 兼容Mac
  • 谷歌指Google Apps优于Office 365
  • 微软发布Office 365云计算办公软件套装(图)
  • Office 2010 SP1正式发布啦
  • Office 2010 SP1正式发布
  • 在安装Office之后配置Outlook地址簿
  • office outlook 2010 如何修改IMAP电子邮件的数据文件位置
  • Facebook邮箱可直接打开附件内Office文档
  • 将Office Outlook 2003自动完成姓名列表(.nk2)文件复制到另一台计算机
  • 微软开始发放Office 2011 for Mac测试邀请
  • 使用组策略中央存储管理 Office 2010 设置
  • 使用 OCT 加速部署 Office 2010
  • “http 500内部服务器错误”的解决方法
  • 利用Windows 2000 Server的RRAS实现VPN服务器
  • 用凤凰万能启动盘解决本地/域管理员密码丢失
  • Win2003 Server企业版安装配置
  • Active directory 灾难恢复
  • Windows 2000/03域和活动目录
  • 如何在vmware4上创建windows 2003群集
  • MSI文件制作全过程
  • Win2000命令全集(一)
  • Windows 2000/AD技巧
  • 此系统的本地策略不允许您采用交互式登录解决方法
  • Win2000路由的安装与设置实现不同网段互通
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号