开启ServiceComb引擎专享版安全认证
概述
ServiceComb引擎专享版支持基于RBAC(Role-Based Access Control,基于角色的访问控制)策略的安全认证,并支持开启/关闭安全认证。
引擎开启了安全认证之后,要求所有连接该引擎的微服务都要配置安全认证账号和密码。否则,微服务将注册失败,导致业务受损。
适用场景
本章节介绍未开启安全认证的ServiceComb引擎专享版,开启安全认证并确保已接入引擎的微服务组件业务不受影响,即如何平滑开启安全认证。
操作步骤
- 升级微服务组件使用的SDK版本。
开启安全认证功能,需要使用的SDK支持安全认证功能。如果当前的微服务组件使用的SDK版本低于要求的版本(Spring Cloud Huawei需要1.6.1及以上版本、Java Chassis需要2.3.5及以上版本),需要对当前的微服务进行SDK版本升级。
- 配置微服务组件安全认证参数。
ServiceComb引擎开启安全认证前,需要对已连接到该引擎的微服务组件配置安全认证参数。配置安全认证参数是通过配置安全认证账号和密码的方式触发,具体方法如下:
- Spring Cloud微服务组件配置安全认证账号名和密码
表1 Spring Cloud微服务组件配置安全认证账号名和密码 配置文件配置方式
环境变量注入方式
为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。
spring: cloud: servicecomb: credentials: account: name: test #安全认证账号名,请结合用户实际值配置 password: mima #安全认证账号密码,请结合用户实际值配置 cipher: default
添加如下环境变量,请参考手动添加应用环境变量。
- spring_cloud_servicecomb_credentials_account_name,安全认证账号名,请结合用户实际值配置。
- spring_cloud_servicecomb_credentials_account_password,安全认证账号密码,请结合用户实际值配置。
- 用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考自定义实现加密存储算法。
- ServiceComb引擎没有开启安全认证时,如果连接到当前ServiceComb引擎的微服务组件配置了安全认证参数,微服务组件的正常业务功能不受影响。
- Java Chassis微服务组件配置安全认证账号名和密码
表2 Java Chassis微服务组件配置安全认证账号名和密码 配置文件配置方式
环境变量注入方式
为微服务的“microservice.yml”文件增加以下配置,若已配置请忽略。
servicecomb: credentials: rbac.enabled: true #是否开启安全认证,请结合用户实际值配置 cipher: default account: name: test #安全认证账号名,请结合用户实际配置 password: mima #安全认证账号密码,请结合用户实际配置 cipher: default
添加如下环境变量,请参考手动添加应用环境变量。
- servicecomb_credentials_rbac_enabled,是否开启安全认证,请结合用户实际值配置:true,开启安全认证;false,不开启安全认证。
- servicecomb_credentials_account_name,安全认证账号名,请结合用户实际值配置。
- servicecomb_credentials_account_password,安全认证账号密码,请结合用户实际值配置。
- 开启ServiceComb引擎专享版安全认证,请参考开启安全认证。
开启安全认证后,接入该引擎的微服务组件如果没有配置安全认证参数,或者微服务组件配置的安全认证账号和密码不正确,会导致该微服务组件心跳失败,服务被迫下线。