1.1 概念介绍
SSO(Single sign-on)即单点登录技术。它是指在多个子系统的大型应用中,用户在
子系统之间进行切换时,不需要每次都重新输入用户的身份信息,从而做到一处认证,整
个应用系统都能有效识别。单点登录技术的系统集成功能为当前企事业单位尤其是大型多
子系统企业系统集成提供了完美的解决方案。它使得这些原有系统能够合理的集成起来,
对外提供统一的界面风格和唯一的登录入口。单点登录只是一种功能概念,并没有对具体
的实现方式进行定义和限制。NC-Portal 的单点登录方案,就是 SSO 技术的一种实现方式。
NC-Portal 的 SSO 方案是基于凭证的思想设计。对于 NC-Portal 集成的每个第三方系统
都有一个制作凭证的页面,该页面用于当前登录的 portal 用户输入对应的第三方系统的用
户信息,在正常情况下,该制作凭证的页面最多出现一次。当用户输入的第三方系统登录
信息进行验证后,会自动在 portal 系统的数据库中建立一对凭证槽和凭证信息,这对信息
记录了 portal 用户在特定的 portal 布局和特定的 portlet 下,与该第三方系统的身份对应关系。
当该用户之后登录 portal 并进入被集成第三方系统时,portal 系统负责获取之前成功建立的
对应第三方系统身份信息,并用该身份信息进行第三方系统的身份认证。这一切的操作对
当前登录用户来说都是透明的,他们看到的是没有输入任何身份信息而以正确的身份进入
了第三方系统。另外,在用户每次登录第三方系统时,都会根据第三方系统的要求进行身
份认证,因此这个登录过程是安全的。
对于 NC-Portal 来说,对 Web 系统的集成提供了完善的支持和解决,对 Web 系统的
集成,目前有大小之分。集成一个单独的系统如 NC、IUFO、BO、OA 系统采用单独的一
个布局存放(当然,该布局也是由一个 portlet 组成),这些 Web 系统称为“大”系统。另外,
还存在一些集成第三方系统的“小”portlet,如 NC 待办事务 Portlet、NC 报表 Portlet、IUFO
报表 Portlet 等,这些是以“小”Portlet 的形式出现的。他们主要提供一些对集成系统的辅助
功能,如对 NC 待办事务的提取、对 IUFO 报表信息的提取,这两种方式功能侧重点略有不
同。
1.2 API 介绍
当第三方系统与 Portal 进行集成时,必须实现 Portal 要求的单点集成接口
nc.bs.portlet.IWebAppLoginService。该接口负责完成生成凭证的过程、定制生成凭证所需要
用户提供的信息域以及提供用户登录时的转向 URL,在制作凭证和提供用户转向 URL 时
需要根据第三方系统的需要进行必要的用户认证。
该方法进行凭证的制作:
public PtCredentialVO credentialProcess(HttpServletRequest req, SSOProviderVO
providerVO) throws PortletLoginException;
req:http 请求,通过 getParameter 方法可以获取用户输入的单点登录信息,通过该信
息构造凭证。
providerVO:该系统在 sso-provider.xml 中配置的单点信息可以从该 vo 中获取。
该方法获取生成凭证所需用户提供的信息域
评论0