配置中心作为基础服务,存储着公司非常重要的配置信息,所以安全因素需要大家重点关注,Apollo提供多方面的实践
1 认证
1.1 使用Apollo提供的Spring Security简单认证
可能很多公司并没有统一的登录认证系统,如果自己实现一套会比较麻烦。Apollo针对这种情况,从0.9.0开始提供了利用Spring Security实现的Http Basic简单认证版本。
从0.9.0版开始之后执行完Apollo的sql脚本之后,能使用apollo/admin登录Apollo管理界面。
1.2 使用SSO方式登录
在官方文档中说道
- SSO会提供一个jar包,需要配置一个filter
- filter会拦截所有请求,检查是否已经登录
- 如果没有登录,那么就会跳转到SSO的登录页面
- 在SSO登录页面登录成功后,会跳转回apollo的页面,带上认证的信息
- 再次进入SSO的filter,校验认证信息,把用户的信息保存下来,并且把用户凭证写入cookie或分布式session,以免下次还要重新登录
- 进入Apollo的代码,Apollo的代码会调用UserInfoHolder.getUser获取当前登录用户
注意,以上1-5这几步都是SSO的代码,不是Apollo的代码,Apollo的代码只需要你实现第6步。
其实当执行UserInfoHolder.getUser的时候已经完成了Spring Security登录的过滤链,通过查看代码AuthConfiguration可知Apollo通过不同的profile来实现登录方法的初始化,因此可以通过在代码中追加自定义的SSO逻辑链路来支持SSO登录,由于篇幅较大,日后时间会写另外一遍博文进行阐述。
除此之外Apollo还提供了LDAP和OIDC的登录,鉴于作者目前碰到的系统少有使用,所以就不做讨论。<

Apollo配置中心提供了多种安全措施,包括使用SpringSecurity的简单认证、SSO登录、用户及权限管理、敏感配置访问控制以及admin-service的访问限制。用户管理允许在系统中添加访问者,项目管理员权限可分配编辑和发布权限。从1.1.0版本开始支持查看权限,允许仅项目成员查看私有Namespace配置。此外,1.6.0版本引入了访问密钥机制,防止未授权访问敏感配置,而admin-service访问控制则增强了接口安全性。
最低0.47元/天 解锁文章

1136





