Shibboleth简介——Shibboleth是怎样工作的(二)?
Identity Provider Discovery (IdP发现)
一个服务提供者(SP)是怎么决定发送认证请求给与之工作的多个IdP中的哪一个呢?用Identity Provider Discovery可以实现
Shibboleth提供两个产品来执行Identity Provider Discovery。(Embedded Discovery Service和Centralized Discovery Service)
Embedded Discovery Service:同Shibboleth服务提供者(SP)工作为了展示和你的站点结合的IdP选择器用户界面
Centralized Discovery Service:是一个脱机应用,它能被集中布署到代表面向选择器用户界面的工作的SP
鼓励SP使用Embedded Discovery Service,因为它能提供更好的用户体验。
User Attributes (用户属性)
当使用Shibboleth时,另一个大多数服务充分利用的特征是,从IdP接收的关于用户的数据的能力。这个数据叫做用户属性(user attributes),用户属性可以是IdP知道的关于用户和可能对SP有帮助的任何数据。下面是这些数据的一些例子:
2. 用户所属的组;
3. 用户在组织中的角色信息;
4. 用户被授于的具体的特权
保护用户隐私的能力是所有的Shibboleth产品的主要关注点。IdP和SP允许部署者设置属性过滤策略来解决这些关注的内容。在IdP中,这个策略控制哪些属性将被释放给哪些SP,而在SP中,这个策略控制什么信息将被从哪些IdP接收。
Metadata (元数据)
如果单点登录过程通过HTTP执行, 当IdP和SP相互通信的时候,它们如何知道要使用哪些URL?这个功能通过 元数据(metadata)文件实现,元数据文件描述IdP或SP的各种不同的技术方面。
IdP或SP的元数据通常包含下面的信息:
1. 一个唯一的标识符,叫做实体id (entity id);
2. 一个人类可读的名字和描述;
3. 一个URL列表,哪些消息应该被传送和一些关于什么时候使用该URL的信息;
4. 当创建和验证消息时使用的加密信息
一个联盟通常的功能是公开一个包含给己经同意一起工作的IdP和SP的所有元数据的文件,然后使所有的参与者可用。这样,当SP改变元数据的时候,SP不需要联系每一个IdP,只需要简单的把元数据提供给联盟即可。
Profiles (配置文件)
SAML说明书由几个文档组成:
核心文档(Core document):定义了各种各样的XML元素和属性并且规定了一些关于他们内容的基本的规则(例如:属性X必须是一个正数)。核心文档和只定义单词但是不具体把单词组合到一起创造出有意义的东西的字典类似。
配置文件(Profiles document):描述了如何利用核心文档中定义的元素来实现一个具体的功能(例如:实现一个单点登录请求)。它主要是提供语法规则的。
配置文件是SAML中互用性的单元,这意味着产品应该交互操作,如果它们支持一个给定的配置文件。Shibboleth支持的配置文件的列表见这里
Bindings(绑定)
绑定在与元数据的连接和特点的配置文件中被提到,并被SAML协议使用来定义各种各样的软件组件如何传输消息给接收者。包括POST绑定,定义如何使用HTTP POST请求来发送消息,如何格式化消息和包含消息的POST参数的名称。重定向绑定,定义如何通过把消息放在HTTP重定向请求的URL中传送一个消息。