设为首页 收藏本站
查看: 1761|回复: 0

[经验分享] Moss/Sharepoint 单点登录SSO

[复制链接]

尚未签到

发表于 2015-9-24 07:31:09 | 显示全部楼层 |阅读模式
基于SharePoint的单点登录的实现
  单点登录(Single Sign On),简称为 SSO。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
  在Microsoft Office SharePoint Server 2007中提供了实现单点登录的功能。
  
  下面是一个具体的实例,其实类似的实现网上有很多。
  一、配置数据源
  用于存储用户对于第三方企业应用程序的登录凭据,可以将该凭据记录到数据库中,sharepoint列表项以及sharepoint本身的数据库中。下面介绍存储于SSO数据库中的方法。
  1. 配置开启Microsoft Single Sign-on Service服务。
  SSO的应用是利用了Microsoft Single Sign-on Service的服务,默认此服务为停止状态。选择开始程序管理工具服务,选取Microsoft Single Sign-on Service服务, 如图所示;
DSC0000.gif
  默认此服务为关闭状态,双击此服务。如下图,选择登录选项卡,登录身份选择“此帐户”,在其中输入账户及密码。注意此账户为域用户。(否则SSO调用会失败)。
DSC0001.gif
  选择“常规”选项卡,启动类型选择为“自动”,并启动此服务。状态如下:
DSC0002.gif
  2. 配置“管理单一登录的设置”。
  2.1配置“服务器设置”
  配置好SSO的服务后,开始配置管理单一登录的设置。开始→程序→Microsoft Office ServerSharePoint 3.0管理中心。在管理中心,选取“操作选项卡”,并选择“安全性配置”中的“管理单一登录的设置”。如下图:
DSC0003.gif
  默认进入后,“服务器设置”和“企业应用程序定义设置”均未进行设置。首先设置服务器设置,选择设置“管理服务器设置”。如下:
DSC0004.gif
  在“单一登录管理员帐户”和“企业应用程序定义管理员帐户”中填写对应的账户名。“数据库设置”和“超时设置”均为默认, DSC0005.gif 。如图: DSC0006.gif
  注意:如果确定后提示“数据库错误”,则在“数据库设置”中将“服务器名称”修改为你的存取MOSS的SQL2005服务器的名称。
DSC0007.gif
  关于“管理加密密钥”,在本测试中没有加入此功能。此加密密钥对凭证加密。在普通的应用中丌用增加此功能。
  2.2配置“企业应用程序定义设置”。
  “管理企业应用程序定义的设置”指集成SSO的后端应用的设置,如ERP,OA,Mail等等应用系统。
  进入“管理企业应用程序定义的设置”;如下图:
DSC0008.gif 选取新建项目, DSC0009.gif ,填写“应用程序和联系人信息”和选择“帐户类型”信息。以新浪邮箱为例,如图:
DSC00010.gif
  其中“显示名称:”为后端应用系统的名字,而“显示名称:”则为GetCredentials获取的值。账户类型中选择“个人”, DSC00011.gif ,因为这里SSO账户为MOSS用户和后端应用系统的用户映射。其他信息默认,确定。 DSC00012.gif
  配置“管理企业应用程序定义的帐户信息”,选取“企业应用程序定义:”填写
  “用户帐号名称”。注意:(如果对应的“管理企业应用程序定义的设置”中将账户类型确定为“组”则输入组账号。)
  选取“更新账户信息”,确定 DSC00013.jpg 。如图:
DSC00014.gif
  在“提供 网易163邮箱 帐户信息”页面中输入对应MOSS帐号的163邮箱的帐号和密码,确定, DSC00015.gif 如图:
DSC00016.gif
  二、写程序完成单点登录。
  1. 取得连接字符串
  首先进入163登录邮箱页面,输入自己的用户名与密码,打开HttpWatchPro软件(可在网上下载),点击开始记录按钮→点击163邮箱的登录按钮,登录成功后,再停止HttpWatchPro的记录。将查到的Http请求字符串复制下来,如下:“http://reg.163.com/login.jsp?url=&type=1&product=&savelogin=&outfoxer=&domains=& amp;syscheckcode=&username=mossadmin@163.com&password=111111& amp;Submit=”。在该字符串中有两个参数username与password既是登录邮箱时输入的用户名与密码。
  2. 新建webpart登录程序。
  打开Microsoft Visual Studio 2005,新建ASP.NET Web应用程序,命名为FirstSSO。此为安装了Visual Studio 2005 Service Pack 1 (SP1)。
DSC00017.gif
  删除默认的Default.aspx页面。
  在此项目中添加Web用户控件页面,命名为MeSSO,如下:
DSC00018.gif 在MeSSO的设计试图中加入按钮,界面如下:
DSC00019.gif
  源代码为:
  <%@ Control Language="C#" AutoEventWireup="true" CodeFile="MeSSO.ascx.cs" Inherits="MeSSO" %>
  <asp:Button ID="Btn163" runat="server" Text="网易163邮箱=>进入" Width="130px" />
  双 击按钮控件,进入源代码编写页面。在此项目中添加引用,分别添加对 Microsoft.SharePoint.dll,microsoft.sharepoint.portal.dll、 Microsoft.SharePoint.Portal.SingleSignon.dll的引用。
  目录为C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI文件夹中。
  如图:
DSC00020.gif
  添加对Microsoft.SharePoint,microsoft.sharepoint.portal,Microsoft.SharePoint.Portal.SingleSignon的引用。源代码如下:


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Portal;
using Microsoft.SharePoint.Portal.SingleSignon;
namespace FirstSSO
{
public partial class MeSSO : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
SSOCanaryChecker.AddCanary(Page);
}
protected void BtnGoogle_Click(object sender, EventArgs e)
{
IntPtr pUserName = IntPtr.Zero;
IntPtr pPassword = IntPtr.Zero;
try
{
ISsoProvider isso = SsoProviderFactory.GetSsoProvider();
SsoCredentials myCreds = isso.GetCredentials("GoogleMail");
pUserName = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(myCreds.UserName);
String userName = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pUserName);
pPassword = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(myCreds.Password);
String Password = System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPassword);
String strHttpUrl =
"http://reg.163.com/login.jsp?url=&type=1&product=&savelogin=&outfoxer=&domains=&syscheckcode=&username=" + userName + "@163.com&password=" + Password +"&Submit=";
Response.Redirect(strHttpUrl)
} catch (Exception exx)
{
Response.Write(exx.Message);
Response.Write(exx.InnerException);
}
finally
{
if (IntPtr.Zero != pUserName)
{
System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(pUserName);
System.Runtime.InteropServices.Marshal.ZeroFreeBSTR(pPassword);
}
}
}
}
}
  
  3. 将完成的webpart部署到sharepoint网站,完成。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117866-1-1.html 上篇帖子: [文档分享]Pro SharePoint 2013 Administration 英文版 下篇帖子: SharePoint 2013 配置Excel Services
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表