NC系统身份认证方式实现说明文档

NC系统身份认证方式实现说明文档
概述:
NC系统是应用于高端企业集团ERP应用的产品,其地位决定了其系统安全性的重要,包括登录身份的认证和各种数据的安全。NC系统对数据的安全性的处理不在本文描述,本文主要阐述系统登录的身份认证的安全性及认证方式的实现。
NC系统默认的身份认证方式是基于静态密码的认证方式。目前,在身份认证领域,也有许多厂家能提供更为安全可靠的认证方式,如CA认证,动态密码认证。为了提高NC系统本身在登录认证方面的安全性,NC系统提供了一套用于集成第三方认证方式的接口,能够方便地将更为安全的身份认证方式集成到NC系统中,进而加强NC系统在登录时身份认证的安全性。
NC系统身份认证实现说明
NC系统的身份认证集成接口主要包含:
后台的认证接口:nc.bs.sm.identityverify.IAMode
前台的预处理接口:nc.bs.sm.identityverify.IloginPretreatment
前台的认证结果消息接口:nc.bs.sm.identityverify.IloginResultMessage
一般实现某种身份认证方式即实现上述接口。
一.后台的认证接口是实现一个身份认证方式必须要实现的一个接口,不过在实际的代码中,一般都是继承nc.bs.sm.identityverify.AbstractIAMode抽象类,它实现了nc.bs.sm.identityverify.IAMode接口。程序员需要实现verify方法,在该方法中进行用户的身份认证。
int verify(nc.vo.sm.login.LoginSessBean lsb, nc.vo.sm.UserVO userVO);
参数:
    LoginSessBean lsb 主要存储登录用户的一些信息,如用户编码,用户密码,或其他一些信息(可以有LoginSessBean.put()方法和()方法存取)。
    UserVO userVO 利用lsb中的公司信息和用户编码信息在数据库中查到的nc用户对象,
包含了身份认证系统nc用户的信息。
返回值 int 表示身份认证的结果,如果身份认证成功,请返回nc.vo.sm.login.ILoginResult.LOGIN_LEGALIDENTITY。如果不合法,返回其他自定义的int值,但是自定义的返回值必须大于200 (小于200的返回值分配给系统自己使用)
nc.bs.sm.identityverify.AbstractIAMode类有一个方法是Object getParameter(String key),它的是返回定义在配置文件中的参数,关于配置文件,后面将有描述。
二.前台的预处理接口是在前台运行的,它提供了在调用后台认证功能之前进行一些预处理操作的机会。例如一般在实现某种CA认证方式时,需要从usbkey中读取用户信息,以及对挑战码进行签名的操作等等,并将这些挑战码传输到后台,供身份认证使用,此时即可实现该接口。该接口定义了一个方法
void pretreatment(LoginSessBean lsb) throws Exception,在该方法中进行上述的操作,一些需要传输到后台的信息利用lsb传递,例如用户编码,需要利用lsb.setUserCode方式设置。对于其他用于外系统进行认证的数据,如挑战码,应该使用lsb.put方法设置到lsb中,供后台
调用
void pretreatment(nc.vo.sm.login.LoginSessBean lsb) throws Exception
参数:LoginSessBean lsb 这里的lsb主要用来存储一些后台认证需要的数据,可以使用lsb的相关方法进行设置,这个lsb对象将传递给后台的认证方法verify(nc.vo.sm.login.LoginSessBean lsb, nc.vo.sm.UserVO userVO);中的参数lsb
异常:出现一些需要终止操作的异常,可以抛出
如果认证方式中不需要前台的预处理过程,可以不实现该接口。
三.前台的认证结果消息接口nc.bs.sm.identityverify.IloginResultMessage的作用主要在于,在我们的认证方法中返回的是int型数据,不能直接反馈给用户,故利用此接口进行认证结果的映射,将int型的认证结果翻译为用户能够理解的文字信息,这些文字信息将提示用户认证失败的原因。该接口方法定义如下:
String getResultMessage(int intResult);
参数: int  intResult  该值由后台认证接口方法返回,
返回值  String  返回给用户的对应intResult的提示文字
四.对于代码开发来说,实现上面的接口后,就完成了开发工作。紧接着就是需要进行一些配置工作,即可在NC系统中使用新的身份认证方式。
对于nc3x的版本
配置文件为./ierp/l,它的一般格式为:(例子)
<?xml version="1.0" encoding='gb2312'?>
        <root ClassType="nc.vo.sm.identityverify.IAConfigFileVO" docType="(Java lang)Middleware depoly parameter">
<Configs>
    <IdentityVerifyClassName>nc.bs.uap.ca.CAMode</IdentityVerifyClassName>
    <IdentityVerifyName>CA认证</IdentityVerifyName>
    <IdentityVerifyCode>ncca</IdentityVerifyCode>
    <Parameters>
        <Key>userIDMode</Key>
        <Value>usercode</Value>
    </Parameters>
    <Used>true</Used>                <LoginPretreatmentClassName>nc.ui.uap.ca.CALoginPretreatment</LoginPretreatmentClassName>
    <LoginResultClassName>nc.ui.uap.ca.CALoginResult</LoginResultClassName>
</Configs>
</root>
对于nc5x的版本
配置文件为./ierp/l,它的一般格式为:(例子)
<?xml version="1.0" encoding='gb2312'?>
        <root ClassType="nc.vo.sm.identityverify.IAConfigFileVO" docType="(Java lang)Middleware depoly parameter">
    <SysDefIACode>staticpwd</SysDefIACode>
<Configs>
    <IdentityVerifyClassName>nc.bs.uap.ca.CAMode</IdentityVerifyClassName>
    <IdentityVerifyName>CA认证</IdentityVerifyName>
    <IdentityVerifyCode>ncca</IdentityVerifyCode>
    <Parameters>
        <Key>userIDMode</Key>
        <Value>usercode</Value>
    </Parameters>
    <Enable>true</Enable>
    <LoginPretreatmentClassName>nc.ui.uap.ca.CALoginPretreatment</LoginPretreatmentClassName>
    <LoginResultClassName>nc.ui.uap.ca.CALoginResult</LoginResultClassName>
</Configs>
    </root>
对于<Parameters>,如果程序中不需要额外的参数配置,可以不需要配置
对于<LoginPretreatmentClassName>,如果认证方式中不需要前台的预处理过程,也可以不配置该项
对于<LoginResultClassName>,如果没有额外的信息返回,也可以不配置该项
附录:
NC系统登录身份认证相关包及类
nc.bs.sm.identityverify
    |——AbstractIAMode    #身份认证方式抽象类,一般实现某种认证方式都要实现该类
|——IAConfigFileTool    #读写身份认证配置文件的工具类
|——IAConfSetupDlg    #和IASetupFrame类一起配置身份认证配置文件
|——IAMode            #身份认证方式接口类,由AbstractIAMode实现
|——IAModeFactory    #在系统运行时根据身份认证配置文件构造一个认证方式对象
|——IASetupFrame    #配置身份认证配置文件的工具
|——IASetupPanel        #配置身份认证配置文件
|——StaticPasswordIAMode    #系统默认的静态密码认证方式类,它实现了AbstractIAMode
nc.ui.sm.identityverify
|——DefaultLoginPretreatment    #默认的登录预处理类
|——IloginPretreatment    #登录预处理接口类。凡在登录前需要做的工作可实现该类来完成
|——>IloginResultMessage #登录返回信息类。根据返回的int值得到string值。
nc.vo.sm.identityverify
|——IAConfigFileVO    #对应于身份认证方式配置文件的vo类
|——IAConfVO    #对应于一种身份认证方式的vo类
|——IAContext    #身份认证上下文类,可以通过该类获取身份认证方式需要的参数
|——IAParameterVO #对应于身份认证方式的参数vo类
nc.vo.sm.login.LoginSessBean的相关方法:
方法名称
方法描述
get(String)
获取通过put方法设置的属性值
put(String, Object)
设置key-value属性值对
getPk_crop()
获取公司主键值
setPk_corp(String)
设置公司主键值
getUserCode()
获取用户编码
setUserCode(String)
设置用户编码
getPassword()
获取用户密码
setPassword(String)
设置用户密码

本文发布于:2024-09-22 12:53:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/373437.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:认证   身份   方式   系统   用户   需要   实现
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议