cf88ecefa3d909447b1e993efad905cf.ppt
- Количество слайдов: 30
Shibboleth 在高能所统一认证系统中的应用 中科院高能物理所 马兰馨 2013. 7. 9
报告内容 背景 l Shibboleth介绍 • 高能所统一认证方案设计 • 应用接入方案 l
背景 l 高能所校园网应用系统众多 l 邮件系统、会议管理系统、文档管理系统、磁盘、软件、。。。。 。。 • 每个系统有自己的认证机制、用户数据库 • 用户记住每个应用系统的username/password • 用户管理复杂 • 解决方案 – 单点登录系统SSO(Single Sign On) – Shibboleth
关于 Shibboleth l l A Web-based Single Sign On (SSO) 美国 Internet 2 高级网络联盟/MACE(Moddleware Architecture Committee for Education)小组的一个项目 • 其目的是开发一个基于标准(主要是SAML和 XML Schema)的体系结构和策略框架及一套开放源代码软件, 以用于支持机构间的、需要存取控制的Web资源共享的单 点登录系统。 • 安全断言标记语言 SAML(Security Assertion Markup Language ) • XML即可扩展标记语言(e. Xtensible Markup Language)
Shibboleth 优势 • • • 用户只需记住一个username/password 用户管理简单、集中 安全地访问第三方服务 跨组织、联盟 保护隐私 使服务提供者可以控制能够控制其被访问的资源 • 整合不同的第三方服务
系统组件 • Id. P (Identify Provider) 主要负责提供各种凭证和属性,对用户身份进行认证和 用户属性进行管理。当用户请求访问受限资源时,Id. P 会发送验证声明或属性声明给SP。 • SP (Service Provider) 主要负责访问资源安全方面的管理,对资源进行保护、 用户访问资源进行授权和执行访问控制,通过 Id. P 发 送来的声明决定用户是否获得资源访问权限。 • DS (Discovery Service) 以互动方式为用户提供 Id. P 选择的标准接口,具有高度 可定制性,可将用户提交的选择直接将用户重定向给 对应的 SP。 DS 可由资源控制,也可作为中心共享服 务运行。
构成 SSO 主要角色 • 构成基于Web的SSO系统的主要角色 • • Web Browser: 用户 Resource: 被保护资源 Id. P (Identity Provider): 认证用户 SP (Service Provider): 执行认证,转到被保护资源 • Discovery Service Provider(DS):允许用户选择Id. P
作流程 1. 用户访问被保护资源 2. 用户将请求转发给Id. P 3. Id. P认证用户信息 4. Id. P发送认证信息给SP 5. SP检验Id. P的返回信息,决定是否允许用户访问资源 6. 返回给资源信息,完成整个认证过程
系统架构 WAYF Identity Provider 5 4 3 2 Service Provider Web Site 6 1 7 Credentials Handle ACS Handle User DB 9 AA Attributes Handle 10 AR Attributes Resource 8 Resource Manager HS
IHEP 统一认证方案 l 方案: – Id. P+ Kerberos+ldap+username/password – SP + web Application • 目前实现了 一个Id. P, 多个SP,一个SP保护一个资源
用户信息、访问方式 • 用户信息 – Kerberos 认证信息(username/password) – Ldap 用户属性(姓名、email、telephone、部门、……) – Application 的本地数据库 授权信息(Role,group, 权限,…) • 访问方式 – 访问单个应用系统 – 统一用户接口 • • 通过菜单访问应用系统 修改用户个人信息 修改口令 帮助信息
IHEP 统一认证架构图 Authentication Shibboleth Id. P Web Browser Apache/Tomcat Apache Shibboleth SP LDAP Account Management SSH Kerbores Shibboleth SP 1 SPn …… App 1 APPn
应用系统接入认证系统的技术方案(1) • • • 应用程序必须为基于Web的程序 最好与SP安装在同一台机器上,实现对资源的保护 允许单点认证系统用户进行登录 应用系统可以保留现有的用户账户信息(本地数据库) 应用系统针对需要单点认证的用户,需要在应用的登录页 面增加一个专供单点认证用户使用的链接,该链接由应用 中专门的程序来进行处理。 • 为了允许单点认证系统用户登录,应用程序需要进行一些 修改,要写接口程序(PHP, Python, JSP,…)
应用系统接入认证系统的技术方案(2) • 假设应用部署在 sp 1. ihep. ac. cn 主机上,并安装了SP,允许单点认证 帐号登入。该应用中: • 首页地址为:https: //sp 1. ihep. ac. cn/app • 具体处理程序为该应用根目录下的 index. php (或index. jsp)。 该程序 的功能为: • 1. 检查该用户是否已经通过了统一认证,具体检查方法为: 查找HTTP请求中有没有名为Shib-Identity-Provider的请求头,对于 php应用程序,使用 $_SERVER["Shib-Identity-Provider"]; 来进行检 查 • 2. 如果通过步骤 1中的检查,用户已经通过了单点认证,则从HTTP请 求头中取得用户名、姓、名、所属机构名、邮件地址、等等信息,并 放入Session中,以便于以后和应用程序的其他部分共享这些信息, 并把用户重定向到登录成功界面,即应用的主面。 • 3. 与本地数据库进行比对,如何本地数据库允许其用户登入,则把用 户重定向到登录成功界面 • 4. 如果没通过步骤 1、步骤 2、步骤 3的检查,则退出应用
应用系统接入认证系统的技术方案(3) 认证成功后提供用户的信息有: – Username, sn, Given. Name, email, … • 认证系统提供给应用系统得到用户信息的接口 – PHP程序使用以下语句取得用户属性: $_SERVER["uid"]; $_SERVER["sn"]; $_SERVER["given. Name"]; $_SERVER["mail"]; • l
与应用系统整合举例
帮助信息 • http: //shibboleth. net
谢谢!!
什么是Shibboleth,如何 作 • A user authenticates with his or her organizational credentials. The organization (or identity provider) passes the minimal identity information necessary to the service manager to enable an authorization decision • Shibboleth leverages the organization’s identity and access management system, so that the individual’s relationship with the institution determines access rights to services that are hosted both on- and off-campus.
基本组成 • There are 3 parts to the Shibboleth system: – Identity Provider(Id. P) - the software run by an organization with users wishing to access a restricted service; – Service Provider(SP) - the software run by the provider managing the restricted service. – Discovery Service(DS) - an SP will usually be able to handle users authenticated by multiple Id. Ps and at that point it has no option but to ask the user to select an Id. P, which is usually done by a Discovery Service. • Id. P & SP are the two primary parts
SSO主要角色 • The main actors in a web-based SSO system are: • Web Browser: represents the user within the SSO process • Resource: contains access-restricted content that the user wants • Id. P (Identity Provider): authenticates the user • SP (Service Provider): performs the SSO process for the resource • Discovery Service Provider(DS):allows a user to select which Identity Provider they will use when accessing a Service Provider
体系结构
架构图 Authentication Web Shibboleth Id. P Browser Apache/Tomcat Shibboleth SP 1 User DB (Kerberos/LDAP) App 1 APP 1 …… Shibboleth SPn APPn
Shibbole如何 作 • Id. P与SP通过SAML消息传送用户的身份认证和属性等信息。 SAML消息定义了2种重要的语句:(1)身份验证语句,关 于该主题在何时何地、使用何种身份进行过验证的报告。 。 (2)属性语句,包含了与主题有关的属性。属性语句中典型 的属性是组和角色。SAML定义了一组XML格式的请求和 应答消息,SP可使用这些消息直接获取断言。
基本组成 • There are 3 parts to the Shibboleth system: – Identity Provider(Id. P) –主要负责维护用户的信任和属性,并在请 求时,做出认证语句或属性语句的断言。 – Service Provider(SP) –主要负责管理被保护的资源,即按照Id P的断言,决定用户对资源的存取。SP一般包括断言处理服务、 属性请求者和目标资源。 – Discovery Service(DS) - an SP will usually be able to handle users authenticated by multiple Id. Ps and at that point it has no option but to ask the user to select an Id. P, which is usually done by a Discovery Service. • Id. P & SP are the two primary parts
作流程 1. User Accesses Protected Resource 2. SP Determines Id. P and Issues Authentication Request 3. User Authenticates to the Id. P 4. Id. P Issues Response to SP 5. Back to the SP 6. Back to the Protected Resource
管理、资源、使用 • 帐号统一管理 • 提供 2种登入方式 • 登入单个应用 • 登入统一界面 • SP与Application的整合 • 网络组周报系统、系统组月报
为什么选择 Shibboleth • • 用户只需记住一个username/password 用户管理简单、集中 安全地访问第三方服务 跨组织、联盟 使机构选择自己的身份验证技术 使服务提供者可以控制能够控制其被访问的资源 整合不同的第三方服务
作流程 1. User Accesses Protected Resource 2. SP Determines Id. P and Issues Authentication Request 3. User Authenticates at the Id. P 4. Id. P Issues Response to SP 5. Service Provider Checks Response 6. Back to the Protected Resource
用户接口
cf88ecefa3d909447b1e993efad905cf.ppt