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 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
 