首页 新闻 搜索 专区 学院

请问有写过基于SAML的SSO吗,望大哥指点指点,纠结了好久了,在线等大哥们的回复,谢谢了

0
悬赏园豆:50 [已解决问题] 解决于 2016-02-29 15:18

请问有写过基于SAML的SSO吗,望大哥指点指点,纠结了好久了,在线等大哥们的回复,谢谢了

Reaforstar的主页 Reaforstar | 初学一级 | 园豆:105
提问于:2010-09-13 16:39
< >
分享
最佳答案
0
收获园豆:50
Launcher | 高人七级 |园豆:45045 | 2010-09-13 17:04
大哥,谢谢你了,终于有回复了,可是我对那个SAML SSO完全不怎么懂,你做过基于SAML的SSO项目吗!!真的谢谢你了!
Reaforstar | 园豆:105 (初学一级) | 2010-09-14 09:04
@Reaforstar:有啥不懂?我做过wcf,你用的啥实现?
Launcher | 园豆:45045 (高人七级) | 2010-09-14 13:19
@Reaforstar:看到我给你提供的那个链接了吗?找到SAML的例子,里面有完整的基于SAML2.0的SSO实现,你提到的数据如何交互,客户凭据如何加密,如何使用证书(这是必须的),例子里都有.
Launcher | 园豆:45045 (高人七级) | 2010-09-14 15:51
@Reaforstar:我上班时间,不能上QQ.就是这两个例子,你得耐心看啊,从客户端第一次提请求到最后访问到第三方服务,你要跟踪调试下.你还得花点时间看下SAML的认证过程和SAML的XML格式. 你的项目中,我觉得可行的解决方案应该是:使用WCF建立一个STS,这是一个独立的应用,然后为你的MVC项目添加一个WCF服务,该服务负责把STS颁发的SAML令牌转换成asp.net的Form Ticket.
Launcher | 园豆:45045 (高人七级) | 2010-09-14 18:09
@Reaforstar:运行完 Setup.cmd 后,你可以通过 MMC 添加证书管理单元来查看你生成的证书,一共有三个.SAML的Metadata,就是指SAML的Schema.SAML是基于XML的,所有的消息交互都是以XML的格式传输,Metadata规定了SAML消息可以使用的标记和元数据类型.
Launcher | 园豆:45045 (高人七级) | 2010-09-15 09:08
听大哥你这么一说,终于有点感觉了,可是还是有很多不懂。嗯,那个Setup.cmd那个命令好像执行有错。还有就是那个Metadata是怎样生成的,可以看到那个文件吗,是用的类动态生成的Metadata文件吗。真的不好意思,打扰大哥了!!
Reaforstar | 园豆:105 (初学一级) | 2010-09-15 09:44
嗯,大哥知道怎样生成那个证书吗,或是怎样用命令去生成那个证书,因为那个命令执行出错了,不能调试,不知道里面是怎样执行的!!
Reaforstar | 园豆:105 (初学一级) | 2010-09-15 09:47
@Reaforstar:你用记事本打开 setup.cmd 就能看到生成证书的命令.SAML的Metadata是由文档定义的,所谓元数据就是用以描述数据的数据,也就是SAML中使用的各种标记有哪些,以及具体含义是什么,都由Metadata定义.找了篇比较详细的问题,你自己读下:http://wenku.baidu.com/view/11395fd8ce2f0066f533223e.html
Launcher | 园豆:45045 (高人七级) | 2010-09-15 13:25
嗯,谢谢大哥了哦,感觉还是理不太清……谢谢大哥几天的指点,呵呵,只可惜我没多少分了,要不然都给你了,呵呵……
Reaforstar | 园豆:105 (初学一级) | 2010-09-19 11:33

你好,请问大哥我想学习SAML得怎么学,完全不会,是需要先看XML吗

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-08 20:13

@天蓝居士: SAML 是通过 XML 扩展而来,自然你需要知道 XML 是啥,但是不必深究。另外你需要掌握 HTTP,你需要明白 SSO 的流程就是在三方之间通过 HTTP 传递 SAML 格式的消息的流程。

Launcher | 园豆:45045 (高人七级) | 2015-03-11 09:37

@Launcher: 大哥你好,我是研二的学生毕业设计做这个,但是老师不懂这个我也不懂这个,该怎么学SAML可以加个QQ给我指个方向吗?547471505

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-11 11:24

