SAP账号二次登陆验证Token实现思路

Token,二次登录验证,即登录到系统时除了输入正确的用户名和密码之外还需要输入服务器临时生成的一个密钥(验证码),所输入的验证码和服务器记录的验证码一致时才能正式登入系统,以达到安全登录的目的。

SAP账号二次登陆验证Token实现思路

通常,对于安全性要求比较高的系统一般都是有二次登陆验证的需求和功能了,例如Google邮箱、阿里云等都做了二次登陆验证。也有一些专门的APP可以绑定服务端后负责生成token,比较知名的有RSA Token、华为Token等。

考虑到SAP系统的某些账号权限较大,由于几个人共同使用,虽然经常更换密码和查看审计日志,但还是不放心,于是思索是否能给SAP账号的登录也做个二次登陆验证。应该有其他更为完美的解决方案,但目前我们没有这方面的预算,也只是针对某几个账号需要做这类的管理,不想搞太大动静,因此考虑自行增强系统。

基本的实现思路是增强用户登录过程,然后调用API给用户发邮件、发短信或者发微信告知验证码,如果输入的验证码和系统记载的一样则继续登入过程,否则退出系统。

SAP账号二次登陆验证Token实现思路

用户登入过程的增强,主要在EXIT_SAPLSUSF_001中完成,可参考文章《ABAP获取登陆用户信息(SAP登录增强)》。当用户输入用户名和密码回车之后,在增强逻辑中生成验证码并立刻发邮件给用户,用户将邮件中的验证码输入系统内,验证通过则登入。

SAP账号二次登陆验证Token实现思路
SAP账号二次登陆验证Token实现思路

但是,登入页面上的弹窗有个问题,就是左上角的菜单中可以允许新建会话,从而跳过验证码检查。Google了一通,发现这个菜单似乎无法掩藏,于是想到了之前做过的一个审计优化工作,参考文章《统计SAP所有tcode使用日志的思路》。对,没错!就是在对用户输入的所有代码做审查的代码中增加登录验证的逻辑,不符合登录验证的不允许做任何操作。

SAP账号二次登陆验证Token实现思路

这项优化工作使用到的主要使用到以下几个FM和“SAP内存”的语法:

TH_DELETE_MODE,退出SAP系统

POPUP_TO_GET_ONE_VALUE,弹窗获取一个值

QF05_RANDOM_INTEGER,生成指定范围的随机数(注意范围的上下限别弄反咯)

CL_GUI_FRONTEND_SERVICES,一个关于SAP GUI的类、有各种方法和有用的属性

关于二次登录,我认为是有必要推广使用的,近期多次看到有几十万粉丝的YouTuber说自己账号被Hacked,造成了无法挽回的损失和影响。对于企业的系统,尤其如此,很多公司建有WIFI且密码八百年不更换、WIFI和主干网络之间没有隔离,很多员工的密码非常容易穷举,一旦获取到某些账号之后在内部系统之间游走如入无人之境……

信息安全在全面信息化的今天,是至关重要的一件事情,每个人每一天每个环节都应该足够的重视。快看看你的电脑和手机吧,如果觉得不安全可以重装系统,使用正版软件和杀毒软件,不安装任何一个多余的软件,禁用照片、短信、行动轨迹上传功能……总之,建议对手机、电脑以及联网的智能设备做一次全面的检查,不行就备份资料后重装系统!

推荐使用的杀毒软件包括卡巴斯基和ESET,我之前用的是ESET,但ESET太安静了让人感觉它是不是被黑了,于是现在换了卡巴斯基,虽然有轻微的卡顿,但可以接受。

SAP账号二次登陆验证Token实现思路

如若转载,请注明出处:https://www.gavindong.com/7083.html

微信沟通
自2021年2月16日开始,全站文章免费阅读。