• SAML


    一、什么是SAML?
    SAML(Security Assertion Markup Language),安全断言标记语言。是一种安全框架或规范,用于认证和授权。形式为XML,内容包括三个方面:

    1.认证申明。表明用户是否已经认证,通常用于单点登录。
    2.属性申明。
    3.授权申明。表明 某个资源的权限。

    比如,企业应用要访问某服务,为了保证身份安全,可以采用除了加密签名等措施,还要采用SAML规范来传输,传输的数据以XML形式,内容符合SAML的推荐标准。这样应用和服务各自是什么样的系统没有关系,只要能理解SAML规范即可。

    那么,SAML 是否安全,因为内容就是XML?答案是SAML有一定的安全性,虽然是XML格式,但不容易被修改:

    首先,SAML虽然形式上是XML,但里面有些值是经过加密的;

    其次,SAML基于XML签名规范,即采用XML的语法规则,对数字签名的生成和验证过程进行充分而准确的描述,这个过程包括密钥对生成、文档签名、传送文档及验证签名(有关XML签名,是另外一个课题,需要另行学习。),具有防篡改、不可抵赖等特点。

    二、SAML与HTTPS的比较
    照我的理解,SAML用于不同系统之间的认证和授权的规范,是应用级别的;而HTTPS则完全就是一种网络安全传输协议,与SAML不是一类东西。如果从安全角度看,HTTPS要强许多。

    三、SAML的应用
    很明显,SAML与单点登录(SSO)、第三方登录,比如oAuth2这些不同系统之间认证机制有关。

    前面提到,SAML里可以包含授权信息。oAuth2带有授权信息,这个比较容易理解,它本来主要目的就是干这个的,比如我想打开某个应用,结果提示可以用微信登录,然后让我同意访问微信的用户名,相册什么的,这里面就包含有授权信息了。

    但是,单点登录,需要用这个授权信息吗?

    本来,照我一直以来想当然的理解,单点登录系统只管认证就好了,至于权限处理,则完全由应用系统自行处理。不过细想一下,单点登录也提供授权信息也是好事一桩,因为只需在单点登录系统里面维护一份权限数据就行了,各应用系统则不必,一则节省,二则也许权限数据易于在各系统间传递,处理?

    姑且理解这么多。

    参考资料:

    百度百科:SAML

    XML数字签名原理及在电子商务中的应用

  • 相关阅读:
    湖南省第6届程序大赛第6题 Biggest Number
    湖南省第6届程序大赛第5题 内部收益率
    湖南省第6届程序大赛第4题 台球碰撞
    湖南省第6届程序大赛第3题 数字整除
    湖南省第6届程序大赛第二题 弟弟的作业
    湖南省第6届程序设计大赛第一题 汽水瓶
    Nginx 负载均衡配置
    Nginx 反向代理流程
    Nginx 对客户端请求的特殊处理
    Nginx文件操作的优化
  • 原文地址:https://www.cnblogs.com/leftfist/p/6808649.html
Copyright © 2020-2023  润新知