CN116506187A - 一种基于编排的自定义认证相关流程方法 - Google Patents

一种基于编排的自定义认证相关流程方法 Download PDF

Info

Publication number
CN116506187A
CN116506187A CN202310481489.8A CN202310481489A CN116506187A CN 116506187 A CN116506187 A CN 116506187A CN 202310481489 A CN202310481489 A CN 202310481489A CN 116506187 A CN116506187 A CN 116506187A
Authority
CN
China
Prior art keywords
node
login
nodes
user
authentication
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310481489.8A
Other languages
English (en)
Inventor
谢扬
朱迪卿
高飞虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Steam Memory Technology Co ltd
Original Assignee
Beijing Steam Memory Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Steam Memory Technology Co ltd filed Critical Beijing Steam Memory Technology Co ltd
Priority to CN202310481489.8A priority Critical patent/CN116506187A/zh
Publication of CN116506187A publication Critical patent/CN116506187A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种基于编排的自定义认证相关流程方法,包括:抽象登录认证过程中的执行步骤以及配置项,并封装为节点,形成节点库;约定不同节点之间的相对顺序和绝对顺序;根据自身不同的业务场景,从节点库中可重复地选取需要的节点,并自定义编排各节点的相对顺序,持久化为所有应用可复用的编排模板实例,存储在后端。本发明的有益效果为:基于可编排、模板化的认证流程控制,可以根据业务需要更改认证过程中各个步骤的相对顺序和出现次数,实现根据自身场景来动态调整认证相关流程,从而降低定制化开发成本,加强身份安全管理,拓宽业务覆盖场景。

Description

