支持Shibboleth的Apache HTTPClient封装:shib-http-client

jopen 11年前

围绕 Apache HTTPClient 的简约封装增加Shibboleth支持。
特性如下:

  • No IdP discovery - a pre-defined IdP is used
  • No fancy logins - login to the IdP happens via HTTP Basic authentication
  • No certificate checks - it is easy to disable all certificate checks. If you don't disable this, make sure your Java environment knows about the certificates used by the IdP and SP.

示例:

// Initialize OpenSAML  DefaultBootstrap.bootstrap();    // The last argument indicates to accept any certificate  HttpClient client = new ShibHttpClient(aIdpUrl, aUsername, aPassword, true);  HttpGet req = new HttpGet("https://my/protected/url");  HttpResponse res = client.execute(req);  ... = res.getEntity().getContent(); // returns an InputStream

  1 Shibboleth简介

  Shibboleth是一个针对SSO的开源项目。Shibboleth项目主要应用在校园内Web资源共享,以及校园间的应用系统的用户身份联合认证。

  Shibboleth主要针对分布式资源如何有效访问的问题。与其他系统的区别在于Shibboleth将认证模块放在客户端,资源提供者只需进行少量的验证工作,极大地减轻了资源提供者的负担,简化了访问程序、提高了访问资源的效率、安全性得到了保证。在系统扩展方面,Shibboleth采用了SAML规范,同时也在SAML上作了改进,保证了系统的可扩展性。

  Shibboleth主要由3个部分组成:

  (1)Origin

  对应Identity Provider(IdP),身份提供端。主要作用是向资源提供者提供用户的属性,以便使资源服务器根据其属性对操作进行判决响应。

  (2)Target

  对应Resource/Service Provider,资源/服务提供端。主要作用是响应用户的资源请求,并向该用户所在的Origin查询用户的属性,然后根据属性做出允许或拒绝访问资源的决策。

  (3)WAYF

  WAYF是Where Are You From的首字母简称。SHIRE使用WAYF来进行大部分初始化工作。WAYF组件知道每一个Origin端句柄服务器的名称和位置。其主要功能是将 Origin端站点名称映射到HS信息上。WAYF的另一个作用是为用户查询HS并将句柄发送给SHIRE。WAYF通过与用户打交道,询问“你从哪来”,用户输入组织名称,WAYF便在用户组织的名称与HS的URL之间进行映射。

项目主页:http://www.open-open.com/lib/view/home/1389925683961