日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ambassador系列-09-AuthService认证服务

發(fā)布時間:2023/12/14 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ambassador系列-09-AuthService认证服务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Authservice使用外部服務(wù)來實現(xiàn)身份驗證和授權(quán)。簡單來說,Client向Ambassador網(wǎng)關(guān)發(fā)送的請求,都會被Ambassador攔截,Ambassador會將攔截的請求報文體去除,只將報文頭轉(zhuǎn)發(fā)給外部認(rèn)證服務(wù),外部認(rèn)證服務(wù)會進行身份驗證或者校驗token,如果合法將返回http狀態(tài)碼200,否則返回非200狀態(tài)碼。詳細(xì)流程如下:

  • AuthService是第一個調(diào)用的外部服務(wù)。Ambassador將http method和header都轉(zhuǎn)發(fā)給AuthService服務(wù),只做兩個缺省變更:
    • Content-Length請求頭被置為0.
    • 請求體body被移除。
  • 當(dāng)返回HTTP狀態(tài)碼200時,表示認(rèn)證或者校驗成功,允許繼續(xù)向上游服務(wù)請求,其它所有的狀態(tài)碼都將阻止請求繼續(xù)進行,直接返回給客戶端。
  • bypass_auth:在Mapping中配置屬性bypass_auth為true,禁用該mapping的身份驗證。
  • proto:外部認(rèn)證服務(wù)支持的協(xié)議類型,包括http和grpc,缺省為http。
  • include_body:是否包含報文體,缺省報文體會被去除。
    • max_bytes:傳遞給AuthService的報文體body的最大字節(jié)數(shù)。
    • allow_partial:如果為true,第一個最大字節(jié)數(shù)會被發(fā)送給AuthService,否則請求將被拒絕。
  • status_on_error:如果AuthService無法響應(yīng)時返回的狀態(tài)碼,缺省為403。
  • failure_node_allow:如果AuthService失敗時,請求是否允許轉(zhuǎn)到上游服務(wù),缺省為false。
  • 支持配置多個AuthService。

