随笔 - 120  文章 - 0  评论 - 902  阅读 - 51万

介绍WS Federaion 二:把百度和谷歌和谐起来

 

上文介绍了微软的Passport和传统的SSO在软件架构上的失败,都需要将用户名密码存储到一个地方,那样谁都不愿意,除非一方特别强势,不然谷歌和百度是谁都不愿意妥协的。

那么有什么办法来解决这个用户凭证的存储问题呢?

       先来看看欧洲各大申根国协定。协议规定了单一的签证政策,即凡外籍人士持有任何一个申根会员国核发的有效入境签证,可以多次进出其会员国,而不需另外申请签证。因此,前往欧洲各申根国旅行,只需获得其中一国的签证即可。基于SAML的Federation身份认证类似于申根签证,在Federation联盟的内部,每个成员签发的SAML断言都能够被其他联盟成员所信任,并且能够基于授权模式的保护资源资源访问。

再简单介绍一下SAML,他是Security Assertion Markup Language的缩写,安全断言标记语言。也是WS*规范的组成部分。

他由断言方和信任方以及用户身份主题组成。用户持有断言方的凭据向信任方报到,信任方基于证书签名,验证此用户持有的断言是否正确,而且是由断言方签署的断言。

举例百度空间用户想使用谷歌受保护的Gmail,那么他们之间怎么建立一个信任关系呢?

我用我不擅长的Visio画了序列图,大家不要见笑了。


其中的几个关键步骤:

第五步:用户在百度登录成功后百度颁发一个SAML安全令牌,这个令牌是使用的自己的私钥在摘要上签名的,那么能证明这个SAML就是百度签发的。

第七步:谷歌认证中心在接到百度颁发给用户的安全令牌后,使用百度的公钥解密摘要,并对比摘要是否一致,验证如果一致,那么就能确保这个断言是百度颁发的,并且信任这个断言。

(当然在这个流程设计中,谷歌的认证中心和Gmail可以是一个,而不必跳转浏览器。另外谷歌内部也可以不在内部维护一个安全令牌。)

百度的用户凭证存储在百度上,但是却能够访问谷歌的受保护资源,这样,就能把百度和谷歌的用户和谐了起来!




名词解释:

摘要:

即对数据进行哈希,哈希后字节量明显减少。

签名:

使用自己的私钥给数据加密,那么只要对方能够拿你的公钥解开,那么就证明是你的,因为没有人能获得你的私钥。

posted on   Keep Walking  阅读(4171)  评论(13编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
< 2008年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示