1、OAuth和OAuth2.0介绍 2、应用场景 3、oauth2 proxy介绍 4、具体实现 4.1 在Gitlab配置OpenID应用 4.2 生成Cookie密钥 4.3 部署oauth2 项目地址:https://github.com/oauth2-proxy/oauth2-proxy 认证过程的流程如下 ? : oauth2-proxy template: metadata: labels: k8s-app: oauth2-proxy spec: containers: - name: oauth2-proxy image: quay.io/oauth2-proxy/oauth2-proxy:latest auth-signin是目标应用的 oauth2登录页面即oauth2-proxy。
带有 oauth2-proxy 的 Nginx basic auth 的一种更安全的替代方法是使用身份验证代理,例如 oauth2-proxy。 有关如何在 kubernetes 中部署和配置 oauth2-proxy 的参考,请参阅 blog post by Don Bowman。 如果您通过 helm chart 部署 oauth2-proxy,则需要以下值: config: existingSecret: oauth2-proxy configFile: |- kubernetes.io/ingress.class: nginx path: /oauth2 ingress: hosts: - linkerd.example.com 其中 oauth2
Service Mesh 优势 1 - 使用 OAuth2-proxy 进行身份验证 许多应用程序团队需要在他们的微服务前面添加一个身份验证层。 我们之前写过关于如何将 Istio 与 OAuth2-proxy 集成以实现这一目标的博客。但是,如果这是您从 Istio 中唯一需要的东西,那么采用它可能有点过头了。 如果你只需要一些好的 oauth2-proxy,Nginx Ingress Controller 很容易与之集成。只需使用 auth-url 注释,控制器将完成其余的工作。 为了确保您的应用程序获得细粒度访问控制的声明,您必须做两件事: 首先,将--set-authorization-header命令行选项添加到 oauth2-proxy:这可确保 oauth2-proxy 这可确保 Nginx 入口控制器将 HTTP 授权标头从 oauth2-proxy 转发到您的应用程序。 如果您需要更多详细信息,可以在此处找到现成的代码片段。
镜像来源只能选择腾讯云个人版或者企业版的镜像服务,因此需要将OAuth2 Proxy的镜像先拉到本地,然后推送到腾讯云的镜像服务中(个人版免费) 从OAuth2 Proxy官方镜像仓库拉去镜像 docker pull quay.io/oauth2 -proxy/oauth2-proxy:latest 在本地打上tag,tag名为在腾讯云镜像服务创建的镜像的镜像地址,然后上传镜像,具体如何使用腾讯云镜像服务,可以参考官方文档:容器镜像服务 个人版操作指南 /managing-oauth-apps/troubleshooting-authorization-request-errors) 2(https://oauth2-proxy.github.io/oauth2 environment-variables) 3(https://coder.com/docs/code-server/latest/guide) 4(https://oauth2-proxy.github.io/oauth2
配置 OAuth2 Proxy 首先我们要在 Keycloak 创建一个客户端应用,创建一个新的 OpenID 连接应用,并作出如下设置: Client ID:oauth2-proxy Access Type 下一步可以创建 OAuth2 Proxy 配置,在 oauth2-proxy/values-oauth2-proxy.yml 中包含一个样本: # Oauth client configuration specifics config: clientID: "oauth2-proxy" clientSecret: "YOUR_SECRET" # Create a new secret with ,因为 Stable 仓库即将淘汰,OAuth2 Proxy Chart 还没迁移到新的仓库,所以我们在样例中保留了最近的版本,可以用如下命令进行安装: helm upgrade --install oauth2 /charts/oauth2-proxy --values oauth2-proxy/values-oauth2-proxy.yml 安装结束,就可以浏览 Ingress 域名,会看到出现了 Sign
middlewares/forwardauth/ [5] Overview | OAuth2 Proxy (oauth2-proxy.github.io): https://oauth2-proxy.github.io/oauth2
PROXY_CLIENT_SECRET=<CLIENT_SECRET> \ -e OAUTH2_PROXY_COOKIE_SECRET=<COOKIE_SECRET> \ quay.io/oauth2 -proxy/oauth2-proxy Step 2:配置Docker API认证授权 接下来需要配置Docker API认证和授权机制以便使用OAuth 2.0认证插件验证客户端的身份并授权客户端访问
PROXY_CLIENT_SECRET=<CLIENT_SECRET> \ -e OAUTH2_PROXY_COOKIE_SECRET=<COOKIE_SECRET> \ quay.io/oauth2
类似于oauth2-proxy这类反向代理验证方案,TinyAuth同样能实现统一登录入口与第三方认证对接。但它更轻量、部署更简单,且无需复杂的反向代理规则。