1. 引言
部门主要做政务行业业务应用,经历快速发展后,在内部存在n套业务系统,认证系统存在痛点。
1.1 每套信息系统的作用各不相同,每套系统也都拥有自己独立的账号密码权限体系,这时,每个人员都需要记住不同系统的账号密码,人员入职和离职时,人事部门都需要对多个系统进行账号的分配和关停,更严重的是部分系统的管理权限不在人事部门,人员离职时系统的账号未能及时关停,存在较大的安全风险。
1.2 政务场景下,每个系统都需要对接粤政易,省统一认证中心,粤治慧这些信息系统。对接流程复杂,且由于网络问题,调试困难。
为此,公司计划建立一个统一的身份认证中心来统一管理,不需要重复对接粤政易,省统一认证中心,粤治慧这些信息系统。只需要和公司自己的统一认证中心平台对接即可。减少重复工作。
基于公司场景,我们有如下需求,

基于此场景以及Oatuth架构,设计了统一认证中心架构。

这样架构,涉及多个系统之间认证模块的对接。
遇到了一个问题,由于从政务侧回调回来是同一个端口作为入口,redirect回来之后,同一个端口转发不同服务请求,需要用到nginx。nginx由统一认证模块转发到子模块的时候,出现了cookie丢失问题。
如果cookie_path与地址栏上的path不相符游览器就不会接受这个cookie,自然session就失效了。
需要增加cookie_path
location proxy_test {
proxy_pass http://127.0.0.1:8080/test;
proxy_cookie_path /test /proxy_test;
}
部门政务业务应用发展后,内部多套业务系统的认证存在痛点,如账号管理不便、对接流程复杂等。公司计划建立统一身份认证中心,基于Oatuth架构设计了架构。但在多系统认证模块对接时,使用nginx转发出现cookie丢失问题,需增加cookie_path解决。
312





