博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为Kubernetes中任意应用添加基于oauth2的认证保护 (下)
阅读量:6351 次
发布时间:2019-06-22

本文共 1921 字,大约阅读时间需要 6 分钟。

本文是的下篇,将图文详解如何使用基于的为自身本没有认证授权功能的Web站点实现认证及授权。

示例是使用的服务作为K8S环境。鉴于K8S的应用运行时属性,该示例也可以部署在其他云厂商托管的K8S。

示例模块简介

  • 为K8S集群内Web应用提供反向代理,以及支持外部认证。
  • 简单的Web站点,基于。该站点默认没有认证及授权功能,使用外部应用作为认证及授权。
  • 提供基于应用的扫码认证及授权,只有认证且授权的用户才可以访问上面的Web站点。

默认设定

  • Web站点域名web.kane.mx
  • 认证服务域名oauth.kane.mx

准备环境

  1. 。由于服务是LoadBalancer类型,EKS创建NLB或ELB对应的targets时需要targets部署在public VPC subnets,所以为了简化部署EKS集群的VPC subnets都选择public subnet。新建的EKS集群允许公开访问。
  2. 用于远程管理集群。

钉钉应用准备

  1. 为企业或组织开通
  2. 创建一个新的。回调域名填写<http or https>/<认证服务域名>/oauth2/callback。记录下来应用的appIdappSecret
  3. 创建一个。地址可以随意设置。服务器出口IP设置为EKS集群中工作节点的公网IP或者NAT EIP,取决于工作节点如何访问Internet。并记录下来应用appKeyappSecret

部署示例应用

  1. 克隆部署脚本。
  2. 替换values.yaml中的dingtalk_corpid为工作台应用的appKeydingtalk_corpsecret为工作台应用的appSecret

由于社区维护的并不支持dingtalk扩展的SECRET ENV,所以将密钥配置到了configmap中。用于生产环境的话,建议按使用secret保存应用secret。

oauth2-proxy:  config:    clientID: aaa    clientSecret: bbb    cookieSecret: ccc    configFile: |+      email_domains = [ "*" ]      cookie_domain = "kane.mx"      cookie_secure = false      dingtalk_corpid = "
" dingtalk_corpsecret = "
"

如果仅希望企业部分部门的员工可以获得授权,在上面configFile配置下添加如下配置,

dingtalk_departments = ["xx公司/产品技术中心","xx公司/部门2/子部门3"]
  1. 替换部署应用的域名为你的域名。
  2. 执行以下命令安装Helm部署依赖。
helm dep up
  1. 执行以下命令部署nginx ingress controller, web应用以及oauth2 proxy
helm upgrade --install -f values.yaml --set oauth2-proxy.config.clientID=
<移动应用appid>
,oauth2-proxy.config.clientSecret=
<移动应用appsecret>
site-with-auth --wait ./

如果集群中已经部署了Nginx Ingress Controller,修改values.yaml如下将忽略部署Nginx ingress,

affinity: {}nginx-ingress:  enabled: false  controller:    ingressClass: nginx    config:
  1. 部署成功后,获取ELB地址。
kubectl get svc -o jsonpath='{ $.status.loadBalancer.ingress[*].hostname }' 
-nginx-ingress-controller;echoa3afe672259c511e98e2a0a0d88fda3e-xx.elb.ap-southeast-1.amazonaws.com

部署成功后配置

将站点和oauth服务域名解析到上面部署创建的ELB上。

测试

访问Web站点(如本示例中的http://web.kane.mx),未授权的情况下,调转到钉钉应用扫码登录界面。使用组织内成员的钉钉扫码授权后,将跳转回Web站点应用,可以正常浏览该域名下的页面。

转载地址:http://dytla.baihongyu.com/

你可能感兴趣的文章
ubuntu一些脚本的执行顺序
查看>>
类继承的结构
查看>>
Intel 被 ARM 逼急了
查看>>
testng + reportng 测试结果邮件发送
查看>>
神操作:如何将Vim变成一个R语言IDE
查看>>
百度亮相iDASH,推动隐私保护在人类基因组分析领域的应用
查看>>
比特币暴涨拉升至1w美元以上,说比特币崩盘的专家要失望了
查看>>
Python「八宗罪」
查看>>
你的隐私还安全吗?社交网络中浏览历史的去匿名化
查看>>
NeurIPS 2018|如何用循环关系网络解决数独类关系推理任务?
查看>>
Windows 10 份额突破 40%,Windows 7 连跌四月终回升
查看>>
怎么把Maven项目转为动态Web项目?
查看>>
Arm发布Cortex-A76AE自动驾驶芯片架构,宣示车载系统市场主权
查看>>
FreeBSD ports中make可带有的参数(转)
查看>>
Hibernate入门教程
查看>>
Java支付宝扫码支付[新]
查看>>
SpringMVC 拦截器 筛选
查看>>
CronExpression介绍
查看>>
第十八章:MVVM(八)
查看>>
点击表头切换升降序排序方式
查看>>