下面舉一例子。作者開發(fā)了一個簡單的SpringBoot應(yīng)用,該應(yīng)用在攔截器中接受username和password兩個參數(shù),如果username=admin并且password=123時,返回http狀態(tài)碼200,否則返回狀態(tài)碼403。此服務(wù)作為外部認(rèn)證服務(wù)。該服務(wù)已經(jīng)放到hub.docker.io中,存儲庫為twingao/auth-server:1.0.0。

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {#接受兩個參數(shù)String username = (String)request.getParameter("username");String password = (String)request.getParameter("password");#如果username = admin并且password = 123時,返回SC_OK,即http狀態(tài)碼200.if (username != null && password != null) {if (username.equals("admin") && password.equals("123")) {response.reset();response.setStatus(HttpServletResponse.SC_OK);PrintWriter pw = response.getWriter();pw.flush();pw.close();return false;}}#否則,返回SC_FORBIDDEN,即http狀態(tài)碼403.response.reset();response.setStatus(HttpServletResponse.SC_FORBIDDEN);response.setCharacterEncoding("UTF-8");response.setContentType("applcation/json;chartset=UTF-8");PrintWriter pw = response.getWriter();pw.write(JSONObject.toJSONString(new JsonResult(ResultCode.NOT_LOGIN, "forbidden", "auth failure.")));pw.flush();pw.close();return false; }

先將SpringBoot應(yīng)用部署到Kubernetes。

vi auth-server-service.yaml apiVersion: v1 kind: Service metadata:name: auth-servicelabels: name: auth-service spec:type: NodePortports:- port: 80name: httpprotocol: TCPtargetPort: 8080nodePort: 38080selector:name: auth-server --- apiVersion: apps/v1 kind: Deployment metadata:name: auth-server spec:replicas: 1selector:matchLabels:name: auth-servertemplate:metadata:labels: name: auth-serverspec:containers:- name: auth-serverimage: twingao/auth-server:1.0.0imagePullPolicy: IfNotPresentports:- containerPort: 8080kubectl apply -f auth-server-service.yaml

將auth-service設(shè)置為外部認(rèn)證服務(wù)AuthService。

vi auth-server-authservice.yaml --- apiVersion: getambassador.io/v1 kind: AuthService metadata:name: auth-server-authservice spec:auth_service: auth-service:80kubectl apply -f auth-server-authservice.yaml

假設(shè)echo服務(wù)已經(jīng)被部署,否則請參考Ambassador系列-01-介紹、安裝和使用。現(xiàn)在繼續(xù)訪問echo服務(wù)。

#沒有攜帶username和password參數(shù),禁止訪問 curl -i "http://192.168.1.50/foo" HTTP/1.1 403 Forbidden content-length: 69 content-type: text/plain lua-scripts-enabled: Processed date: Sat, 14 Dec 2019 04:17:28 GMT server: envoy{"code":"600","count":0,"data":"auth failure.","message":"forbidden"}#攜帶正確的username和password參數(shù),允許訪問 curl -i "http://192.168.1.50/foo/?username=admin&password=123" HTTP/1.1 200 OK date: Sat, 14 Dec 2019 04:22:32 GMT content-type: text/plain server: envoy x-envoy-upstream-service-time: 12 lua-scripts-enabled: Processed transfer-encoding: chunkedHostname: echo-768f499dc8-f64b2Pod Information:node name: k8s-node2pod name: echo-768f499dc8-f64b2pod namespace: defaultpod IP: 10.244.2.41Server values:server_version=nginx: 1.14.2 - lua: 10015Request Information:client_address=10.244.1.35method=GETreal path=//?username=admin&password=123query=username=admin&password=123request_version=1.1request_scheme=httprequest_uri=http://192.168.1.50:8080//?username=admin&password=123Request Headers:accept=*/*content-length=0host=192.168.1.50user-agent=curl/7.29.0x-envoy-expected-rq-timeout-ms=3000x-envoy-internal=truex-envoy-original-path=/foo/?username=admin&password=123x-forwarded-for=10.244.0.0x-forwarded-proto=httpx-request-id=5ee72824-4b25-4635-bba9-22cfa87f9d5cRequest Body:-no body in request-#攜帶的username和password參數(shù),但password值錯誤,禁止訪問 curl -i "http://192.168.1.50/foo?username=admin&password=1231" HTTP/1.1 403 Forbidden content-length: 69 content-type: text/plain lua-scripts-enabled: Processed date: Sat, 14 Dec 2019 04:24:03 GMT server: envoy{"code":"600","count":0,"data":"auth failure.","message":"forbidden"}

Ambassador系列文章

Ambassador系列-01-介紹、安裝和使用

Ambassador系列-02-Module模塊

Ambassador系列-03-服務(wù)配置和服務(wù)發(fā)現(xiàn)

Ambassador系列-04-服務(wù)配置Mapping

Ambassador系列-05-負(fù)載均衡

Ambassador系列-06-金絲雀發(fā)布、斷路器、CORS和流量鏡像

Ambassador系列-07-TCP映射TCPMapping

Ambassador系列-08-TLS配置-HTTPS重定向和TLS終結(jié)

Ambassador系列-09-AuthService認(rèn)證服務(wù)

Ambassador系列-10-RateLimitService限速服務(wù)

Ambassador系列-11-Helm安裝Ambassador Edge Stack 1.1.0

總結(jié)

以上是生活随笔為你收集整理的Ambassador系列-09-AuthService认证服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 青青草娱乐视频 | 高清国产午夜精品久久久久久 | 献给魔王伊伏洛基亚吧动漫在线观看 | 人妻少妇一区 | 亚洲乱码国产乱码精品精软件 | 成人教育av在线 | 日本一区高清 | 亚洲AV无码成人精品区在线观 | 古典武侠av | 99这里| 免费视频一区 | 成长快手短视频在线观看 | 天天操,夜夜操 | av色网站 | 福利在线一区 | 六月婷婷在线 | 欧美日韩免费观看视频 | 日韩免费观看 | 免看黄大片aa | 色爽爽爽| 欧美人与性动交xxⅹxx | 成人av电影网站 | www.日韩在线观看 | 夜夜高潮夜夜爽国产伦精品 | 欧美国产另类 | 免费黄网在线观看 | 超碰精品在线观看 | 日韩福利在线观看 | 日本无遮挡边做边爱边摸 | 99热一区二区三区 | 亚洲av第一成肉网 | 97人妻人人澡人人爽人人精品 | 中文字幕亚洲精品 | 麻豆视频免费看 | 欧美亚洲精品在线 | 四虎av在线| 亚洲第一成肉网 | 黄色av一级 | 久久国产主播 | 天天干天天玩 | 香蕉国产精品 | 国语对白一区二区 | 一区在线不卡 | 性开放淫合集 | 黑人vs日本人ⅹxxxhd | 午夜爽爽爽 | 日韩在线观看视频免费 | 免费一区二区三区四区 | 午夜电影一区 | 亚洲性在线 | 国产精品久久久久永久免费看 | 免费毛片在线播放 | 免费黄色网址视频 | 亚洲精品国产精品乱码不卡√香蕉 | 亚洲一区二区av | 久久久久久久久久久91 | 黄色片久久| 国产嫩草在线观看 | 青青草在线视频免费观看 | 美国毛片av | 在线看日韩 | 欧美有码在线观看 | 天天天天色| 亚洲视频在线观看网址 | 特黄特黄视频 | 久久国产色av | 国产精品一区av | 国产一区二区免费电影 | 黄频在线看 | 国产一区二区免费看 | 色婷婷精品国产一区二区三区 | 岛国a视频 | 国产黄色大片 | 国产成人+综合亚洲+天堂 | 国产精品入口66mio男同 | 国产精彩视频一区二区 | 中文字幕 视频一区 | 国产性久久 | 成人免费看类便视频 | 九九自拍| 日日爽夜夜操 | 好紧好爽再浪一点视频 | 亚洲一区美女 | 琪琪成人 | 善良的女邻居在线观看 | 国产精品欧美一区喷水 | 国产极品免费 | 少妇伦子伦精品无吗 | 久草电影在线 | 久久综合久久鬼色 | 成人公开免费视频 | 国产一级做a爰片久久毛片男 | 国产片一区二区三区 | 5级黄色片 | 日本aⅴ视频 | 欧美黄色小视频 | 国产精品自慰网站 | xx在线视频 | 久久密桃 |