## 模拟windows环境调试
as_server.exe是模拟单点登录文档说明中的产生随机数和验证票据两个接口。
双击程序,在10318端口启动http监听模拟服务。
【注】当测试验证票据结果xml中用户标识rmsid为定制格式时,模拟程序启动方式
打开cmd命令行工具,执行as_server.exe -ticketFlag=false
## 模拟linux64位服务器调试
上传文件as_server 到测试服务器,需要执行以下两步运行:
root用户执行命令
1)chmod +x as_server
2)./as_server
执行运行后,在10318端口启动http监听模拟服务。
1 产生随机数(本机IP必须为实际地址,不能为127.0.0.1,应用调用者应支持该IP可配置,实际部署环境该IP为身份认证服务器的IP地址)
服务url: http://本机IP:10318/GeneratorChallenge
通过 发送 POST 请求获取响应结果中的随机数
2 验证票据(注意url与文档身份认证服务应用单点登录接口中保持一致)
服务url: http://本机IP:10318/VerifyIdentityTicket
发送POST 请求数据
服务端调用模拟接口产生的随机数
终端浏览器websocet获取的票据xml tokeninfo元素内容
app server id,支持可配置的一个参数
返回模拟数据后,解析获取rmsid用户标识,与应用系统中保存的用户属性进行匹配,查找出当前用户。
返回固定的模拟数据
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHZlcmlmeWlkZW50aXR5dGlja2V0cmVzdWx0IHZlcnNpb249IjEiPgoJPHJlc3VsdD4wPC9yZXN1bHQ+Cgk8Y2hhbGxlbmdlPlIxPC9jaGFsbGVuZ2U+Cgk8ZXJyb3I+PC9lcnJvcj4KCTx1c2VyaW5mbz4KCQk8cm1zaWQ+NTlhNTAwNWUtMzIwYy00ZDQzLThjODAtNWI1ZGJmN2FmMzc1PC9ybXNpZD4KCQk8bmFtZT48L25hbWU+CgkJPGNlcnQ+PC9jZXJ0PgoJCTxjZXJ0aW5mbz48L2NlcnRpbmZvPgoJCTxhZGRyZXNzPjwvYWRkcmVzcz4KCQk8YXBwYWNjb3VudD48L2FwcGFjY291bnQ+Cgk8L3VzZXJpbmZvPgoJPGFzaW5mbz4KCQk8bmFtZT48L25hbWU+CgkJPGNlcnQ+aXNzdWVyIGNlcnQ8L2NlcnQ+CgkJPGNlcnRpbmZvPjwvY2VydGluZm8+CgkJPGFkZHJlc3M+PC9hZGRyZXNzPgoJPC9hc2luZm8+Cgk8dGltZT4yMDE4LTAzLTA4IDA5OjQ1OjI4PC90aW1lPgoJPHNpZ25hdHVyZSBvaWQ9IjEuMi4xNTYuMTk3LjEuMTAwMC4xMSIgZGVzYz0iWFpNUyIvPgo8L3ZlcmlmeWlkZW50aXR5dGlja2V0cmVzdWx0Pg==
dGlja2V0IHNpZ24gZGF0YQ==
== 解析过程==
1)先对响应数据进行签名验证(该步可暂时跳过)
验证过程:
signature 元素内容解base64编码后,得到签名值的byte数组内容;
result元素内容解base64编码后,得到原文值的byte数组内容;
调用CipherAPI提供的验签接口,将签名值byte数组,原文值byte数组,AS服务的签名证书解析后的公钥值作为接口参数,调用后判断是否验证成功。
验证成功后再进行下一步解析,验证失败提示用户登录失败,票据签名未验证通过。
2)对result元素内容解base64得到原文数据,另一个xml格式
0
R1
59a5005e-320c-4d43-8c80-5b5dbf7af375
issuer cert
解析userinfo下的rmsid元素值,【59a5005e-320c-4d43-8c80-5b5dbf7af375】为用户同步模拟工具推送的【测试人员1】用户标识。
在判断该用户已经在应用系统中存在时,允许用户登录应用系统,完成单点登录。