一种基于编排的自定义认证相关流程方法
技术领域
本发明涉及网络技术领域,特别是指一种基于编排的自定义认证相关流程方法。
背景技术
使用SaaS系统时,身份认证是不可缺少的环节。登录认证过程中往往会包含补全用户详细信息、使用手机验证码进行二次身份认证、密码重置等附加流程。对于一般网站来说流程中各个功能的相对顺序是固定的,可满足现阶段的业务需求。而当业务场景发生变化,认证相关流程往往需要重新设定,此类定制化开发必须通过修改代码来实现。具体体现在需要进入“发起需求->需求分析->需求评审->系统设计->代码开发->测试->发布”等一系列流程,成本较高,周期较长。当业务变化频繁时,也无法根据实际业务实时动态调整用户旅程。在SaaS系统中的不同应用之间,某些流程上的修改,往往无法通用,必须逐个应用进行代码的修改与测试,增加了研发和交付成本。
发明内容
本发明提出一种基于编排的自定义认证相关流程方法,解决了现有技术中上述的问题。
本发明的技术方案是这样实现的:
一种基于编排的自定义认证相关流程方法,包括以下步骤:
步骤S1,抽象登录认证过程中的执行步骤以及配置项,并封装为节点,形成节点库;
步骤S2,约定不同节点之间的相对顺序和绝对顺序;
步骤S3,根据自身不同的业务场景,从节点库中可重复地选取需要的节点,并自定义编排各节点的相对顺序,持久化为所有应用可复用的编排模板实例,存储在后端。
进一步地,所述的基于编排的自定义认证相关流程方法,节点包括:功能性节点和非功能性节点。
进一步地,所述的基于编排的自定义认证相关流程方法,功能性节点包括:参数配置节点和作业执行节点;
参数配置节点包括但不限于:应用基础认证信息配置节点,应用登录方式配置节点,应用安全规则配置节点,多因素认证方式配置节点,OIDC签发Token配置节点,OIDC签发Access Token配置节点,OIDC签发ID Token配置节点和OIDC签发授权码配置节点;
应用基础认证信息配置节点,其功能是:配置应用的基础认证信息和协议相关信息;
应用登录方式配置节点,其功能是:配置应用的登录方式;
应用安全规则配置节点,其功能是:配置应用的登录注册相关安全策略;
多因素认证方式配置节点,其功能是:配置应用级别的多因素认证方式;
OIDC签发Token配置节点,其功能是:配置OIDC应用的授权响应中Refresh Token的过期时间、配置与终端用户信息相关的自定义OIDC Claim和用于请求对应Claim的自定义OIDC Scope;
OIDC签发Access Token配置节点,其功能是:配置OIDC应用的授权响应中AccessToken的过期时间;
OIDC签发ID Token配置节点,其功能是:配置OIDC应用的授权响应中ID Token的签名算法;
OIDC签发授权码配置节点,其功能是:配置OIDC应用的授权响应中授权码的过期时间;
作业执行节点包括但不限于:注册类节点、登录类节点和二次认证节点;
注册类节点包括但不限于:常规注册节点;
常规注册节点用于常规方式的注册场景,根据灵活性需求,常规注册节点包括但不限于:注册配置节点、检查密码节点、检查验证码节点、注册凭证校验节点、注册安全策略校验节点、注册白名单校验节点、检查账号状态节点、创建用户节点和发送欢迎邮件节点;
登录类节点包括但不限于:常规登录节点,身份源登录节点,扫码登录节点、推送登录节点和生物认证登录节点;
登录类节点用于首次认证的业务场景;
登录类节点,其功能是:用于匹配到系统已有账号,完成用户匹配,获取终端用户;
常规登录节点用于常规方式的登录场景,根据灵活性需求,常规登录节点包括但不限于:匹配身份源节点、检查登录目标应用节点、校验登录回调地址节点、登录凭证校验节点、检查登录权限节点、检查账号状态节点和签发Token节点;
身份源登录节点,其功能是:获取第三方身份源中的用户信息授权后登录到当前应用;
扫码登录节点,其功能是:从应用登录页面扫描二维码,后端更新二维码状态并完成登录;前端轮询二维码状态,直到二维码过期或应用端完成扫码登录;
推送登录节点用于网页端应用支持推送登录的业务场景;登录前网页端应用需支持推送登录功能,即发起推送登录前,需完成设备绑定;网页端应用获取到推送码之后,轮询推送码状态,直到推送码过期或移动端确认或取消推送登录;网页端发送推送,在移动端会收到“您刚才是否尝试过登录”的推送;移动端确认后,可以登录网页端;
生物认证登录节点,用于使用指纹识别登录和人脸识别登录的业务场景;
二次认证节点用于首次认证后针对用户进行二次认证、更新或补充认证相关用户信息的业务场景;
二次认证类节点包括但不限于:身份绑定节点、信息补全节点、重置密码节点、账号自助解锁节点和多因素认证节点;
身份绑定节点,其功能是:联邦认证场景下,选用第三方身份源登录SaaS应用,需要通过身份绑定的方式,使用外部身份换取系统平台内的用户;身份绑定方式包括但不限于:使用常规方式绑定到已有账号、使用常规方式新注册账号后绑定和使用身份源中的外部用户信息注册账号后绑定;
信息补全节点,其功能是:登录或注册过程中,匹配到用户后,根据应用的品牌化配置中的登录/注册信息补全字段配置,拉起信息补全页面,允许或跳过补充对应的用户字段,完成登录或注册;
重置密码节点,其功能是:首次登录过程中,检查到创建用户时配置了需要在首次登录时重置密码;或登录认证过程中,当前用户已开启密码校验,根据当前用户的密码策略检测到密码不符合强度校验,需要重置密码;或登录过程中密码过期,需要强制重置密码;
账号自助解锁节点,其功能是:登录过程中,匹配到用户后,检查得知用户的账户处于“已停用”或“禁用”状态,并检查得到用户具备自助解锁的条件(当前账户已绑定手机或邮箱),则用户可以通过手机或邮箱验证码模式更新账户的状态为“正常”;
多因素认证节点,其功能是:登录过程中,匹配到用户后,根据应用安全管理配置,选择一种方式执行应用级别的多因素认证;通过个人中心绑定的用户,则执行个人账户级别的多因素认证,不受应用级别的开关控制。
进一步地,所述的基于编排的自定义认证相关流程方法,非功能性节点负责流程控制,包括但不限于:分支流转节点、逻辑控制节点、用户交互节点和信息提示节点;
分支流转节点用于管理工作流中的分支,包括但不限于:条件分支节点和并行分支节点;
条件分支节点的功能是:根据条件判断,执行不同分支;该节点不做任何操作。根据分支变量当前的实际值,获取任务列表,目标分支的首个节点任务被调度进入队列,等待作业执行;若分支为空或获取不到对应分支,使用默认分支;
并行分支节点的功能是:开启多个并行分支;并行分支节点根据分支变量的实际值,获取任务列表,所有分支的首个节点任务被调度进入队列,等待作业执行;
逻辑控制节点,用于变更当前工作流的运行状态,包括但不限于:等待节点、循环节点和流程结束节点。
等待节点的功能是:流程一直在运行中状态,直到外部操作触发更新节点状态;等待节点用于等待外部操作;
循环节点的功能是:在一定条件下,循环运行一部分节点流程,需要循环执行的节点放置在循环模块内;当不满足条件时,跳出循环模块;
流程结束节点的功能是:当满足节点内指定条件或出现指定节点输出时提前结束流程;可与条件分支节点配合使用;
用户交互节点的功能是:用于接收用户的输入并传递给流程引擎流程编排服务;
用户交互节点包括但不限于:触发节点、自定义函数节点和自定义表单节点。
触发节点的功能是:接收用户的输入,并根据预定义和/或自定义事件触发指定业务分支;
自定义函数节点的功能是:接收用户的输入,并结合当前工作流的上下文内容和前置节点的输入输出,插入自定义逻辑块,实现指定业务操作;
自定义表单节点的功能是:用于在流程中任意位置、与任意节点结合使用收集额外信息并将其保存到认证上下文,由管理员根据自己的需求定义所需字段,并设置字段属性;用户在完成认证过程中将被要求填写这些字段,以提供额外的信息;
信息提示节点包括但不限于成功提示节点和失败提示节点;
成功提示节点通常在某节点执行成功后显示,用于向用户显示操作成功的消息;
失败提示节点通常在某节点未能执行成功时显示,用于向用户显示失败的消息和可能的原因。
本发明的有益效果为:基于可编排、模板化的认证流程控制,可以根据业务需要更改认证过程中各个步骤的相对顺序和出现次数,实现根据自身场景来动态调整认证相关流程,从而降低定制化开发成本,加强身份安全管理,拓宽业务覆盖场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的流程示意图;
图2为本发明一个实施例的编排模板的形成过程示意图;
图3为本发明一个实施例的编排模板的执行过程示意图;
图4为传统的登录流程示意图;
图5为本发明一个实施例的登录场景的节点编排流程示意图;
图6为本发明一个实施例的登录场景的时序图;
图7为本发明一个实施例的登录场景业务变化后的节点编排流程示意图;
图8为本发明一个实施例的登录场景业务变化后的用户登录流程示意图;
图9为传统的注册流程;
图10为本发明一个实施例的注册场景的节点编排流程示意图;
图11为本发明一个实施例的注册场景的时序图;
图12为本发明一个实施例的注册场景业务变化后的节点编排流程示意图;
图13为本发明一个实施例的注册场景业务变化后的用户注册流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于流程引擎的自定义认证相关流程编排方法,包括:
步骤S1,抽象登录认证过程中的执行步骤以及配置项,并封装为节点,形成节点库;
根据具体业务场景,基于最小粒度,去抽象登录认证过程中的执行步骤以及配置项,在这里每个功能独立的任务被称之为节点。流程中每个独立的任务都由一个微服务实现,流程由一系列需要执行的任务组成;节点对应的每一个任务是最小执行单元。任务执行与流程编排隔离。执行步骤以及配置项抽象的粒度,可以复现认证流程的复杂度和用户场景的完整性。自定义编排,基于最大限度重用微服务,减少定制化开发成本。
节点从执行层面来讲,包括:功能性节点和非功能性节点。
功能性节点从其适应的业务场景来讲,包括:参数配置节点和作业执行节点。
参数配置节点不执行具体逻辑,仅展示与全局、局部执行节点的上下文相关的配置项,展示当前关联应用的与登录认证相关的复杂配置信息;参数配置节点的作用在于更大程度上提高认证编排流的灵活性;开源的配置项越多,流程编排越灵活;配置节点的每个配置项都有可能影响流程的流转方向和结果。
参数配置节点包括但不限于:应用基础认证信息配置节点,应用登录方式配置节点,应用安全规则配置节点,多因素认证方式配置节点,OIDC签发Token配置节点,OIDC签发Access Token配置节点,OIDC签发ID Token配置节点和OIDC签发授权码配置节点。
应用基础认证信息配置节点,其功能是:配置应用的基础认证信息(包括但不限于:认证地址、登录回调地址、登出回调地址和发起登录地址)、协议相关信息(包括但不限于:默认协议,协议授权模式和授权响应相关配置)。
应用登录方式配置节点,其功能是:配置应用的登录方式;
登录方式包括:常规登录(密码模式登录和验证码模式登录)、扫码登录(移动端扫码登录和身份源扫码登录)、身份源登录(社会化身份源登录和企业身份源登录)和无密码登录(移动端扫码登录和推送登录)。
应用安全规则配置节点,其功能是:配置应用的登录注册相关安全策略;
应用的登录注册相关安全策略包括但不限于:基础安全(Cookie过期时间、未验证邮箱登录时是否发送验证邮件和是否支持选择账号)、注册安全(是否开启频繁注册限制、应用是否禁止注册和验证码注册后是否拉起设置密码)、登录安全(人机验证配置和账号锁定配置)、应用验证安全(扫码登录时二维码有效时间、用于换取用户信息的Ticket的有效时间和Web轮询接口是否返回完整用户信息)、多因素认证(即:开启应用级别的多因素认证方式,包括但不限于人脸识别和短信验证)。
多因素认证方式配置节点,其功能是:配置应用级别的多因素认证方式;
应用级别的多因素认证方式包括但不限于:人脸识别、短信验证、电子邮箱验证和OTP口令。
OIDC签发Token配置节点,其功能包括但不限于:配置OIDC应用的授权响应中Refresh Token的过期时间、配置与终端用户信息相关的自定义OIDC Claim和用于请求对应Claim的自定义OIDC Scope。
OIDC签发Access Token配置节点,其功能是:配置OIDC应用的授权响应中AccessToken的过期时间。
OIDC签发ID Token配置节点,其功能是:配置OIDC应用的授权响应中ID Token的签名算法。
OIDC签发授权码配置节点,其功能是:配置OIDC应用的授权响应中授权码的过期时间。
作业执行节点的功能是:封装并执行关键任务;
作业执行节点包括但不限于:注册类节点、登录类节点和二次认证节点。
注册类节点包括但不限于:常规注册节点;
常规注册节点用于常规方式的注册场景,根据灵活性需求,常规注册节点包括但不限于:注册配置节点、检查密码节点、检查验证码节点、注册凭证校验节点、注册安全策略校验节点、注册白名单校验节点、检查账号状态节点、创建用户节点和发送欢迎邮件节点;
常规方式的注册场景包括:用户通过验证码模式(即:“手机号/邮箱+验证码”)和密码模式(即:“手机号/邮箱/用户名+密码”)进行注册的业务场景。
注册配置节点,其功能是:配置允许用户注册及注册方式,用户注册方式包括但不限于用户名+密码、手机号+密码、邮箱+密码、手机号+验证码、邮箱+验证码。
检查密码节点,其功能是:检查密码强度、检查密码安全等级、入库加密、根据默认密码策略自动生成密码。
检查验证码节点,其功能是:检查手机号/邮箱验证码是否匹配且未被使用、是否已过期。
注册凭证校验节点,其功能是:检查注册使用的凭证是否符合校验规则、是否已注册。
注册安全策略校验节点,其功能是:检查是否逾越了频繁注册限制、当前应用是否禁止注册、验证码注册后是否拉起设置密码。
注册白名单校验节点,其功能是:检查是否开启了注册白名单,已开启注册白名单的检查当前注册凭证是否在白名单内。
检查账号状态节点,其功能是:检查注册使用的凭证匹配到的用户是否处于锁定、归档、禁用状态,是否无法正常登录。
创建用户节点,其功能是:检查注册使用的凭证未匹配到已有用户时,根据注册凭证创建用户。
发送欢迎邮件节点,其功能是:用户注册成功之后,如果邮箱已验证,发送欢迎邮件;若邮箱未验证,发送验证邮件。
登录类节点包括但不限于:常规登录节点,身份源登录节点,扫码登录节点、推送登录节点和生物认证登录节点;
登录类节点用于首次认证的业务场景;
登录类节点,其功能是:用于匹配到系统已有账号,完成用户匹配,获取终端用户。
常规登录节点用于常规方式的登录场景,根据灵活性需求,常规登录节点包括但不限于:匹配身份源节点、检查登录目标应用节点、校验登录回调地址节点、登录凭证校验节点、检查登录权限节点、检查账号状态节点和签发Token节点;
常规方式的登录场景是指用户以验证码模式(即:“手机号/邮箱+验证码”)和密码模式(即:“手机号/邮箱/用户名+密码”)方式进行登录的业务场景。
匹配身份源节点,其功能是:检查当前登录应用是否已支持所选身份源;
检查登录目标应用节点,其功能是:检查客户端权限,获取客户端应用;
校验登录回调地址节点,其功能是:检查应用的登录回调地址是否符合应用配置;
登录凭证校验节点,其功能是:根据所选登录凭证匹配用户;
检查登录权限节点,其功能是:检查根据登录方式匹配到的用户是否具备登录当前应用的权限;
检查账号状态节点,其功能是:检查登录使用的凭证匹配到的用户是否处于锁定、归档、禁用等状态,是否无法正常登录;
签发Token节点,其功能是:根据应用的协议配置中的返回类型配置,支持返回Token的,从授权端点返回对应数据项。
身份源登录节点,其功能是:获取第三方身份源(微信、飞书、微博和Github)中的用户信息授权后登录到当前应用。
扫码登录节点,其功能是:从应用登录页面扫描二维码,后端更新二维码状态并完成登录;前端轮询二维码状态,直到二维码过期或应用端完成扫码登录。二维码包含用户的登录态,根据登录态所属方不同,扫码登录可分为三种:
1)登录态在网页端——移动端自建应用扫应用登录页面的二维码后登录;
2)登录态在移动端——移动端扫应用登录页面的二维码,授权网页端自建应用完成登录;
3)登录态在第三方身份源——使用微信移动端扫码,通过微信小程序授权、微信公众号关注的方式登录应用。
推送登录节点用于网页端应用支持推送登录的业务场景;登录前网页端应用需支持推送登录功能,即发起推送登录前,需完成设备绑定;网页端应用获取到推送码之后,轮询推送码状态,直到推送码过期或移动端确认或取消推送登录。网页端发送推送,在移动端会收到“您刚才是否尝试过登录”的推送;移动端确认后,可以登录网页端。
生物认证登录节点,用于使用指纹识别登录和人脸识别登录的业务场景;由于基于移动端的设备认证器,需在完成指纹绑定的设备上使用指纹登录应用;用户绑定指纹后,可以使用指纹完成登录;由于基于移动端的设备认证器,需在完成人脸绑定的设备上使用人脸登录应用;用户绑定人脸后,可以使用人脸完成登录。
二次认证节点用于首次认证后针对用户进行二次认证、更新或补充认证相关用户信息的业务场景;
二次认证类节点包括但不限于:身份绑定节点、信息补全节点、重置密码节点、账号自助解锁节点和多因素认证节点;
身份绑定节点,其功能是:联邦认证场景下,选用第三方身份源登录SaaS应用,需要通过身份绑定的方式,使用外部身份换取系统平台内的用户;身份绑定方式包括但不限于:使用常规方式绑定到已有账号、使用常规方式新注册账号后绑定和使用身份源中的外部用户信息注册账号后绑定。
信息补全节点,其功能是:登录或注册过程中,匹配到用户后,根据应用的品牌化配置中的登录注册信息补全字段配置,拉起信息补全页面,允许或跳过补充对应的用户字段,完成登录或注册。
重置密码节点,其功能是:首次登录过程中,检查到创建用户时配置了需要在首次登录时重置密码;或登录认证过程中,当前用户已开启密码校验,根据当前用户的密码策略检测到密码不符合强度校验,需要重置密码;或登录过程中密码过期,需要强制重置密码。
账号自助解锁节点,其功能是:登录过程中,匹配到用户后,检查得知用户的账户处于“已停用”或“禁用”状态,并检查得到用户具备自助解锁的条件(当前账户已绑定手机或邮箱),则用户可以通过手机或邮箱验证码模式更新账户的状态为“正常”。
多因素认证节点,其功能是:登录过程中,匹配到用户后,根据应用安全管理配置,选择一种方式执行应用级别的多因素认证;通过个人中心绑定的用户,则执行个人账户级别的多因素认证,不受应用级别的开关控制。
非功能性节点负责流程控制,包括但不限于:分支流转节点、逻辑控制节点、用户交互节点和信息提示节点。
分支流转节点用于管理工作流中的分支,包括但不限于:条件分支节点和并行分支节点。
条件分支节点的功能是:根据条件判断,执行不同分支;该节点不做任何操作。根据分支变量当前的实际值,获取任务列表,目标分支的首个节点任务被调度进入队列,等待作业执行;若分支为空或获取不到对应分支,使用默认分支;
条件分支节点适用于互斥的业务逻辑;例如同一个应用可以配置多种登录方式,常规登录节点可以与身份源登录并存,在登录节点会出现两个分支:第一个分支有一个节点,为常规登录节点;第二个分支有两个节点,为身份源登录节点和身份绑定节点;假设现在用户从前端页面登录,选取了邮箱验证码方式登入,则当前流程执行第一个分支,不执行第二个分支。
并行分支节点的功能是:开启多个并行分支;并行分支节点根据分支变量的实际值,获取任务列表,所有分支的首个节点任务被调度进入队列,等待作业执行;
并行分支节点适用于执行顺序和执行次数不影响整体执行结果的业务逻辑;例如配置登录认证旅程,以“初始化登录成功---常规登录”开头,下一步添加并行分支节点:第一个并行分支有两个个节点,依次为多因素认证节点、信息补全节点;第二个并行分支有两个节点,依次为信息补全节点、多因素认证节点;两个并行分支中,相同节点对应的表单不同。
逻辑控制节点,用于变更当前工作流的运行状态,包括但不限于:等待节点、循环节点和流程结束节点。
等待节点的功能是:流程一直在运行中状态,直到外部操作触发更新节点状态;等待节点用于等待外部操作;例如:登录认证旅程中,常规登录节点需要等待用户输入,并校验该登录凭证(密码模式或验证码模式),根据校验结果决定是否执行常规登录。
循环节点的功能是:在一定条件下,循环运行一部分节点流程,需要循环执行的节点放置在循环模块内;当不满足条件时,跳出循环模块。
流程结束节点的功能是:当满足节点内指定条件或出现指定节点输出时提前结束流程;可与条件分支节点配合使用。例如:条件分支中,目标分支的含有重置密码节点,重置成功后,需要提前结束流程,返回登录页面。
用户交互节点的功能是:用于接收用户的输入并传递给流程引擎流程编排服务;
用户交互节点包括但不限于:触发节点、自定义函数节点和自定义表单节点。
触发节点的功能是:接收用户的输入,并根据预定义和/或自定义事件触发指定业务分支;例如:应用同时配置了密码模式和验证码模式的登录方式,需要根据用户输入判断执行密码模式或验证码模式的底层逻辑。
自定义函数节点的功能是:接收用户的输入,并结合当前工作流的上下文内容和前置节点的输入输出,插入自定义逻辑块,实现指定业务操作;例如:在注册前、注册后、认证前、认证后、多因素认证前、多因素认证后等场景下,结合工作流的输入输出以及流程中各节点的输入输出,自定义代码段并执行。
自定义表单节点的功能是:用于在流程中任意位置、与任意节点结合使用收集额外信息并将其保存到认证上下文,由管理员根据自己的需求定义所需字段,并设置字段属性,例如字段类型、是否必填或验证规则等;用户在完成认证过程中将被要求填写这些字段,以提供额外的信息;例如:自定义表单节点可与其他认证节点(例如多因素认证节点)结合使用,管理员可以要求用户提供额外的身份验证信息(例如个人信息、工作背景等),进一步确认用户的身份,提供更加灵活和安全的认证体验。
信息提示节点包括但不限于成功提示节点和失败提示节点;
成功提示节点通常在某节点执行成功后显示,用于向用户显示操作成功的消息;例如:首次认证成功后,向用户显示“您已成功登录”的消息和“认证成功”的标题;
失败提示节点通常在某节点未能执行成功时显示,用于向用户显示失败的消息和可能的原因;例如:首次认证失败后,向用户显示“认证失败”的标题和“登录失败,请检查您的用户名和密码是否正确”的消息。
步骤S2,约定不同节点之间的相对顺序和绝对顺序;
每一类节点根据认证流程的特殊性,存在相对顺序和绝对顺序的约定;
绝对顺序约定是指:依据业务场景定义,某类节点在流程中必须出现在另一类节点之前;例如:常规登录节点属于首次认证节点,信息补全节点属于二次认证节点,则信息补全节点必须在常规登录节点匹配到用户之后编排;常规登录节点属于作业执行节点,配置登录方式节点属于对应的参数配置节点之一,则配置登录方式节点必须在常规登录节点之前编排。
相对顺序约定是指:两个节点在流程中的先后顺序可自由编排,只考虑业务目标能否实现,无需考虑谁先谁后;例如:常规登录节点执行成功之后,可以先编排多因素认证节点(属于二次认证节点),也可以先编排信息补全节点,最终执行结果不受二次认证节点编排顺序影响。
步骤S3,根据自身不同的业务场景,从节点库中可重复地选取需要的节点,并自定义编排各节点的相对顺序,持久化为所有应用可复用的编排模板实例,存储在后端;
对节点进行编排时,其底层技术实现中需要的功能组件如下表:
公共服务层:作为应用层,当作为认证编排最上层时,负责接收前端、API/SDK的请求,判断是否执行认证编排工作流;需要执行的,转发请求到流程编排服务;不需要执行的,执行原有业务逻辑;当作为认证编排最下层时,负责实现具体的业务逻辑。实际使用时,用户从应用登录页面进行操作,开启认证编排旅程,后台通过流程编排引擎调度并执行自定义认证旅程;
编排应用层:作为编排层,定义节点的流转关系,负责流程的流转调度。后端项目负责定义节点,以及根据节点库内容形成系统模板(预定义节点顺序的流程,在创建工作流时可以使用模板创建)或自定义模板(用户自定义节点顺序的流程,存储为自定义工作流),提供暂停、恢复、重启等多种流程控制模型,通过队列服务实现客户端与服务端的分离。流程编排服务根据当前流程运行的状态,解析出将要执行的(待调度、待更新的)任务列表并加入队列,交给worker执行;认证编排流在执行过程中可见,执行日志使流程可追溯;
业务逻辑层:作为执行层,实现原子操作的处理及流程控制;接收到流程编排服务的调度,执行节点对应的具体作业;当前作业可以引用流程及其他作业的输入输出;执行过程中调用服务层的底层服务实现,完成当前作业后更新结果状态到流程编排服务。
编排模板的形成过程如图2所示;
编排模板的执行过程如图3所示。
节点是从业务场景抽象的,模板是由节点组成的,工作流实例是基于模板创建的。
业务场景决定了有哪些功能、需要配置哪些内容,从而抽象成独立的功能点,即节点。
节点决定了工作流模板的粒度:模板=节点的有序编排。
工作流模板决定了工作流实例的实现灵活度:工作流实例=工作流模板+自定义的节点集合。
为了更清楚地说明本发明,下面举几个具体的业务场景进行说明。
业务场景A:登录流程
A1、传统的登录流程
如图4所示,传统的登录流程一般需要自行开发代码实现,其具体流程如下:
1.用户打开登录页面;
2.用户输入用户名和密码,并提交信息;
3.系统验证用户名和密码,如果正确则提示用户用户登录成功;否则提示用户相关错误信息。
假设现在由于业务变化,需求产生了变更,变更如下:
1.我们觉得仅使用账户名密码登录是不够安全的,需要我们在此基础上我们希望能够添加手机号+验证码的二次认证;
2.我们需要在凌晨2:00~4:00进行系统维护,在此时间段内禁止用户登录;
3.我们觉得IE浏览器兼容性不好,所以禁止用户在IE浏览器内登录。
此时,传统的方式需要进入到“发起需求->需求分析->需求评审->系统设计->代码开发->测试->发布”等一系列流程,才能满足此需求。
A2、本发明的一个登录流程
首先,针对业务变化前的流程A1可以抽象并封装出以下节点:
用户输入用户名+密码的方式可以抽象为应用登录方式配置节点,其功能是允许用户使用的登录方式为用户名+密码;
验证用户名密码可以抽象为登录凭证校验节点;
对登录凭证校验节点的结果判断可以抽象出条件分支节点;
提示用户错误信息可以抽象出失败提示节点;
提示用户登录成功可以抽象出成功提示节点。
然后,如图5所示,对节点进行编排:
1.初始化登录成功,通过应用登录方式配置节点配置用户允许的登录方式为用户名和密码;
2.用户输入用户名和密码后,由登录凭证校验节点对用户输入的用户名和密码进行验证,并输出结果给条件分支节点;
3.条件分支节点接收由登录凭证校验节点输出结果并进行判断,若认证通过,则流转到成功提示节点,否则流转到失败提示节点。
最后,将以上对节点的编排保存为登录编排模版并应用,则用户在登录时将按照预期的流程进行登录。
用户登录的时序图如图6所示。
以上是通过编排来实现传统的登录的流程,无需进行代码开发。
当业务发生变化,需求产生了变更,变更如下:
1.我们觉得仅使用账户名密码登录是不够安全的,需要我们在此基础上我们希望能够添加手机号+验证码的二次认证;
2.我们需要在凌晨2:00~4:00进行系统维护,在此时间段内禁止用户登录;
3.我们觉得IE浏览器兼容性不好,所以禁止用户在IE浏览器内登录。
针对如上业务变化,通过节点编排则可以在此基础上新增/修改节点,实现业务目标,具体流程如下:
1、在登录凭证校验节点之前,添加两个条件分支节点,若当前浏览器是IE浏览器或者当前时间为2:00~4:00,则进入失败信息提示节点,否则进入登录凭证校验节点及后续流程;
2、新增二次认证节点,在用户名密码校验通过后,进入二次认证,并在二次认证后添加条件分支节点,判断二次认证是否成功,若二次认证成功,则进入成功提示节点,否则进入失败信息提示节点;
3、至此即可实现新的业务需求。
业务变化后登录编排流程如图7所示。
业务变化后用户的登录流程如图8所示。
业务场景B:注册场景
B1、如图9所示,传统的注册流程一般需要自行开发代码实现,其具体流程如下:
1.用户打开注册页面;
2.用户输入用户名和密码,并进行注册;
3.系统验证用户名和密码是否有效,若用户名密码有效则创建用户,并提示注册成功,否则将提示用户相关错误信息。
假如现在由于业务变化,需求产生了变更,变更如下:
1.我们希望系统注册有白名单机制,在白名单内的用户方可注册;
2.我们觉得用户通过用户名和密码的方式注册比较简单,若用户忘记密码后无法自行找回密码,所以我们希望用户在注册时补全手机号信息,便于后期通过手机号及验证码来找回密码。
此时,传统的方式需要进入到“发起需求->需求分析->需求评审->系统设计->代码开发->测试->发布”等一系列流程才能满足此需求。
B2、本发明的一个注册流程
首先,针对业务变化前的流程B1可以抽象并封装出以下节点:
用户输入用户名+密码的方式可以抽象为注册配置节点,允许用户使用的注册方式为用户名密码;
验证用户名密码是否有效可以抽象为注册凭证校验节点;
注册凭证校验节点结果判断可以抽象出条件分支节点;
创建用户可以抽象出为创建用户节点;
提示用户错误信息可以抽象出失败提示节点;
提示用户登注册成功可以抽象出成功提示节点。
然后,如图10所示,对以上节点进行编排:
1.初始化注册成功,通过注册配置节点允许用户使用的注册方式为用户名和密码;
2.用户输入用户名和密码后,由注册凭证校验节点对用户输入的用户名和密码进行验证,并输出结果给条件分支节点;
3.条件分支节点接收由登录凭证校验节点输出结果并进行判断,若认证通过,则流转到创建用户节点进行创建用户,否则将提示失败信息;
4.创建用户节点创建完成用户后,提示成功信息。
最后,将以上对节点进行编排保存为注册编排模版并应用,则用户在注册时将按照预期的流程进行注册。
用户注册流程的时序图如图11所示。
以上是通过编排来实现传统的注册流程,无需进行代码开发。
假如现在由于业务变化,需求产生了变更,变更如下:
1.我们希望系统注册有白名单机制,在白名单内的用户方可注册;
2.我们觉得用户通过用户名和密码的方式注册比较简单,比如用户忘记密码后无法自行找回密码,所以我们希望用户在注册时补全手机号信息,便于后期通过手机号及验证码来找回密码。
针对如上业务变化,通过节点编排则可以在此基础上新增/修改节点,实现业务目标,具体流程如下:
1.在注册配置节点后,添加注册白名单校验节点,若当前用户在白名单中,则进入的后续节点及流程,否则将提示用户相关失败信息;
2.新增信息补全节点,在注册凭证节点校验通过后,进入信息补全,让用户补全相关手机号信息;
3.至此即可实现新的业务需求。
业务变化后注册编排流程如图12所示。
业务变化后用户的注册流程如图13所示。
综上所述,本发明的优点主要有:
1、提高流程可控性:自定义编排可以明确每个步骤的执行顺序和转换到具体所需的条件,从而确保整个流程的可控性和可预测性。这可以帮助企业更好地规划和管理认证流程,从而减少隐患。
2、提高流程透明度:通过编排流程可视化,企业可以清晰地了解每个步骤所涉及的信息和操作,并可以更好地跟踪和监控整个流程的进展情况。这可以提高流程的透明度,使组织更容易满足合规和监管要求。
3、降低研发成本:自定义编排可以帮助企业更好地根据业务变化规划属于自己的认证流程,避免拘泥于已有模板的节点流转方向,减少定制化研发工作。此外,通过提高流程的效率和准确性。
4、提高流程的一致性:通过编排认证流程,企业可以确保不同应用认证都按照相同的标准和流程执行。
5、提高流程灵活性:自定义编排可以根据组织的特定需求进行定制,以适应不同的认证流程和组织结构。这可以提高业务适配度,从而更好地满足企业的实际需求。
本发明的有益效果为:基于可编排、模板化的认证流程控制,可以根据业务需要更改认证过程中各个步骤的相对顺序和出现次数,实现根据自身场景来动态调整认证相关流程,从而降低定制化开发成本,加强身份安全管理,拓宽业务覆盖场景。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种基于编排的自定义认证相关流程方法,其特征在于,包括:
步骤S1,抽象登录认证过程中的执行步骤以及配置项,并封装为节点,形成节点库;
步骤S2,约定不同节点之间的相对顺序和绝对顺序;
步骤S3,根据自身不同的业务场景,从节点库中可重复地选取需要的节点,并自定义编排各节点的相对顺序,持久化为所有应用可复用的编排模板实例,存储在后端。
2.根据权利要求1所述的基于编排的自定义认证相关流程方法,其特征在于,节点包括:功能性节点和非功能性节点。
3.根据权利要求2所述的基于编排的自定义认证相关流程方法,其特征在于,功能性节点包括:参数配置节点和作业执行节点;
参数配置节点包括但不限于:应用基础认证信息配置节点,应用登录方式配置节点,应用安全规则配置节点,多因素认证方式配置节点,OIDC签发Token配置节点,OIDC签发Access Token配置节点,OIDC签发ID Token配置节点和OIDC签发授权码配置节点;
应用基础认证信息配置节点,其功能是:配置应用的基础认证信息和协议相关信息;
应用登录方式配置节点,其功能是:配置应用的登录方式;
应用安全规则配置节点,其功能是:配置应用的登录注册相关安全策略;
多因素认证方式配置节点,其功能是:配置应用级别的多因素认证方式;
OIDC签发Token配置节点,其功能是:配置OIDC应用的授权响应中Refresh Token的过期时间、配置与终端用户信息相关的自定义OIDC Claim和用于请求对应Claim的自定义OIDC Scope;
OIDC签发Access Token配置节点,其功能是:配置OIDC应用的授权响应中AccessToken的过期时间;
OIDC签发ID Token配置节点,其功能是:配置OIDC应用的授权响应中ID Token的签名算法;
OIDC签发授权码配置节点,其功能是:配置OIDC应用的授权响应中授权码的过期时间;
作业执行节点包括但不限于:注册类节点、登录类节点和二次认证节点;
注册类节点包括但不限于:常规注册节点;
常规注册节点用于常规方式的注册场景,根据灵活性需求,常规注册节点包括但不限于:注册配置节点、检查密码节点、检查验证码节点、注册凭证校验节点、注册安全策略校验节点、注册白名单校验节点、检查账号状态节点、创建用户节点和发送欢迎邮件节点;
登录类节点包括但不限于:常规登录节点,身份源登录节点,扫码登录节点、推送登录节点和生物认证登录节点;
登录类节点用于首次认证的业务场景;
登录类节点,其功能是:用于匹配到系统已有账号,完成用户匹配,获取终端用户;
常规登录节点用于常规方式的登录场景,根据灵活性需求,常规登录节点包括但不限于:匹配身份源节点、检查登录目标应用节点、校验登录回调地址节点、登录凭证校验节点、检查登录权限节点、检查账号状态节点和签发Token节点;
身份源登录节点,其功能是:获取第三方身份源中的用户信息授权后,登录到当前应用;
扫码登录节点,其功能是:从应用登录页面扫描二维码,后端更新二维码状态并完成登录;前端轮询二维码状态,直到二维码过期或应用端完成扫码登录;
推送登录节点用于网页端应用支持推送登录的业务场景;登录前网页端应用需支持推送登录功能,即发起推送登录前,需完成设备绑定;网页端应用获取到推送码之后,轮询推送码状态,直到推送码过期或移动端确认或取消推送登录;网页端发送推送,在移动端会收到“您刚才是否尝试过登录”的推送;移动端确认后,可以登录网页端;
生物认证登录节点,用于使用指纹识别登录和人脸识别登录的业务场景;
二次认证节点用于首次认证后针对用户进行二次认证、更新或补充认证相关用户信息的业务场景;
二次认证类节点包括但不限于:身份绑定节点、信息补全节点、重置密码节点、账号自助解锁节点和多因素认证节点;
身份绑定节点,其功能是:联邦认证场景下,选用第三方身份源登录SaaS应用,需要通过身份绑定的方式,使用外部身份换取系统平台内的用户;身份绑定方式包括但不限于:使用常规方式绑定到已有账号、使用常规方式新注册账号后绑定和使用身份源中的外部用户信息注册账号后绑定;
信息补全节点,其功能是:登录或注册过程中,匹配到用户后,根据应用的品牌化配置中的登录/注册信息补全字段配置,拉起信息补全页面,允许或跳过补充对应的用户字段,完成登录或注册;
重置密码节点,其功能是:首次登录过程中,检查到创建用户时配置了需要在首次登录时重置密码;或登录认证过程中,当前用户已开启密码校验,根据当前用户的密码策略检测到密码不符合强度校验,需要重置密码;或登录过程中密码过期,需要强制重置密码;
账号自助解锁节点,其功能是:登录过程中,匹配到用户后,检查得知用户的账户处于“已停用”或“禁用”状态,并检查得到用户具备自助解锁的条件(当前账户已绑定手机或邮箱),则用户可以通过手机或邮箱验证码模式更新账户的状态为“正常”;
多因素认证节点,其功能是:登录过程中,匹配到用户后,根据应用安全管理配置,选择一种方式执行应用级别的多因素认证;通过个人中心绑定的用户,则执行个人账户级别的多因素认证,不受应用级别的开关控制。
4.根据权利要求2所述的基于编排的自定义认证相关流程方法,其特征在于,非功能性节点负责流程控制,包括但不限于:分支流转节点、逻辑控制节点、用户交互节点和信息提示节点;
分支流转节点用于管理工作流中的分支,包括但不限于:条件分支节点和并行分支节点;
条件分支节点的功能是:根据条件判断,执行不同分支;该节点不做任何操作。根据分支变量当前的实际值,获取任务列表,目标分支的首个节点任务被调度进入队列,等待作业执行;若分支为空或获取不到对应分支,使用默认分支;
并行分支节点的功能是:开启多个并行分支;并行分支节点根据分支变量的实际值,获取任务列表,所有分支的首个节点任务被调度进入队列,等待作业执行;
逻辑控制节点,用于变更当前工作流的运行状态,包括但不限于:等待节点、循环节点和流程结束节点。
等待节点的功能是:流程一直在运行中状态,直到外部操作触发更新节点状态;等待节点用于等待外部操作;
循环节点的功能是:在一定条件下,循环运行一部分节点流程,需要循环执行的节点放置在循环模块内;当不满足条件时,跳出循环模块;
流程结束节点的功能是:当满足节点内指定条件或出现指定节点输出时提前结束流程;可与条件分支节点配合使用;
用户交互节点的功能是:用于接收用户的输入并传递给流程引擎流程编排服务;
用户交互节点包括但不限于:触发节点、自定义函数节点和自定义表单节点。
触发节点的功能是:接收用户的输入,并根据预定义和/或自定义事件触发指定业务分支;
自定义函数节点的功能是:接收用户的输入,并结合当前工作流的上下文内容和前置节点的输入输出,插入自定义逻辑块,实现指定业务操作;
自定义表单节点的功能是:用于在流程中任意位置、与任意节点结合使用收集额外信息并将其保存到认证上下文,由管理员根据自己的需求定义所需字段,并设置字段属性;用户在完成认证过程中将被要求填写这些字段,以提供额外的信息;
信息提示节点包括但不限于成功提示节点和失败提示节点;
成功提示节点通常在某节点执行成功后显示,用于向用户显示操作成功的消息;
失败提示节点通常在某节点未能执行成功时显示,用于向用户显示失败的消息和可能的原因。
CN202310481489.8A 2023-04-28 2023-04-28 一种基于编排的自定义认证相关流程方法 Pending CN116506187A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310481489.8A CN116506187A (zh) 2023-04-28 2023-04-28 一种基于编排的自定义认证相关流程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310481489.8A CN116506187A (zh) 2023-04-28 2023-04-28 一种基于编排的自定义认证相关流程方法

