为Kubernetes中任意应用添加基于oauth2的认证保护 (上)
企业随着业务的发展,必然会部署各种各样的IT系统。出于安全性的考虑,一些系统仅可企业内部使用,甚至仅开放给企业部分部门员工使用。
这些IT系统大致可分为两类,
- 系统本身不支持任何认证机制,例如资讯或文档类系统。需要增加认证保护,能够限制非企业员工访问即可。系统运维通常的做法是,为站点设置HTTP Basic认证保护。由于HTTP Basic认证是通过预设的用户、密码认证,认证信息比较容易泄露。即使定期更换密码,但需要额外的机制通知用户密码的变更,用户体验也不好。
- 系统自身支持认证,甚至支持多种认证机制。比如最常用的开源CI/CD工具,Jenkins内置支持本地数据库认证、通过插件支持多种第三方系统集成认证。如果大量的IT系统都有一套独立的用户管理,随着企业的员工的变更,用户的增删等操作对系统管理员来说是不小的工作量。同时,也很容易由于人为疏忽,造成资产、数据的安全隐患。
假设企业自身已经有了一套OA系统包含员工、组织结构管理,例如,国内目前最为普及流行的钉钉或企业微信。我们完全可以提供一套基于oauth 2.0协议的认证方式,让以上两类IT系统使用企业已有的OA系统(钉钉或企业微信)来实现登录认证。做到这一点后,企业无论有多少IT系统都不再需要额外管理用户的成本,并且也避免了数据安全隐患。
钉钉通过钉钉开放平台提供的API开放了许多钉钉内部的能力,例如,身份验证、通讯录管理等等。然而钉钉的三方网站登录接口并不是标准的oauth 2.0协议实现,我们需要通过一个oauth2 proxy代理工具实现将钉钉的三方网站登录兼容oauth2协议。同理,使用这个oauth2代理工具,可以使用Google、Facebook等三方网站作为统一认证方式。
有了基于钉钉的oauth2代理作为企业统一登录方式,对于上面两大类系统的认证需求解决方案分别如下,
- 部署在Kubernetes中无内置认证机制的Web应用,通过nginx-ingress的外部OAUTH认证实现基于oauth2的安全认证。
- Jenkins可以通过反向代理插件实现使用oauth2认证登录。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Cloud Toolkit 部署应用到阿里云经典网络 ECS (Eclipse)
在之前的文章《在 Eclipse 中部署 Java 应用到 阿里云 ECS》中讲解了如何将一个本地应用部署到阿里云 ECS 上去,有些读者反馈目前还有一些测试机器是在经典网络,咨询是否可以通过 Cloud Toolkit 插件将应用部署到这些服务器上去?最新版本的 Cloud Toolkit 已经发布,完全支持啦。 由于阿里云 ECS 云助手只能支持 VPC 网络机器,因此,经典网络只能通过Host模式手动添加机器,采用标准 SSH 协议来进行部署 添加服务器 如上图所示,在菜单 Alibaba Cloud - Alibaba Cloud View - Host中打开机器视图界面,如下图: 点击右上角Add Host按钮,出现添加机器界面 设置服务器的 SSH 账号 部署 在 IntelliJ IDEA 中,鼠标右键项目工程名,在出现的菜单中点
- 下一篇
为Kubernetes中任意应用添加基于oauth2的认证保护 (下)
本文是为Kubernetes中任意应用添加基于oauth2的认证保护的下篇,将图文详解如何使用基于钉钉认证的oauth2 proxy为自身本没有认证授权功能的Web站点实现认证及授权。 示例是使用的AWS EKS服务作为K8S环境。鉴于K8S的应用运行时属性,该示例也可以部署在其他云厂商托管的K8S。 示例模块简介 Nginx Ingress Controller为K8S集群内Web应用提供反向代理,以及支持外部认证。 简单的Web站点,基于Nginx docker容器。该站点默认没有认证及授权功能,使用外部钉钉应用作为认证及授权。 OAuth2 Proxy on Dingtalk提供基于钉钉应用的扫码认证及授权,只有认证且授权的用户才可以访问上面的Web站点。 默认设定 Web站点域名web.kane.mx 认证服务域名oauth.kane.mx 准备AWS EKS环境 创建EKS集群。由于Nginx Ingress服务是LoadBalancer类型,EKS创建NLB或ELB对应的targets时需要targets部署在public VPC subnets,所以为了简化部署EKS集群...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Hadoop3单机部署,实现最简伪集群