《HAP框架-SSO入门手册-精品文档资料整理.docx》由会员分享,可在线阅读,更多相关《HAP框架-SSO入门手册-精品文档资料整理.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Doc Ref: Error! Reference source not found.Error! Reference source not found.2016-07-24,SSO入门手册Author:ChenxinkaiCreation Date:2016-07-21Last Updated:2016-07-24Document Ref:Hap框架sso单点登录使用Version:1.0Note: Title, Subject, Last Updated Date, Reference Number, andVersion are marked by a Word Bookmark so
2、that they can be easily reproduced in the header and footer of documents. When you change any of these values, be careful not to accidentally delete the bookmark. You can make bookmarks visible by selecting Tools-OptionsView and checking the Bookmarks option in the Show region.1. To add additional a
3、pproval lines, press Tab from the last cell in the table above.Note: You can delete any elements of this cover page that you do not need for your document. For example, Copy Number is only required if this is a controlled document and you need to track each copy that you distribute.文档控制更改记录3日期作者版本更改
4、参考2016-07-211.0无前版本内容目录Error! No text of specified style in document.11 of 13SSO入门手册File Ref: Hap框架sso单点登录B131fd14fd703aa197092221d6882aa7.docx (v. 1 )CompanyConfidential - For internal use only文档控制ii1.文档说明21.1.适用框架及前端技术21.1.1.适用框架22.Hap框架sso单点登录使用32.1.Sso单点登录概念32.1.1.什么是sso?32.1.2.实现机制32.2.Sso单点登录h
5、ap和hand-具体实现42.2.1.注册账号42.2.2.keytool常用命令42.2.3.修改 applicationContext-security.xml52.2.4.修改 config.properties62.2.5.生成证书62.3.注意事项91.未结与已结问10未结问题10已结问题101. 文档说明在使用本文档操作实现Hap框架SSO单点登录使用前,请先详细了解本章节的内容.1. 本文档介绍了SSO的概念2. 本文主要讲解hap项目和hand-之间单点登录的实现1.1. 适用框架及前端技术1.1.1. 适用框架Hap框架2. HAP框架SSO单点登录使用参考地址:https:
6、/rdc.hand-2.1. Sso单点登录概念本节主要描述SSO的概念,优点,作用.2.1.1. 什么是SSO?SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。2.1.2. 实现机制当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据Ticket;用户再访问别的应用的时候就会将这个
7、ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。要实现SSO,需要以下主要的功能:系统共享统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行校验,判断其有效性。信息识别要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进
8、行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。另外:1、单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,事实上,只要统一认证系统,统一ticket的产生和校验,无论用户信息存储在什么地方,都能实现单点登录。2、统一的认证系统并不是说只有单个的认证服务器当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统2的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍
9、然能够完成SSO的功能。2.2. SSO单点登录HAP和hand-具体实现2.2.1. 注册账号使用管理员在Hap下面注册一个用户,赋上对应角色,用户名对应自己工号,密码随意.2.2.2. keytool常用命令-genkey 在用户主目录中创建一个默认文 件.keystore,还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书,(默认情况下,keystore会存在用户系统默认 目录,如:win系统,会生成在C:Documents and Settings用户名文件名为“.keystore”)-alias 产生别名(default:mykey,每个keystore都关联这一个
10、独一无二的alias,不区分大小写)-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)-keyalg 指定密钥的算法 (如RSA、DSA,default:DSA)-validity 指定创建的证书有效期多少天(default:90)-keysize 指定密钥长度(default:1024,范围:512 1024)-storepass 指定密钥库的密码(获取keystore信息所需的密码)-keypass 指定别名条目的密码(私钥的密码)-dname 指定证书拥有者信息例如: CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份
11、名称,C=单位的两字母国家代码-list 显示密钥库中的证书信息keytool -list -v -keystore 指定keystore -storepass 密码 -v 显示密钥库中的证书详细信息-export 将别名指定的证书导出到文件keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码-delete 删除密钥库中某条目keytool -delete -alias 指定需删除的keystore别名 -keystore 指定keystore -storepass 密码-p
12、rintcert 查看导出的证书信息keytool -printcert -file yushan.crt-keypasswd 修改密钥库中指定条目口令keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore sage-storepasswd 修改keystore口令keytool -storepasswd -keystore e:yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)-im
13、port 将已签名数字证书导入密钥库keytool -import -alias 别名 -keystore指定keystore -file需导入的证书2.2.3. 修改 applicationContext-security.xml该步骤主要是放出sso单点登录的配置文件,登录方式采用sso形式.让我们看看casSecurity的详细配置Spring Security文档上说sendRebew是敏感的设置,如果设置成true表示敏感,意思就是说,就算客服端已经存在票据,也要到cas server重新登录。细心的观众可能发现我们的casSecurity.xml文件中并没有配置/login.htm
14、l界面的权限,原因是他已经交给hand-认证了.entry-point-ref=casEntryPoint是对入口点的配置.其中红色方框对应的是config.properties文件中的配置2.2.4. 修改 config.properties将其中的CAS部分根据实际情况修改:#CAS#本系统地址,后面的/login/cas必须有cas.service=http:/localhost:8080/hap/login/cas#cas服务器登录地址cas.ssoserver.loginurl=https:/login.hand-#sso服务器地址cas.ssoserver.url=https:/l
15、ogin.hand-#SSO服务器退出地址,后面的http:/localhost:8080/hap,根据据实际情况修改cas.ssoserver.logouturl=https:/login.hand-2.2.5. 生成证书接下来要导入CAS服务器的https密钥,以login.hand-为例 在core子项目下执行mvn exec:java -Dexec.mainClass=com.hand.hap.security.InstallCert -Dexec.args=login.hand-:443输入1表示生成证书上述步骤会引用hap/security/InstallCert.java文件生成
16、一个名为jssecacerts文件 接下来我们要利用上面的证书来提取密匙keytool -exportcert -alias login.hand-1 -keystore jssecacerts -storepass changeit -file hand-.cer 导入密匙keytool -importcert -alias login.hand- -keystore jssecacerts -storepass changeit -file login.hand-.cer 将 jssecacerts 拷贝 到 $ORACLE_HOME/jre/lib/security上述路径根据Tomcat实际部署的路径来进行处理完成后删除几个生成的文件(core目录下)完成上面步骤后,重新编译项目,可以进行测试。2.3. 注意事项提取密匙时,报上述错误可能是系统不识别exportcert指令,请换电脑重试.1. 未结与已结问未结问题序号问题解决方案负责人目标日期实际日期已结问题序号问题解决方案负责人目标日期实际日期