下载地址:http://samlsso.codeplex.com/

以下描叙参考版本为其官网最新版本2.5.0.6。相对2.4版本,2.5有了很大改进,很多接口方法都变了。使用起来更方便,易懂。

广告:

使用简便,文档实例丰富。
1,基础知识
SSO,SAML.自行google。

2,使用步骤:

a,安装,安装完毕后在安装目录 ComponentSpace SAML v2.0 for .NET下有各个版本的解决方案。你也可以移步到Examples\SSO\HighLevelAPI。在移步的过程中,你会发现其他文件夹,你可以先去看那些文件也可以后面再看。以下使用步骤参考了Documentation\SAML v2.0 Developer Guide.pdf

b,导入证书。我打开的是2012版本。展开ExampleIdentityProvider和ExampleServiceProvider工程。导入idp.pfx和sp.cer。其余证书忽略。

打开两个工程下的saml.config和web.config,浏览下,可能对一些疑问会有所帮助。关于本步骤的证书导入,你就会发现在saml.config中有一段如下配置

<IdentityProvider Name="urn:componentspace:ExampleIdentityProvider"
CertificateFile="idp.pfx"
CertificatePassword="password"/>

c,发布站点

编译这两个工程,可以通过发布程序直接建立应用;也可以选择发布到一个目录,然后也在iis新建两个应用程序,应用程序路径指向发布的目录。注意的是应用程序名称同工程名称。应用程序先放在默认站点下,一半是default下。到了实际应用的时候,这些名称,站点都是可以改的,默认配置在saml.config下:

<PartnerServiceProvider Name="urn:componentspace:ExampleServiceProvider"
WantAuthnRequestSigned="false"
SignSAMLResponse="true"
SignAssertion="false"
EncryptAssertion="false"
AssertionConsumerServiceUrl="http://localhost/ExampleServiceProvider/SAML/AssertionConsumerService.aspx"
SingleLogoutServiceUrl="http://localhost/ExampleServiceProvider/SAML/SLOService.aspx"
CertificateFile="sp.cer"/>

<PartnerIdentityProvider Name="urn:componentspace:ExampleIdentityProvider"
SignAuthnRequest="false"
WantSAMLResponseSigned="true"
WantAssertionSigned="false"
WantAssertionEncrypted="false"
SingleSignOnServiceUrl="http://localhost/ExampleIdentityProvider/SAML/SSOService.aspx"
SingleLogoutServiceUrl="http://localhost/ExampleIdentityProvider/SAML/SLOService.aspx"
CertificateFile="idp.cer"/>

d,运行。ExampleServiceProvider和ExampleIdentityProvider和两个的default.aspx顺便你先浏览那个,第一次都会先到ExampleIdentityProvider要求输入密码,密码为password,保存在ExampleIdentityProvider的web.config中:

<authentication mode="Forms">
<forms name="ExampleIdentityProvider" loginUrl="login.aspx">
<credentials passwordFormat="Clear">
<user name="idp-user" password="password"/>
</credentials>
</forms>
</authentication>

3,总结

是不是很简单,直接把demo拿到项目中用,只需要从安装证书开始,替换成自己的证书,自己的站点。把authentication换成自己的验证。authentication这一段在ExampleIdentityProvider下的login页面里:

if (FormsAuthentication.Authenticate(userNameTextBox.Text, passwordTextBox.Text)) {
FormsAuthentication.RedirectFromLoginPage(userNameTextBox.Text, false);
} else {
errorMessageLabel.Text = "Invalid credentials. The user name and password should be \"idp-user\" and \"password\".";
}

本文旨在做个推介,其余logout等等可以参看guid文档。还要啰嗦一句的是,当初我还关注怎么从认证中心传值到本地,看看ExampleIdentityProvider下的saml/SSOService.aspx.cs

IDictionary<string, string> attributes = new Dictionary<string, string>();

