ambassador 学习二 认证

ambassador 可以在请求路由之前进行认证处理,一般的我们可能会使用第三方的认证服务

基本的环境安装可以参考相关文档

安装&&运行qotm 服务

可以参考官方文档,或者https://github.com/rongfengliang/ambassador-learning

安装运行认证服务

  • demo 地址
https://github.com/datawire/ambassador-auth-service
  • 运行(我使用k8s 运行)
---
apiVersion: v1
kind: Service
metadata:
  name: example-auth
spec:
  type: ClusterIP
  selector:
    app: example-auth
  ports:
  - port: 3000
    name: http-example-auth
    targetPort: http-api
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: example-auth
spec:
  replicas: 1
  strategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: example-auth
    spec:
      containers:
      - name: example-auth
        image: datawire/ambassador-auth-service:1.1.1
        imagePullPolicy: Always
        ports:
        - name: http-api
          containerPort: 3000
        resources:
          limits:
            cpu: "0.1"
            memory: 100Mi
kubectl apply -f https://www.getambassador.io/yaml/demo/demo-auth.yaml

认证配置服务说明

  • 认证服务监听的端口3000
  • 认证服务请求起始是 /extauth/;
  • /qotm/quote/ 开头的请求都会进行basic auth
  • 请求只允许用户名密码格式
  • 同时需要一个x-qotm-session header

auth 服务配置

---
apiVersion: v1
kind: Service
metadata:
  name: example-auth
  annotations:
    getambassador.io/config: |
      ---
      apiVersion: ambassador/v0
      kind:  AuthService
      name:  authentication
      auth_service: "example-auth:3000"
      path_prefix: "/extauth"
      allowed_headers:
      - "x-qotm-session"
spec:
  type: ClusterIP
  selector:
    app: example-auth
  ports:
  - port: 3000
    name: http-example-auth
    targetPort: http-api
使用官方提供的配置文件
kubectl apply -f https://www.getambassador.io/yaml/demo/demo-auth-enable.yaml

测试服务

  • 服务部署状态
  • 测试
    没有使用用户密码

    使用用户密码

说明

总的来说还是比较简单的,同时比较方便

参考资料

https://www.getambassador.io/user-guide/auth-tutorial
https://github.com/rongfengliang/ambassador-learning

posted on   荣锋亮  阅读(532)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2017-07-05 转发 Java火焰图在Netflix的实践
2017-07-05 转发 GSLB概要和实现原理
2017-07-05 通过openresty && tengine && nginx 动态添加资源到 html 页面
2015-07-05 将内网映射到外网的工具

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示