单点登录NC65 Portal端配置说明

354 篇文章 102 订阅

在这里插入图片描述

执行下面三个SQL脚本注册协同扩展信息。

insertinto pt_extension(classname, dr, i18name,id, isactive,module, pk_extension, pk_extpoint, pk_module,point, title, title2, title3, title4, title5, title6, ts)VALUES('nc.uap.portal.user.chain.SimpleMKeyLoginChain',0,NULL,'SimpleMKeyLoginChain','Y','websm','0000Z01000000000092H','0000Z01000000000002N','0002z0100000module14','UserVerifyChain','SimpleMKeyLoginChain','SimpleMKeyLoginChain', 'SimpleMKeyLoginChain', NULL, NULL,NULL,'2018-01-14 19:56:39');

update pt_extensionset isactive='N'wherepoint='UserVerifyChain';

update pt_extensionset isactive='Y'where classname='nc.uap.portal.user.chain.SimpleMKeyLoginChain';

配置MKEY。

在nchome\hotwebs\lfw\WEB-INF\conf\system.properties中添加一行:MKEY=mkey

mkey是单点登录使用的**,也可以设置成其他值,建议稍微复杂一点。
在这里插入图片描述

外部系统单点登录NC65 porta配置说明

3、 部署单点登录补丁:class文件。
类路径:modules\websm\classes\nc\uap\portal\user\chain\ SimpleMKeyLoginChain.class
源码:

package nc.uap.portal.user.chain;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.servlet.http.HttpServletRequest;
import sun.misc.BASE64Encoder;
import nc.uap.lfw.core.LfwRuntimeEnvironment;
import nc.uap.lfw.core.log.LfwLogger;
import nc.uap.portal.login.itf.LoginInterruptedException;
import nc.uap.portal.login.vo.AuthenticationUserVO;

public class SimpleMKeyLoginChain extends AbstractVerifyChain {

 @Override
 public void doVerify(HttpServletRequest request, VerifyAtomChain chain) {
  String authKey = request.getParameter("AuthKey");
  String userid = request.getParameter("userid");
  String mKey = LfwRuntimeEnvironment.getServerConfig().get("MKEY");
  String ret = buildAuthKey(userid, System.currentTimeMillis() , mKey);
  if(ret.equals(authKey)){
   AuthenticationUserVO userVO = new AuthenticationUserVO();
   userVO.setUserID(userid);
   try {
    doLogin(userVO);
   } catch (LoginInterruptedException e) {
    LfwLogger.error(e.getMessage(), e);
   }
   if (hasLogin())
    chain.doFilter(request);
  }
 }

 @Override
 public int compareTo(IUserVerifyChain o) {
  return 0;
 }

 public static String buildAuthKey(String userid, long timeSpan, String mKey){
  try {
   String time = "0000";//(timeSpan + "").substring(0, 9);
   String key = userid + time + mKey;
   byte[] codes = MessageDigest.getInstance("SHA-1").digest(key.getBytes("UTF-8"));
   return new BASE64Encoder().encode(codes).replace("+", "");
  } catch (Exception e) {
   LfwLogger.error(e);
  }
  return "";
 }
}

4、 增加gtPortal.jsp文件。
文件放置路径:nchome \webapps\nc_web\gtPortal.jsp
gtPortal.jsp中request.getParameter(“user”);获取请求参数中的用户编码
request.getParameter(“mkey”);获取请求参数中的编码,该编码就是在步骤2中设置的MKEY值。
gtPortal.jsp源码:

<%@ page language="java" contentType="text/html; charset=utf-8"%>

<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.InputStreamReader"%>
<%@page import="java.net.HttpURLConnection"%>
<%@page import="java.net.URL"%>
<%@page import="java.security.MessageDigest"%>
<%@page import="sun.misc.BASE64Encoder"%>
<%@page import="java.io.IOException"%>

<%
 String user = request.getParameter("user");
 String mkey = request.getParameter("mkey");
 if(user.length() == 0){
  return;
 }
 
 String time = "0000";//(timeSpan + "").substring(0, 9);
 String key = user + time + mkey;
 byte[] codes = MessageDigest.getInstance("SHA-1").digest(key.getBytes("UTF-8"));
 BASE64Encoder BE = new BASE64Encoder();
 String str = BE.encode(codes).replace("+", "");
 String ssoPortalUrl = "http://127.0.0.1:9999/portal/pt/home/index?lrid=1&&userid="+user+"&AuthKey=" + str;
 
 response.sendRedirect(ssoPortalUrl);
%> 

5、 重启中间件后测试访问。
IE浏览访问地址:http://ip:port/gtPortal.jsp?user=usercode&mkey=mkey
其中:
user为登录用户编码。
mkey为步骤2中设置的MKEY值。
外部系统通过步骤5中访问地址,使用用户编码和MKEY值作为请求参数单点登录NC portal端。

原文链接:https://www.likecs.com/show-203375847.html?sc=200

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报表信息的提取,这两种方式功能侧重点略有不同。
单点登录(Single Sign-On,简称SSO)是一种身份验证和访问控制的解决方案,允许用户使用一组凭证(如用户名和密码)进行一次登录,然后在多个应用程序和系统中无需再次输入凭证即可访问。NC65作为一种有效的单点登录解决方案,能够带来以下好处。 首先,NC65实现了用户凭证的集中管理。用户只需在登录时输入一次凭证,系统便会将其保存在安全的认证服务器中。这样,用户无需记住多个复杂的用户名和密码,提高了登录的便捷性。 其次,NC65提供了高度的安全性保障。凭证的集中管理意味着可以更加严格地控制用户的权限和访问范围。只有经过授权的用户才能够访问系统中的应用程序和资源,从而降低了安全风险。 此外,NC65还提供了单点注销功能。用户在退出其中一个应用程序后,系统会自动注销用户的所有会话,确保用户不再能够访问其他应用程序。这种注销机制可以有效防止未经授权的访问。 此外,NC65还允许不同系统间的资源共享。用户只需一次登录即可访问各种内部和外部应用程序,无需重复登录。这大大提高了工作效率和用户体验。 总而言之,NC65作为单点登录解决方案,通过集中管理用户凭证、提供安全性保障、提供单点注销功能和实现资源共享等功能,为用户提供了方便快捷的登录体验,同时降低了安全风险和提高了工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值