mcenter
在mongodb中创建用户
use menter_mini
db.createUser({user: "mcenter", pwd: "123456", roles: [{ role: "dbOwner", db: "menter_mini" }]})
认证
开发接入中间件 gorestful/gin
权限
比如cmdb里secret接口,并不是所有的都能访问,就需要设计一个权限系统(RBAC)
如何把endpoint注册给mcenter
业务对接中心
mcenter rpc客户端初始化需求提前进行,默认配置能用,如果生产使用需要配置
- 认证鉴权中间件对接:
r.Filter(auth.NewAuthFilter("cmdb"))
- 功能列表注册:
// 所有的路由都已经加载好了,获取当前DefaultContainer里面注册的所有的WebService(一个service 就是一个模块)
r := tools.NewEndpointRegister("cmdb")
err := r.Registry(context.Background(), h.r)
if err != nil {
logger.L().Error().Msgf("registry endpoint error, %s", err)
}
- 路由权限配置:
// 怎么控制哪些接口认证,哪些接口不认证
r.Route(r.GET("/").To(h.QuerySecret).
Doc("查询凭证列表").
// 作为OpenApi的值作为展示
Metadata(restfulspec.KeyOpenAPITags, tags).
// 通过auth来控制是否开启认证和鉴权
Metadata("auth", true).
Metadata("permission", true).
// endpoint注册时使用
Metadata("resource", "secret").
// 如果token过期,报错401认证失败,如果token没权限,报错403鉴权失败
Metadata("action", "list"))