设置webhook_Webhook模式

设置webhook_Webhook模式Webhook 模式浏览 0 扫码分享 2019 10 2717 16 53origin last modified 2018 10 0115 59 9696 译文原文英文原文版权声明 本文为码农文档原创译文 遵循 CC4 0BY NC SA 版权协议 转载请附上原文出处链接和本声明 公告 如果您也想加入翻译队伍 或者您有相关中文文档想要贡献给大家 请联系 coderdocumen 1

Webhook模式

浏览 0

扫码

分享

2019-10-27 17:16:53

origin_last_modified:2018-10-01 15:59(#9696) 译文原文 英文原文

版权声明:本文为 码农文档 原创译文,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接和本声明。

公告:如果您也想加入翻译队伍,或者您有相关中文文档想要贡献给大家,请联系 ,谢谢!

WebHook是一个HTTP回调:当事情发生时发送一个HTTP POST请求;通过HTTP POST发送一个简单的事件通知。当某些事情发生时,实现webhook的web应用程序将向URL发送一条消息。

当指定时,Webhook模式将吏Kubernetes在确定用户权限时查询外部REST服务。

配置文件格式

Webhook模式需要一个HTTP配置文件,由–authorization-webhook-config-file=SOME_FILENAME 选项指定。

配置文件使用kubeconfig文件格式。在文件中,users指的是API服务器webhook,clusters指的是远程服务。

一个使用HTTPS客户端认证的配置示例:

设置webhook_Webhook模式

# Kubernetes API version

apiVersion: v1

# kind of the API object

kind: Config

# clusters refers to the remote service.

clusters:

– name: name-of-remote-authz-service

cluster:

# CA for verifying the remote service.

certificate-authority: /path/to/ca.pem

# URL of remote service to query. Must use ‘https’. May not include parameters.

server: https://authz.example.com/authorize

# users refers to the API Server’s webhook configuration.

users:

– name: name-of-api-server

user:

client-certificate: /path/to/cert.pem # cert for the webhook plugin to use

client-key: /path/to/key.pem # key matching the cert

# kubeconfig files require a context. Provide one for the API Server.

current-context: webhook

contexts:

– context:

cluster: name-of-remote-authz-service

user: name-of-api-server

name: webhook

请求载荷

当面临授权决策时,API服务器会POST一个JSON序列化的authorization.k8s.io/v1beta1 SubjectAccessReview 对象。此对象包含描述用户请求的字段,以及有关正在访问的资源或请求属性的详细信息。

注意,webhook API对象与其他Kubernetes API对象遵循相同的版本控制兼容性规则。实现者应该意识到beta对象更松散的兼容性承诺,并检查请求的apiVersion字段,以确保正确反序列化。另外,API服务器必须启用 authorization.k8s.io/v1beta1 API扩展组(–runtime-config=authorization.k8s.io/v1beta1=true)。

一个示例请求体:

设置webhook_Webhook模式

{

“apiVersion”: “authorization.k8s.io/v1beta1”,

“kind”: “SubjectAccessReview”,

“spec”: {

“resourceAttributes”: {

“namespace”: “kittensandponies”,

“verb”: “get”,

“group”: “unicorn.example.org”,

“resource”: “pods”

},

“user”: “jane”,

“group”: [

“group1”,

“group2”

]

}

}

远程服务将填充请求的status字段,并响应允许或不允许访问。响应体的spec字段将被忽略,并且可以忽略。允许访问的响应将返回如下内容:

设置webhook_Webhook模式

{

“apiVersion”: “authorization.k8s.io/v1beta1”,

“kind”: “SubjectAccessReview”,

“status”: {

“allowed”: true

}

}

若要禁止访问,远程服务将返回:

设置webhook_Webhook模式

{

“apiVersion”: “authorization.k8s.io/v1beta1”,

“kind”: “SubjectAccessReview”,

“status”: {

“allowed”: false,

“reason”: “user does not have read access to the namespace”

}

}

访问非资源路径的方式如下:

设置webhook_Webhook模式

{

“apiVersion”: “authorization.k8s.io/v1beta1”,

“kind”: “SubjectAccessReview”,

“spec”: {

“nonResourceAttributes”: {

“path”: “/debug”,

“verb”: “get”

},

“user”: “jane”,

“group”: [

“group1”,

“group2”

]

}

}

非资源路径包括: /api、 /apis、 /metrics、 /resetMetrics、 /logs、 /debug、 /healthz、 /swagger-ui/、 /swaggerapi/、 /ui和 /version。客户端需要访问/api、/api/*、/apis、/apis/*和/version来发现服务器上有哪些资源和版本。在不限制对REST API的访问的情况下,可以禁止访问其他非资源路径。

有关进一步的文档,请参阅authorization.v1beta1 API对象和webhook.go。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211306.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:44
下一篇 2026年3月18日 下午10:44


相关推荐

  • Shuriken粒子系统学习笔记

    Shuriken粒子系统学习笔记默认展开的是粒子系统的初始化模块 定义了粒子初始化时的持续时间 循环方式 发射速度 大小等一些列基本的参数 Emission 发射模块 控制粒子的发射速率 Rate Shape 形状模块 定义粒子发射器的形状生命周期 速度 大小 颜色 旋转 作用力 UVSubEmitter 子发射器模块 nbsp nbsp nbsp 此模块可时粒子在出生 消亡 碰撞等三个时刻生成其他的粒子

    2026年3月18日
    1
  • jax ws ri 生成java类_基于SOAP的webservice(1)、JAX-WS实现

    jax ws ri 生成java类_基于SOAP的webservice(1)、JAX-WS实现因为工作中使用了SOAP进行两个系统的接口调用,所以私下学习一下两种实现,粗略记录于此。本文侧重于实际实现操作,而不是理论原理。个人简单理解:SOAP(SimpleObjectAccessProtocol简单对象访问协议)是基于XML和HTTP的用于实现网络连通的程序之间远程调用的协议(但是SOAP1.2中也可以使用非HTTP协议进行传输)。两个通过网络连接的程序体,通过一定规范的XML进…

    2022年7月15日
    33
  • c语言 socket 非阻塞,C语言Socket入门非阻塞socket(connect timieout问题)

    c语言 socket 非阻塞,C语言Socket入门非阻塞socket(connect timieout问题)如果客户端想连接一个服务器端 但是不能肯定服务器端是否存在 如果存在了是否能连上 怎么判断呢 connect 函数的默认行为是阻塞的 会一直等待在那里 为了判断各种情况 以及遇到错误时结束连接 我们需要使用非阻塞的 socket 一个例子程序 include include include include include include include includeintma void i

    2026年3月16日
    2
  • 矩阵叉乘的意义

    矩阵叉乘的意义矩阵叉乘 叉乘的结果是一个向量 方向垂直于原先两个向量构成的平面 大小为 原来两个向量在平面形成的平行四边形的面积

    2026年3月17日
    2
  • html 简单的table样式

    html 简单的table样式效果预览:代码:素材图片:cell-blue.jpgcell-greyjpg

    2022年7月3日
    27
  • java服务器开发心得

    java服务器开发心得本人已从事java服务器开发三年多了,对java服务器开发比较有心得,特此对这三年多来进行下技术总结,并与大家分享。作为服务器开发,对基础知识的掌握程度,将决定你的服务器各方面的能力,一般在进行java服务器开发前,最重要的是能够熟练运用以下技术:javaclassLoader、javathread、javaI/O(NIO)和javasocket。 一般来说,服务器设计大致

    2022年5月6日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号