@Launcher: 这个博客我也看过,我现在大致知道SAML是干吗用的但就是不知道该怎么用SAML,它是个语言,我不知道怎么来把它用到单点登录里,不知道用什么来编程是C还是JAVA。

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-11 13:44

@天蓝居士: 我先提几个基础的问题:

1、知道 HTML 是什么吗?

2、知道如何使用 HTML 制作页面吗?

3、知道用什么来编程 HTML 吗?是 C,还是 JAVA?

Launcher | 园豆:45045 (高人七级) | 2015-03-11 13:59

@Launcher: 还需要用HTML吗这么复杂的

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-12 09:48

@天蓝居士: 我是看你掌握了多少基础知识,我想通过一个你熟知的技术来给你解释 SAML 的应用。因为我掌握了较多的基础知识,所以我看了 SAML 的文档,就可以很简单的归纳为在三方之间按照一定的流程通过 SAML 消息交互来完成用户身份认证过程,而这对你很难以理解。或者我站在讲台上,你坐在下面,我也可以在黑板上给你一步一步的讲解一个完整的示例,这中间会有互动,会帮你填补一些空缺的知识点。但是,在这里,我只能尽可能的简单阐述。

Launcher | 园豆:45045 (高人七级) | 2015-03-12 10:09

@Launcher: 可以加个QQ吗 ,我想请教下您,因为我不太懂这个所以希望您可以给我指个方向需要学习什么往哪方面发力比较好547471505

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-12 10:14

@天蓝居士: 你掌握了 HTTP,Asp.Net MVC,WCF 等基础知识后再来问吧!否则我就只能让你看源码了。

Launcher | 园豆:45045 (高人七级) | 2015-03-12 10:19

@Launcher: 大哥,SAML相当于取代了Kerberos,通过LDAP存储数据,但是在基于SAML的SSO系统里如何进行加密解密分发密钥,还需要KDC吗

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-04-08 14:50

@天蓝居士: https://www.oasis-open.org/committees/download.php/5250/draft-sstc-solution-profile-kerberos-02.pdf

你只要看个标题就行了,“2 Using Kerberos with SAML”,然后你就知道你错的有多离谱了。

为什么我建议你学习下 WCF,然后使用 WCF 来构建 SSO,你却不听取建议呢?

依照你现在的水平,还没达到拽几个词“Kerboros”、“LDAP”、“密钥分发”、“KDS”就能把概念阐释清楚的地步,还是老老实实的搞明白,在 SSO 场景中,有哪些参与方,消息是如何组装,如何在各个参与方之间传递,各个参与方如何处理消息并响应。

Launcher | 园豆:45045 (高人七级) | 2015-04-08 15:10

@Launcher: 哥,我在别的博客里看到身份认证、单点登录方面常用的技术规范或协议有Kerberos、SAML,这个意思是不是说随便用哪个都可以实现认证,因为SAML里的IDP就是个认证中心?还有就是搭建一个Kerberos的环境比较复杂,KDC(密钥分发中心)的建立也需要相当多的环节,所以想问问您是不是可以不用kerberos,请您谅解我对这方面知识的匮乏,我是真的有疑问?

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-04-08 15:45

@天蓝居士: 

跟你说了别拽名词,因为你根本不理解,SAML 仅仅相当于 XML 中的 DTD,在 C# 中,你会用 C# 代码类解析 SAML 消息,然后根据 SAML 的文法解析并执行相应的操作。或者把 SAML 说成类似于 Java Script,你只是用 C# 写了个 JS 的执行引擎。

微软已经提供了很丰富的例子了,你可以自己学习,

http://weblogs.asp.net/cibrax/single-sign-on-scenarios-with-federation

https://msdn.microsoft.com/en-us/library/aa355045(v=vs.110).aspx

http://blogs.msdn.com/b/alikl/archive/2010/11/02/windows-identity-foundation-wif-code-samples.aspx

Launcher | 园豆:45045 (高人七级) | 2015-04-08 16:19

@天蓝居士: 对了,你读(“2 Using Kerberos with SAML”)这一节的内容了吗?读懂讲了啥吗?

Launcher | 园豆:45045 (高人七级) | 2015-04-08 16:23

@Launcher: 不是很明白

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-04-08 16:31