foreach (string key in WebConfigurationManager.AppSettings.Keys) {
if (key.StartsWith(AppSettings.Attribute)) {
attributes[key.Substring(AppSettings.Attribute.Length + 1)] = WebConfigurationManager.AppSettings[key];
}
}

SAMLIdentityProvider.SendSSO(Response, userName, attributes);

以及ExampleServiceProvider下的saml/AssertionConsumerService.aspx.cs:

SAMLServiceProvider.ReceiveSSO(Request, out isInResponseTo, out partnerIdP, out userName, out attributes, out targetUrl);

可以发现,容器就是attributes。

至于MVC在同个目录有example。大致结构原理一样。

搭建一个SSO就是这么简单。从此PM再也不担心你的学习了。

ComponentSpace SAML v2.0 for .NET 使用介绍的更多相关文章

  1. JuCheap V2.0响应式后台管理系统模板正式发布beta版本

    JuCheap V1.* 查看地址: http://blog.csdn.net/allenwdj/article/details/49155339 经过半年的努力,JuCheap后台通用响应式管理后台 ...

  2. 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)

    前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...

  3. 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github

    4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...

  4. Restful.Data v2.0发布,谢谢你们的支持和鼓励

    v1.0发布后,承蒙各位博友们的热心关注,也给我不少意见和建议,在此我真诚的感谢 @冰麟轻武 等朋友,你们的支持和鼓励,是这个开源项目最大的推动力. v2.0在除了细枝末节外,在功能上主要做了一下更新 ...

  5. ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView

    原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...

  6. ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map

    原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...

  7. ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置

    原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...

  8. ArcGIS Runtime for Android开发教程V2.0(1)基本概念

    原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...

  9. Web电子商务网(三层)V2.0源码

    Web电子商务网(三层)V2.0源码 源码描述: 一.源码特点     采用三层架构开发,购物车功能 二.功能介绍 前台集成了产品在线展示,用户注册.在线调查.在线投稿 后台有类别管理\图书管理\订单 ...

随机推荐

  1. mongodb的安装(linux下)

    1.去官网下载安装包 2.解压tar包 tar -zxvf filename 3.移动路径,并进入路径 mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongod ...

  2. [POJ] Bode Plot

    Description Consider the AC circuit below. We will assume that the circuit is in steady-state. Thus, ...

  3. Spring中引质增强的安全

    在引质增强中使用ThreadLocal变量,是因为控制状态使代理类变成了非线程安全的实例,为了解决单线程安全的问题,通过ThreadLocal让每个线程单独使用一个状态.

  4. C++实现进制转换

    知识内容: 1.string类基本使用 2.10进制转2进制 3.10进制转8进制和10进制转16进制 4.上述3种转换的递归实现 注:进制的表示: 二进制:开头是0b,eg: 0b1011(注:c/ ...

  5. springcloud(三) eureka集群

    上一节讲到user微服务和order微服务和eureka注册中心一起使用,那么问题来了如何注册中心挂了怎么办?ok, 注册中心集群就来了. 原理图: 注意euraka 之间是通过复制(replicat ...

  6. IIS Manager 配置文件修该,允许跨域CORS访问

    IIS Manager 配置文件修该,允许跨域CORS访问 IIS Manager 的api访问会出现跨域问题,需要 IIS Manager的配置文件中修改. 配置文件的路径:C:\Program F ...

  7. [转] C# 获取程序运行目录

    来自 莫等闲也,原文 // 获取程序的基目录.  System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnosti ...

  8. firefox 插件 取消认证签名

    Firebug Tab Mix plus :系统退出自动保存tab List.     tab mix options>Session>start/exit>when browse ...

  9. i++的原子性问题

    一.什么是原子性 简单的可以理解为:操作是不可再分割的,比如: int i=0; 但是i++的操作是可以再分的,比如: i++ //分解后 i=i+i 上面的代码在多线程环境下取值是有问题的,比如: ...

  10. Reids 批量删除有相同前缀的keys

    redis-cli 登录redis 我一般使用 redis-cli 登录redis ,但是进去后会提示" Redis (error) NOAUTH Authentication requir ...