全网最简单的k8s User JWT token管理器


kubernetes集群三步安装kubernetes server account的token很容易获取,但是User的token非常麻烦,本文给出一个极简的User token生成方式,让用户可以一个http请求就能获取到。官方dashboard登录时需要。 如果通过使用kubeconfig文件登录而文件中又没有token的话会失败,现在大部分文章都介绍使用service account的token来登录dashboard,能通,不过有问题:
第一:绑定角色时要指定类型是service account:第二:要理解kubeconfig里是解析证书把CN作为用户名的,这时service account即便与CN一样那还是两个账户,绑定角色时还需要绑定两次,有点像把service account给”人”用, 所以把service account的token扔给某个开发人员去用往往不合适,service account token更多时候是给程序用的。想直接调用https的,没有token就会:因为没有任何认证信息,所以匿名(anonymous)用户没有任何权限加了token是这样的:看,虽然还是403 但是已经有了用户信息,只要给该用户授权就可正常访问了,如何授权下文介绍token的生成方式有很多,主要分成三种:基于openid的jwt是本文介绍的重点。社区用的比较多的就是dex,是一个比较完整的实现,但是对于不熟悉该技术的朋友来说还是有点门槛的,容易绕进去。 而且还存在一些使用不方便的问题。
如依赖复杂,首先得需要一个真正的用户管理程序,如ldap 或者一个auth3服务端,这还可以接受,关键是认证时可能需要依赖浏览器进行跳转授权,这在十分多的场景里就变的十分尴尬,就比如我们的场景压根没有
界面,这样生成token就成了一个大问题。 其次集成到别的系统中时往往用户已经登录过了,所以需要一个二次授权的过程才能拿到token,依赖过重导致系统难以设计
然而如果不是集成到别的系统中,比如从0开发一个完成的PaaS平台那使用dex还是一个完美的方案。所以我们实现了一个简单粗暴的方案,完全解放了这个过程, 只care最核心的东西。我们想要啥?input:output:结束,多简单,别整那么多没用的。所以为了实现上面的功能,我们开发了 fist, fist的auth模块把dex里最核心的token生成功能以及jwt功能实现了。生成证书启开发云主机域名动fist auth模块修改k8s apiserver启动参数获取token使用token直接curl加bare token 见上文加入到kubeconfig中:然后.kube/config 文件里的 user.client-certifacate-data 和 client-key-data就可以删了,再执行kubectl会:说明新用户成功了授权创建个role binding即可:discoer info 是个json:public keys也是个json 类似:所以fist只需要实现这两个url 和 用私钥匙加密用户信息生成token即可。创建密钥对:私钥加密:fist核心代码已经可用,不过为了更方便使用还需要进一步梳理,敬请期待。 鉴权仅是其其中一个功能,fist定位是一个极简的k8s管理平台。探讨可加QQ群:98488045公众号

相关推荐: OpenStack架构—-cinder组件(六)

整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。上篇博文详细讲述了控制节点服务controller中的horizon组件,本篇博文将详解存储节点cinder的部署。分为两部分:控制节点和存储节点存储节点包含Cinder,Swift…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/13 20:33
下一篇 05/13 20:33

相关推荐