@天蓝居士: 那就没办法了,我只能告诉你那份 PDF 文档讲解的是 Kerberos 协议是如何同 SAML 联合使用的。我发这篇文档的目的就是告诉你,你说的什么“SAML相当于取代了Kerberos”之类的观点都是不全面的,在 SAML 中不仅能联合使用 Kerberos,还能用 NTLM等等其它身份认证方案。

到目前为止,我发了很多文档,还有很多示例程序,你文档也看不懂,示例程序也不自己调试运行下,光在这儿磨嘴皮子。就(https://www.oasis-open.org/committees/download.php/5250/draft-sstc-solution-profile-kerberos-02.pdf)这篇文档而言,它就有 12 页(还不包括其要求阅读者必须具备的一些其它基础知识),你认为我能在这里跟你讲清楚吗?

Launcher | 园豆:45045 (高人七级) | 2015-04-08 16:43

@Launcher: 为什么IDP具备认证功能还需要联合kerberos,毕竟加上kerberos搭建就更复杂了,其实就是这一点我不太明白,还有就是搭建一个基于SAML的单点登录系统,我想弄明白由那几个部分组成然后可以一个一个攻克学习,但现在我只知道需要IDP、SP、LDAP,请问还有别的组成部分吗?

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-04-08 17:07

@天蓝居士: “那份 PDF 文档讲解的是 Kerberos 协议是如何同 SAML 联合使用的” ——〉 没有说你必须在 SAML 中联合使用?换句话说,你也可以不用 Kerberos,你从头到尾给我看一遍,我在哪儿说过你必须使用 Kerberos 了

我发这篇文档的目的就是告诉你,你说的什么“SAML相当于取代了Kerberos”之类的观点都是不全面的只是为了证明你的理解是错误的,没有告诉你必须用 Kerberos

 

http://weblogs.asp.net/cibrax/single-sign-on-scenarios-with-federation

https://msdn.microsoft.com/en-us/library/aa355045(v=vs.110).aspx

http://blogs.msdn.com/b/alikl/archive/2010/11/02/windows-identity-foundation-wif-code-samples.aspx

千万别把 LDAP 跟 SAML 搞混淆了,LDAP 跟你提到的 Kerberos 一样,是不属于 SAML 范畴的概念,大哥,我求求你看看上面提供的示例代码,里面有完整的如何实现 STS(IDP) 的方式,没错,你可以通过简单的使用数据库中存储的用户名和密码来颁发 SAML Token

Launcher | 园豆:45045 (高人七级) | 2015-04-08 17:25

@Launcher: ok 多谢了

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-04-08 17:34

请问有没有装过shibboleth,我按照这个网址弄到idp没有成功,请帮忙看看http://lhy5201314.iteye.com/blog/1171267

辰琼 | 园豆:200 (初学一级) | 2015-04-21 15:39

@辰琼: 没用过,只用 WCF 和 WIF。

Launcher | 园豆:45045 (高人七级) | 2015-04-21 15:48

您好,请问SAML令牌里面包含啥信息,还有就是第二次访问资源的时候先拿着SAML令牌去认证然后返还一个凭证这里面包含什么信息?

天蓝居士 | 园豆:202 (菜鸟二级) | 2016-03-30 12:42
其他回答(2)
0

1知道,23就不知道了

天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-11 14:01

你的《编译原理》学的怎样?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-03-12 10:10

@Launcher: 没学过 其实我本科学仪器的,研究生现在居然在学这个

支持(0) 反对(0) 天蓝居士 | 园豆:202 (菜鸟二级) | 2015-03-12 10:12

@Launcher: 大神你好,我刚学编程,领导让我做这个基于SAML的SSO,我需要学什么?这个系统要用于几个web网站上。没有时间限制,所以可以学得仔细一点。

支持(0) 反对(0) zztdan | 园豆:24 (初学一级) | 2015-06-09 16:44
0

SAML相当于是一个介绍信,告诉别的应用程序他是谁。SAML是一些用户信息及对这些信息的签名防止篡改。

smileruner | 园豆:204 (菜鸟二级) | 2016-07-05 09:36

转眼6年了,回过头看看当年的帖子,哈哈,学习了……

支持(0) 反对(0) Reaforstar | 园豆:105 (初学一级) | 2016-07-11 18:10

@Reaforstar: 有没有长成大牛

支持(0) 反对(0) smileruner | 园豆:204 (菜鸟二级) | 2016-07-12 09:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册