常见的配置中心:Apollo(三)-安全相关

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

配置中心作为基础服务,存储着公司非常重要的配置信息,所以安全因素需要大家重点关注,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方式登录

在官方文档中说道

  1. SSO会提供一个jar包,需要配置一个filter
  2. filter会拦截所有请求,检查是否已经登录
  3. 如果没有登录,那么就会跳转到SSO的登录页面
  4. 在SSO登录页面登录成功后,会跳转回apollo的页面,带上认证的信息
  5. 再次进入SSO的filter,校验认证信息,把用户的信息保存下来,并且把用户凭证写入cookie或分布式session,以免下次还要重新登录
  6. 进入Apollo的代码,Apollo的代码会调用UserInfoHolder.getUser获取当前登录用户

注意,以上1-5这几步都是SSO的代码,不是Apollo的代码,Apollo的代码只需要你实现第6步。

其实当执行UserInfoHolder.getUser的时候已经完成了Spring Security登录的过滤链,通过查看代码AuthConfiguration可知Apollo通过不同的profile来实现登录方法的初始化,因此可以通过在代码中追加自定义的SSO逻辑链路来支持SSO登录,由于篇幅较大,日后时间会写另外一遍博文进行阐述。

除此之外Apollo还提供了LDAP和OIDC的登录,鉴于作者目前碰到的系统少有使用,所以就不做讨论。<

这是yamlapp: alias: amopTgfacadeAlias-lx name: amop-tgfacade group: amop-tgfacade-service version: 1.0 deploy: version: 1.0 server: port: 18099 registry: address: 10.2.25.16:2181,10.2.25.28:2181,10.2.25.17:2181 reference: omc: group: g_amos version: v rpc: protocol: name: t3 port: 20899 t3.nullToObject: true trace: log: false registry: session: 60000 #配置MyBatis mybatis: type-aliases-package: com.hundsun.amop.tgfacade.server.datasource.dao mapper-locations: classpath:oracle/*Mapper.xml configuration: call-setters-on-nulls: true #日志 logging: level: # root: debug com.hundsun.amop.tgfacade.server.datasource.dao: debug #在线接口配置 swagger: base-package: com.hundsun.amop.tgfacade.server.controller title: 开放API接口 description: 对外API接口描述 termOfServiceUrl: http://www.hundsun.com # contact: # name: mengjq # email: mengjq@hundsun.com # url: http://www.hundsun.com #数据池配置 192.168.224.112 spring: datasource: url: jdbc:oracle:thin:@10.2.0.65:1521/tggztest username: tgcbs # password: Precious#5123 initial-size: 2 max-active: 50 min-idle: 2 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 validation-query: select 1 from dual validation-query-timeout: 30000 test-on-borrow: false test-on-return: false test-while-idle: true filters: stat,wall,slf4j connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # redis配置 hs: cache: default: type: redis mode: standalone address: 10.2.25.17:6379 # password: hundsun@123 dbIndex: 7
最新发布
10-29
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值