k8s-keystone-auth
2020-11-23 19:59:30 6 举报
K8s-keystone-auth
作者其他创作
大纲/内容
2.Informer list所有的configmap保存到本地缓存
1.接收到请求
4.开启路由监听到/webhook的请求
1.从队列中得到cm的name
2.请求的kind为SubjectAccessReview为授权请求
程序启动
3.读取policy-configmap-name参数指定的configmap并解析成json赋值给policy
Keystone初始化NewKeystoneAuth()
3.如果本地缓存报NotFound,代表此cm已经被删除,直接将policy清空(因为不监听删除事件)
4.将拿到的cm解析成json并替换给policy
3.拿接收到的Token去Keystone验证
路由监听/webhook
4.创建Informer监听所有的configmap修改事件,会把符合条件的事件加入到待处理队列,(kube-system,PolicyConfigMapName)
参数初始化NewConfig()读取启动时,指定的各种参数
2.初始化K8sClient
待处理队列
2.根据name从本地缓存中拿到cm对象
4.规则验证时,先拿到请求的user信息,然后去policy里首匹配user信息,匹配到user信息后,再去匹配user下的具体policy rule
3.启动goroutine持续的去处理符合条件加入到处理队列的cm更新事件
1.初始化KeystoneClient
keystoneAuth.Run()
2.请求的kind为TokenReview为认证请求
3.根据请求信息解析出请求的资源名称,namespace,动作等等
1.启动Informer
认证/授权请求
4.合法请求,可以拿到请求的Roles,ProjectID,ProjectName,DomainId,DomainName等等,并把这些信息返回
0 条评论
下一页