
finbourne/oidc-ingressoidc-ingress是一个基于OIDC和cookies的webhook认证服务,旨在为Kubernetes环境中运行在Nginx Ingress控制器后的任何服务轻松添加OIDC认证。通过使用cookies实现认证机制,无需对客户端进行任何修改,即可使遗留系统或服务接入认证流程。
适用于Kubernetes集群中需要为通过Nginx Ingress暴露的服务添加身份认证的场景,尤其适合:
| 环境变量 | 命令行参数 | 默认值 | 说明 |
|---|---|---|---|
| CLIENTS | -clients | - | OIDC客户端配置,YAML格式字符串(详见下方Clients配置) |
| ETCD | -etcd | localhost:2379 | etcd服务端点(必填项) |
| LISTEN | -listen | :8000 | 主Web服务监听地址 |
| INTERNAL | -internal | :9000 | 内部健康检查和指标端点监听地址 |
| EXTERNALURL | -externalUrl | - | 应用对外暴露的URL,在Kubernetes中由Ingress配置决定 |
| VERSION | -version | - | 设置时打印版本信息并退出 |
Clients配置需通过环境变量或命令行参数提供,为YAML格式字符串。示例配置如下:
yaml- profile: name-of-app # 应用配置名称 provider: [***] # OIDC提供商URL clientid: client_id # OIDC客户端ID clientsecret: client_secret # OIDC客户端密钥 noredirect: false # 是否禁用重定向URL中的?rd参数(默认:false) scopes: # OIDC请求作用域(默认:- openid) - openid - email - profile cookieDomain: example.com # Cookie域名 cookieSecret: super-secret-stuff-used-to-encrypt-the-cookie # Cookie加密密钥
注意:
noredirect参数可抑制路径中的?rd={redirect url},适用于Azure AD等会剥离查询字符串且要求重定向URL完全匹配的场景。
console$ make build $ ./bin/oidc-ingress
console$ make test
当前测试用例较少,后续将补充完善。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务