首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么SAML持久标识符被用作“隐私保护机制”?

为什么SAML持久标识符被用作“隐私保护机制”?
EN

Stack Overflow用户
提问于 2017-01-04 14:38:37
回答 1查看 797关注 0票数 0

SAML规范第8.3.7节指出,persistent nameID格式用于隐私保护:

持久性标识符意在作为隐私保护机制;因此,不能以明文形式与已建立共享标识符的提供者以外的提供者共享这些标识符。此外,在没有适当的控制和保护的情况下,它们不能出现在日志文件或类似位置。

我不确定我是否理解使用持久性标识符作为隐私保护机制背后的意图--特别是考虑到大多数其他NameID类型(电子邮件、SN、限定名称、kerb主体等)。所有SP都是一样的。

唯一的NameID每SP是如何‘隐私保护机制’?具体来说,通过在另一种类型上使用persistent NameID字段可以减轻哪些攻击向量(特别是当正确的受众限制和签名等保护措施到位时)?

EN

回答 1

Stack Overflow用户

发布于 2017-01-04 16:58:26

这是一种隐私保护机制,因为它不会将真正的标识符从IdP传输到SP。同时,电子邮件NameID类型,例如,将您的电子邮件从IdP传输到SP。

我可以找到的一个在线资源解释了这一点,它是使用持久性化名标识符的http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html第5.4.3节。

处理情况如下:

  1. 用户尝试访问cars.example.co.uk上的资源。用户在此站点上没有任何当前登录会话(即安全上下文),也不为其所知。用户试图访问的资源被保存为RelayState信息。
  2. 服务提供者使用HTTP重定向绑定将用户发送到标识提供者(airline.example.com)的单一登录服务。HTTP重定向包括一条SAML消息,请求标识提供者使用持久名称标识符为用户提供断言。由于服务提供者希望IdP能够灵活地为用户生成一个新的标识符(如果用户还不存在),SP将NameIDPolicy元素上的AllowCreate属性设置为‘true’。
  3. 用户将被要求提供有效的凭据。
  4. 用户提供有效的凭据,并将自己标识为john,并在IdP上为用户创建本地安全上下文。
  5. 单一登录服务在其标识存储中查找用户john,并且看到AllowCreate属性允许它,创建一个持久的名称标识符(61611),用于服务提供者的会话。然后,它构建一个签名的SAML断言,在该断言中,主题使用瞬态名称标识符格式。断言中的任何地方都没有包含约翰这个名字。注意,根据合作伙伴协议的不同,断言还可能包含描述用户身份属性的属性语句(例如,它们的成员级别)。
  6. 由于用户操作或执行“自动提交”脚本,浏览器发出HTTP请求将表单发送到服务提供者的断言消费者服务。
  7. cars.example.co.uk服务提供者的断言消费者服务在SAML响应上验证数字签名,并验证SAML断言。然后使用所提供的名称标识符来确定是否已经建立了以前的联合。如果已经建立了以前的联合(因为名称标识符映射到本地帐户),则转到步骤9。如果断言中不存在持久标识符,则SP需要确定应该分配给它的本地标识。用户将被要求在SP提供本地凭据。或者,用户可能首先会被问到他是否希望联合这两个帐户。
  8. 用户提供有效的凭据,并将SP上的帐户标识为jdoe。然后将持久性名称标识符与创建名称标识符的标识提供者的名称一起存储并在jdoe帐户中注册。
  9. 为用户jdoe创建本地登录会话,然后进行访问检查,以确定用户jdoe是否具有访问cars.example.co.uk网站上所需资源的正确授权(资源URL是从RelayState信息标识的状态信息中检索的)。如果访问检查通过,所需资源将返回给浏览器。

不过,我确实认为第五步有一个错误。它应该是“使用持久名称标识符格式”,而不是“使用临时名称标识符格式”。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41466447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档