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)
}
- 路由权限配置:
// 怎么控制哪些接口认证,哪些接口不认证
// @role("admin")
r.Route(r.GET("/").To(h.QuerySecret).
Doc("查询凭证列表").
// 作为OpenApi的值作为展示
Metadata(restfulspec.KeyOpenAPITags, tags).
// 通过auth来控制是否开启认证和鉴权
Metadata("auth", true).
Metadata("permission", true).
// endpoint注册时使用
Metadata("resource", "secret").
Metadata("action", "list"))