Publications (1)

Publication Number Publication Date
CN116506187A true CN116506187A (zh) 2023-07-28

Family

ID=87326150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310481489.8A Pending CN116506187A (zh) 2023-04-28 2023-04-28 一种基于编排的自定义认证相关流程方法

Country Status (1)

Country Link
CN (1) CN116506187A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795378A (zh) * 2023-08-18 2023-09-22 宁波数益工联科技有限公司 基于代码动态编译的流程编排执行方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795378A (zh) * 2023-08-18 2023-09-22 宁波数益工联科技有限公司 基于代码动态编译的流程编排执行方法及装置
CN116795378B (zh) * 2023-08-18 2023-11-21 宁波数益工联科技有限公司 基于代码动态编译的流程编排执行方法及装置

Similar Documents

Publication Publication Date Title
US10848498B2 (en) Systems and methods for dynamic granular access permissions
US5655077A (en) Method and system for authenticating access to heterogeneous computing services
US7660988B2 (en) Electronic notary
US9065828B2 (en) System for delegation of authority, access management service system, medium, and method for controlling the system for delegation of authority
US9571495B2 (en) Methods and systems for authorizing web service requests
GB2569278A (en) Methods and apparatus for verifying a user transaction
CN113297550A (zh) 权限控制的方法、装置、设备、存储介质及程序产品
CN108011862A (zh) 镜像仓库授权、访问、管理方法及服务器和客户端
CN112511653B (zh) 物联网设备的服务权限激活方法、配置方法及注册方法
US10938814B2 (en) Unified authentication software development kit
CN111295655B (zh) 用于一个或多个进程的分布式隐私保护共享执行的计算机系统和方法
US20210029546A1 (en) Method and system for providing location-aware multi-factor mobile authentication
CN116506187A (zh) 一种基于编排的自定义认证相关流程方法
CN110889108B (zh) spark任务的提交方法、装置和服务器
US8543810B1 (en) Deployment tool and method for managing security lifecycle of a federated web service
CN109726535A (zh) 一种用于大数据平台的数据权限管理的方法和系统
CN111045725A (zh) 代码管理系统的控制方法、装置及存储介质
TWI617942B (zh) Online trading platform account control method, device and server
KR20240007014A (ko) 탈중앙 아이디와 검증가능 자격증명을 이용한 분산 워크플로우 시스템 및 방법
CN103870325A (zh) 流程引擎处理方法
CN114157581A (zh) 提供区块链服务的方法、装置、存储介质和电子设备
CN112862132B (zh) 基于区块链的酒店管理方法、系统、装置、设备及介质
Cabri et al. Applying security policies through agent roles: A JAAS based approach
JP2011060006A (ja) 情報処理システム、処理装置及びプログラム
JP4417819B2 (ja) 情報処理装置、責務判定方法、責務判定プログラム及び記録媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination