logo资料库

NC6单点登录方案.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
NC60单点登录方案说明文档
简述
单点登录方案详述
注册用户登录信息
登录NC系统
单点登录配置文件详述
注册信息的超时设置
注册时的验证处理
nc.sso.bs.AbstractSSOAuthenticator
NC60 单点登录方案说明文档 NC 基础技术部 李充蒲 简述 NC60 的单点登录方案和 NC5x 的单点登录方案比较相近,但是其注册和登录的 url 格式 有所变化,并且增加了一些功能,例如可以定义在注册用户信息的身份认证,可以由 NC 系统 生成 ssoKey 等等 注册用户信息的 URL 基本格式为: http://host:port/ service/ssoRegServlet? ssoKey =key&userCode=usercode 单点登录 NC 系统的 URL 基本格式为: http://host:port/login.jsp? ssoKey =key 单点登录配置文件路径为: ${NCHOME}\ierp\sf\ssoConfig.xml 单点登录方案详述 想要单点登录到 NC,首先需要在服务器端向 NC 服务器注册将要登录的用户的信息以 及其他一些需要的信息,这些信息将被保存在 NC 服务器上,通过 ssoKey 进行关联映射。 在完成注册信息后,客户端在登录时需要提供 ssoKey,通过该值获得登录用户的相关信 息,进入 NC 系统。 如下图所示:
注册用户登录信息 NC 系统提供了一个 Servlet 来注册用户登录信息。访问该 servlet 的 URL 格式基本为: http://host:port/service/ssoRegServlet,其后面可以跟随多个参数,如下所示: 1. 2. userCode: 指定用户编码,该参数必须提供,不能省略。 ssoKey: 指定映射登录信息的键值,并在登录时需要提供该值。该值要求唯一, 如果在注册时没有提供该值,NC 系统会自动生成一个 ssoKey 的值,并在返回的 Servlet 流中输出该值 3. busiCenter:指定用户所属的账套编码,该值可以忽略。如果忽略该值,并且在多 个账套中都存在 userCode 用户,那么会让终端用户选择账套。 groupCode:指定登录的集团编码,该值可以忽略。 langCode:指定登录的语种,该值可以忽略,默认为中文 4. 5. 示例: http://host:port/ service/ssoRegServlet? ssoKey =123459483230949&userCode=zhangsan 这个 URL 表示将以用户 zhangsan 的身份登录,注册信息的键值为 123459483230949。 登录 NC 系统 在完成了用户登录信息的注册后,客户端就可以以注册的 ssoKey 值来登录 NC 系统了, 登录 NC 系统的 ssoKey 值以 URL 参数的形式提供,如下所示: http://host:port/login.jsp? ssoKey =keyvalue。 对于前面的示例 http://host:port/ service/ssoRegServlet? ssoKey =123459483230949&userCode=zhangsan 登录时的 URL 为 http://host:port/login.jsp? ssoKey =123459483230949
单点登录配置文件详述 单点登录的配置文件路径为${NCHOME}\ierp\sf\ssoConfig.xml 该文件默认的内容如下: 200 127.0.0.1 *.*.*.* 在这个配置文件中主要可以配置两个信息 1 注册信息的超时设置 2 注册时的验证处理类 注册信息的超时设置 当用户注册完用户的登录信息后,在还没有进行登录之前,注册的登录信息将保存在 NC 系统中。在用户开始登录 NC 时,该注册信息才会从 NC 系统中被清除。 如果由于某种原因,用户没有触发登录操作,那么注册信息将在超时后,被系统自动清 除掉,这个超时的时间值的配置是在配置文件中的标签项配置的,单位为秒。 默认值为 200 秒。 如果用户是在超时以后才登录 NC,那么登录将会失败,会提示找不到注册信息。 注册时的验证处理 由于只要向 NC 系统中注册了用户的登录信息,就可以单点登录到 NC。所以从安全考 虑,需要再注册用户的登录信息时进行权限验证。 单点登录注册时采用的验证类的配置是在配置文件中的< authenticator >标签项配置的。 通过 classname 属性指定验证类的类名,该类必须实现 nc.sso.bs.ISSOAuthenticator 接口。 public interface ISSOAuthenticator { public void authenticate(HttpServletRequest request) throws Exception; }
默认的验证类为 nc.sso.bs.DefaultSSOAuthenticator,该验证类将检查注册的 URL 的来源主机 的 ip 地址是否在其所配置的合法 ip 地址的范围内,如果是,则允许注册,否则,将拒绝注 册。 如果希望提供更加安全的验证处理,可以通过实现 nc.sso.bs.ISSOAuthenticato 接口并注 册在配置文件中即可 nc.sso.bs.AbstractSSOAuthenticator AbstractSSOAuthenticator 类是一个实现了 ISSOAuthenticato 接口的抽象类,他提供了获取参 数的方法 String getValue(String key)和 String[] getValues(String key)这些参数是在配置文件中 进行配置的。所以在实现注册时的验证处理类时,如果需要能拥有获取配置文件中参数的功 能,可以直接继承 AbstractSSOAuthenticator 类。 参数的配置提供两种标签: 1. 字符串参数的配置标签 这类参数值可以通过 String getValue(String key)方法获取 2. 字符串数组参数的配置标签 value1 value2 value3 这类参数值可以通过 String[] getValues(String key)方法获取
分享到:
收藏