ComponentSpace SAML v2.0 for .NET 使用介绍
下载地址: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 使用介绍的更多相关文章
- JuCheap V2.0响应式后台管理系统模板正式发布beta版本
JuCheap V1.* 查看地址: http://blog.csdn.net/allenwdj/article/details/49155339 经过半年的努力,JuCheap后台通用响应式管理后台 ...
- 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)
前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...
- 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github
4月28日,已增加多媒体上传及下载API,对应MediaUploadRequest和MediaGetRequest ------------------------------------------ ...
- Restful.Data v2.0发布,谢谢你们的支持和鼓励
v1.0发布后,承蒙各位博友们的热心关注,也给我不少意见和建议,在此我真诚的感谢 @冰麟轻武 等朋友,你们的支持和鼓励,是这个开源项目最大的推动力. v2.0在除了细枝末节外,在功能上主要做了一下更新 ...
- ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView
原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...
- ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map
原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...
- ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置
原文地址: ArcGIS Runtime for Android开发教程V2.0(2)开发环境配置 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.c ...
- ArcGIS Runtime for Android开发教程V2.0(1)基本概念
原文地址: ArcGIS Runtime for Android开发教程V2.0(1)基本概念 - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http://blog.csd ...
- Web电子商务网(三层)V2.0源码
Web电子商务网(三层)V2.0源码 源码描述: 一.源码特点 采用三层架构开发,购物车功能 二.功能介绍 前台集成了产品在线展示,用户注册.在线调查.在线投稿 后台有类别管理\图书管理\订单 ...
随机推荐
- Python web框架 Tornado(一)基础学习
概述 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...
- mysql的配置(图解)
一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...
- python执行报错 configparser.NoSectionError: No section: 'section_1'
场景:请求获取验证码模块regVC.py读取配置文件config.ini时,regVC.py模块单独执行正常,但通过run_all.py模块批量执行时报错,找不到section 解决办法:配置文件路径 ...
- 华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)
题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出乘积,如:151851741 样例输入: 1234567 123 样例输出: 1518 ...
- sublime text 怎么浏览包
点击到设置里 里面有个包浏览.
- freebsd静态路由
FreeBSD下增进静态路由的行动 1.手工添加 # route add -net 192.168.2.0/24 192.168.1.2 2. 通过rc.conf永世 设置 # Add static ...
- Asp.Net 自定义 httpmodel 中间件 管道
https://msdn.microsoft.com/en-us/library/aa719858(v=vs.71).aspx http://www.cnblogs.com/jimmyzhang/ar ...
- <转>Linux环境进程间通信(五): 共享内存(上)
http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写 ...
- Linux ALSA声卡驱动之一:ALSA架构简介
声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! 一. 概述 ALSA是Advanced Linux Sound Architecture ...
- elasticsearch中的mapping简介
默认mapping elasticsearch(以下简称ES)是没有模式(schema)的,当我们执行以下命令: curl -d '{"name":"zach" ...