多元化认证方式二开实践
一、业务场景
客户配置开启了AD域或LDAP认证方式,但经常一些用户需要走EAS的账号密码认证,比如超级管理员,内置用户或其它一些用户等,甚至有些客户还有更复杂的一个多认证场景需求。常用的场景如下图所示:
二、实践思路
标准产品可以配置开启使用某个认证,基于此可以在获取到认证处理器后可扩展开发:根据待认证的用户再次路由选择最终认证处理器,客户可以根据实际的业务场景需求,实现这个路由策略,具体业务方案如下。
三、详细设计
此方案的主要设计部分就是二次路由选择扩展,第一次认证路由选择是标准产品中配置开启使用哪个认证。此二开方案第二次路由则有客户定制化开发。此方案适用所有认证方式二次路由策略二次开发。
四、代码样例
(1)这里需要修改标准代码最核心的部分就是修改getAuthHandler, 在getAuthHandler 增加二次路由认证选择扩展,在代码部分就增加一个getUseHandler方法,根据当前配置的handler和当前需要认证的用户来确定最终需要使用的认证handler,具体修改如下图所示:
注意:这里针对不同的handler需要做instanceof判断 ,确保只影响需要做二次路由认证处理器,避免影响所有的handler,比如影响ltaptoken认证等。
和标准代码对比如下,右边是二开修改后
(2)方案中的二次路由认证选择在这里实际就是在对应的认证Handler中增加getUseHandler方法,getUseHandler方法实现客户可以按照实际客户的实际进行实现。以下就是实现了某些例外用户路由到baseDB认证。
五、注意事项
无
六、补丁影响
(1)一般二开部署私包和标准包代码存在冲突(优先加载私包),如果私包不是基于当前环境补丁包代码二开的,则可能会存在问题。
(2)本实践方二开代码涉及的BOS_SSO领域,如果需要安装【单点登录】的补丁,则需要安装补丁前检查补丁代码是否存在改动,如果有改动,则需要基于本补丁的代码类来升级私包。
多元化认证方式二开实践
本文2024-09-22 20:37:14发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-114813.html