国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

這篇具有很好參考價值的文章主要介紹了使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1. Apache APISIX介紹

Apache APISIX 是 Apache 軟件基金會下的云原生 API 網(wǎng)關(guān),它兼具動態(tài)、實(shí)時、高性能等特點(diǎn),提供了負(fù)載均衡、動態(tài)上游、灰度發(fā)布(金絲雀發(fā)布)、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能。我們可以使用 Apache APISIX 來處理傳統(tǒng)的南北向流量,也可以處理服務(wù)間的東西向流量。同時,它也支持作為 K8s Ingress Controller 來使用。

1.1. 特色優(yōu)勢

n 多平臺支持:APISIX 提供了多平臺解決方案,它不但支持裸機(jī)運(yùn)行,也支持在 Kubernetes 中使用,還支持與 AWS Lambda、Azure Function、Lua 函數(shù)和 Apache OpenWhisk 等云服務(wù)集成。

n 全動態(tài)能力:APISIX 支持熱加載,這意味著你不需要重啟服務(wù)就可以更新 APISIX 的配置。請?jiān)L問為什么 Apache APISIX 選擇 Nginx + Lua 這個技術(shù)棧?以了解實(shí)現(xiàn)原理。

n 精細(xì)化路由:APISIX 支持使用 NGINX 內(nèi)置變量做為路由的匹配條件,你可以自定義匹配函數(shù)來過濾請求,匹配路由。

n 運(yùn)維友好:APISIX 支持與以下工具和平臺集成:HashiCorp Vault、Zipkin、Apache SkyWalking、Consul、Nacos、Eureka。通過 APISIX Dashboard,運(yùn)維人員可以通過友好且直觀的 UI 配置 APISIX。

n 多語言插件支持:APISIX 支持多種開發(fā)語言進(jìn)行插件開發(fā),開發(fā)人員可以選擇擅長語言的 SDK 開發(fā)自定義插件。

官方網(wǎng)站地址:https://apisix.apache.org/

2. MaxKey介紹

Dromara MaxKey社區(qū)以“安全連接、傳遞信任”為宗旨,專注于身份安全管理(IM)、單點(diǎn)登錄(SSO)和云身份認(rèn)證(IDaas)領(lǐng)域,將為客戶提供企業(yè)級的身份管理和認(rèn)證,提供全面的4A安全管理(指Account,Authentication,Authorization和Audit)。

為企業(yè)提供社區(qū)版IAM產(chǎn)品,減少企業(yè)建設(shè)IAM的成本;同時提供企業(yè)版的IAM咨詢和技術(shù)支持,從而提高客戶體驗(yàn)和降低企業(yè)內(nèi)部的自開發(fā)成本。

MaxKey單點(diǎn)登錄認(rèn)證系統(tǒng),諧音為馬克思的鑰匙寓意是最大鑰匙,是業(yè)界領(lǐng)先的IAM-IDaas身份管理和認(rèn)證產(chǎn)品;支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等標(biāo)準(zhǔn)協(xié)議;提供標(biāo)準(zhǔn)、安全和開放的用戶身份管理(IDM)、身份認(rèn)證(AM)、單點(diǎn)登錄(SSO)、資源管理和權(quán)限管理等;開源、安全、自主可控。

官方網(wǎng)站地址:https://www.maxkey.top/

3. MaxKey安裝配置

安裝的版本為v3.5.X,請參照官方安裝文檔

https://www.maxkey.top/zh/conf/tutorial.html

3.1. 登錄管理控制臺

登錄到MaxKey后臺管理

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

3.2. 應(yīng)用配置

進(jìn)入后臺“應(yīng)用管理”,編輯應(yīng)用

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

配置主要明細(xì)入下

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

配置對應(yīng)關(guān)系

序號

MaxKey

參數(shù)

備注

1

登錄地址

http://192.168.0.105:9080/protectweb

2

訪問協(xié)議

OAuth2.0

3

回調(diào)地址

http://192.168.0.105:9080/protectweb/callback

4

授權(quán)方式

authorization_code password ?client_credentials

5

適配

啟用

適配

6

適配器

OAuth2.0默認(rèn)適配器

適配器

3.3. 應(yīng)用訪問賦權(quán)

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

如果不在該列表內(nèi),可以“新增成員”

4. APISIX安裝配置

安裝的版本為v3.1,請參照官方安裝文檔

https://apisix.apache.org/zh/docs/apisix/installation-guide/

5. 場景示例?

開源的 API 網(wǎng)關(guān) Apache APISIX 支持使用 openid-connect 插件對接以上身份認(rèn)證服務(wù),APISIX 會將所有未認(rèn)證的請求重定向至身份認(rèn)證服務(wù)的登錄頁,當(dāng)?shù)卿洺晒?APISIX 會將獲取到的用戶信息發(fā)送至上游服務(wù)。

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

下圖為 OpenID Connect 協(xié)議交互流程:

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

在重定向階段(Redirect),IdP 將用戶重定向到一個預(yù)先配置好的重定向 URL(redirect_url),例如 http://192.168.0.105:9080/protectweb/callback。請注意:這是一個在 APISIX 中不存在的 API,它只用于捕獲相關(guān)的請求,并在 OIDC 邏輯中完成 Token 交換的功能。請不要使用這個地址作為觸發(fā) OIDC 插件重定向的條件,否則,它將返回如下錯誤:the error request to the redirect_uri path, but there's no session state found。

5.1. 相關(guān)術(shù)語?

1. Bearer Only: MaxKey支持賬戶密碼或 AccessToken 進(jìn)行身份認(rèn)證,若啟用 bearer_only 選項(xiàng),則僅允許通過 AccessToken 進(jìn)行認(rèn)證,該方式適用于服務(wù)之間的訪問認(rèn)證;

2. Inst: MaxKey中的 Inst相當(dāng)于一個租戶,不同 Inst 是相互隔離的,只能管理和驗(yàn)證它們所具有的用戶;

3. Scope:這是一種限制在訪問令牌(AccessToken)中聲明的角色的方法。例如,當(dāng)一個客戶端要求驗(yàn)證一個用戶時,客戶端收到的訪問令牌將只包含范圍明確指定的角色映射??蛻舳朔秶试S你限制每個單獨(dú)的訪問令牌的權(quán)限,而不是讓客戶端訪問用戶的所有權(quán)限;

4. User:User 是可以登錄到 MaxKey的用戶,可以思考下你所用過的 SSO 登錄服務(wù);

5. Client:客戶端是指想要使用 MaxKey來保護(hù)的服務(wù)。

5.2. 前置條件?

本示例使用 APISIX的默認(rèn)服務(wù) 作為上游服務(wù),它將返回請求中的所有內(nèi)容。

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

5.3. 場景一:使用賬戶密碼保護(hù)上游服務(wù)?

本示例將引導(dǎo)客戶端到登陸頁通過賬戶密碼的方式進(jìn)行身份認(rèn)證:

5.3.1. 創(chuàng)建一條路由

APISIX登錄

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

路由創(chuàng)建,配置如下

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

{
 "_meta": {
 "disable": false
  },
 "bearer_only": false,
 "client_id": "ae20330a-ef0b-4dad-9f10-d5e3485ca2ad",
 "client_secret": "KQY4MDUwNjIwMjAxNTE3NTM1OTEYty",
 "discovery": "http://192.168.0.104/sign/authz/oauth/v20/1/.well-known/openid-configuration?client_id=ae20330a-ef0b-4dad-9f10-d5e3485ca2ad",
 "introspection_endpoint": "",
 "introspection_endpoint_auth_method": "",
 "logout_path": "/protectapi/logout",
 "realm": "1",
 "redirect_uri": "http://192.168.0.105:9080/protectweb/callback"
}

復(fù)制

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

5.3.2. 訪問未授權(quán)地址

訪問 http://192.168.0.105:9080/protectweb/ 時,由于未進(jìn)行登錄,因此將被引導(dǎo)到 MaxKey 的登錄頁面:

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

5.3.3. 授權(quán)應(yīng)用訪問

1、輸入賬號(admin)、密碼(maxkey)完成登錄后

2、成功跳轉(zhuǎn)到 http://192.168.0.105:9080/protectweb/ 頁面:

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

5.4. 場景二:使用 AccessToken 驗(yàn)證身份

通過啟用 bearer_only 參數(shù)對應(yīng)用之間的調(diào)用進(jìn)行身份認(rèn)證,此時應(yīng)用訪問 APISIX 時需攜帶 Authorization Header,否則該請求將被拒絕。

5.4.1. 創(chuàng)建一條路由

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

{
 "_meta": {
 "disable": false
  },
 "bearer_only": true,
 "client_id": "ae20330a-ef0b-4dad-9f10-d5e3485ca2ad",
 "client_secret": "KQY4MDUwNjIwMjAxNTE3NTM1OTEYty",
 "discovery": "http://192.168.0.104/sign/authz/oauth/v20/1/.well-known/openid-configuration",
 "introspection_endpoint": "http://192.168.0.104/sign/authz/oauth/v20/introspect",
 "introspection_endpoint_auth_methods_supported": [
 "client_secret_basic"
  ],
 "logout_path": "/protectweb/logout",
 "realm": "1",
 "redirect_uri": "http://192.168.0.105:9080/protectweb/callback"
}

復(fù)制

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

5.4.2. 訪問未授權(quán)地址

未攜帶 X-Access-Token 訪問 Apache APISIX 時將返回 401 表明未經(jīng)授權(quán):

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

curl -X GET -i 'http://192.168.0.105:9080/protectapi/'

5.4.3. 調(diào)用 MaxKey API 獲取 AccessToken:

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

對應(yīng)命令入下

curl -X GET -i 'http://192.168.0.104/sign/authz/oauth/v20/token?grant_type=password&username=admin&client_id=ae20330a-ef0b-4dad-9f10-d5e3485ca2ad&client_secret=KQY4MDUwNjIwMjAxNTE3NTM1OTEYty&password=maxkey'

復(fù)制

5.4.4. 攜帶AccessToken訪問

將 AccessToken 放于 Authorization 頭中請求 APISIX(替換掉 ${AccessToken}),可以認(rèn)證成功:

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API

對應(yīng)命令入下

curl -X GET -H 'Authorization: Bearer 87d24b21-b9a5-472e-a405-e2ead4d1bb9f' -i 'http://192.168.0.105:9080/protectapi/'

復(fù)制

5.5. 場景三:上游服務(wù)解析 UserInfo 信息?

當(dāng)啟用 APISIX set_userinfo_header 配置后,認(rèn)證成功后回調(diào)請求將攜帶 X-Userinfo 請求頭,它包含了 User 的基本信息,可通過 base64_decode 獲得用戶內(nèi)容。

6. 常見問題

6.1. 為什么 APISIX 中 Cookie 值非常長?

因?yàn)?APISIX 會將 id_token、access_token、refresh_token 等值寫入 Cookie 中,因此整個 Cookie 內(nèi)容比較長。具體實(shí)現(xiàn)可閱讀 lua-resty-openidc 庫中設(shè)置 session 的邏輯。

6.2. 如何修改 Session 存儲的 Cookie 名稱、存儲位置?

目前 openid-connect 插件未提供自定義這部分配置的能力,因此可以使用 lua-resty-session 中提供的方法:通過 NGINX 變量的方式對其默認(rèn)配置進(jìn)行覆蓋。 此處借助 APISIX 提供的 NGINX 配置注入能力以實(shí)現(xiàn)覆蓋:通過在配置文件 {apisix}/conf/config.yaml 中添加這些代碼,可修改 Session 存儲 Cookie 的名稱:

nginx_config: http_server_configuration_snippet: | set $session_name "session_override";文章來源地址http://www.zghlxwxcb.cn/news/detail-462517.html

到了這里,關(guān)于使用開源 MaxKey 與 APISIX 網(wǎng)關(guān)保護(hù)你的 API的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ApiSix網(wǎng)關(guān)環(huán)境搭建及簡單使用(Windows)

    1. 安裝 docker-desktop 推薦文章:非常詳細(xì)的描述了安裝過程以及出現(xiàn)問題后的處理辦法https://docker.easydoc.net/doc/81170005/cCewZWoN/lTKfePfP 2. 啟動 docker 國內(nèi)鏡像加速 3.安裝apisix 官方文檔:https://apisix.apache.org/zh/docs/apisix/getting-started/ windows 下安裝只需要執(zhí)行這兩步即可( 注意第二條命

    2024年02月02日
    瀏覽(17)
  • VX-API-Gateway開源網(wǎng)關(guān)技術(shù)的使用記錄

    VX-API-Gateway開源網(wǎng)關(guān)技術(shù)的使用記錄

    官網(wǎng)地址 https://mirren.gitee.io/vx-api-gateway-doc/ 訪問 https://gitee.com/mirren/VX-API-Gateway/releases 下載最新的程序zip包 找個目錄解壓程序包 啟動程序bin目錄里的start.bat或start.sh 瀏覽器訪問5256端口 點(diǎn)擊進(jìn)入首頁后,會進(jìn)入 http://localhost:5256/static/Application.html 提示要登錄,默認(rèn)賬號是VXAd

    2024年02月14日
    瀏覽(18)
  • [運(yùn)維|中間件] Apache APISIX使用筆記

    Apache APISIX 是一個動態(tài)、實(shí)時、高性能的云原生 API 網(wǎng)關(guān),提供了負(fù)載均衡、動態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能。 官方文檔地址 快速安裝

    2024年02月14日
    瀏覽(22)
  • 快試試用 API Key 來保護(hù)你的 SpringBoot 接口安全吧!

    快試試用 API Key 來保護(hù)你的 SpringBoot 接口安全吧!

    來源:baeldung.com/spring-boot-api-key-secret 安全性在REST API開發(fā)中扮演著重要的角色。一個不安全的REST API可以直接訪問到后臺系統(tǒng)中的敏感數(shù)據(jù)。因此,企業(yè)組織需要關(guān)注API安全性。 Spring Security 提供了各種機(jī)制來保護(hù)我們的 REST API。其中之一是 API 密鑰。API 密鑰是客戶端在調(diào)用

    2024年02月13日
    瀏覽(20)
  • API 網(wǎng)關(guān) vs 負(fù)載均衡:選擇適合你的網(wǎng)絡(luò)流量管理組件

    API 網(wǎng)關(guān) vs 負(fù)載均衡:選擇適合你的網(wǎng)絡(luò)流量管理組件

    由于互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)數(shù)據(jù)的請求數(shù)節(jié)節(jié)攀升,這使得服務(wù)器承受的壓力越來越大。在早期的系統(tǒng)架構(gòu)中,通常使用負(fù)載均衡來將網(wǎng)絡(luò)流量平攤到多個服務(wù)器中,以此減輕單臺服務(wù)器的壓力。但是現(xiàn)如今,后端服務(wù)的種類在不斷地變多,每個種類的后端都以 API 的形式

    2024年02月11日
    瀏覽(25)
  • .NET 5 Web API 中JWT詳細(xì)教程:保護(hù)你的Web應(yīng)用

    第一部分: 理解JWT JSON Web Token(JWT)是一種在不同系統(tǒng)之間傳遞信息的安全方式。它由三部分組成:頭部(Header)、載荷(Payload)和簽名(Signature)。頭部包含加密算法和令牌類型等信息,載荷包含用戶的信息,簽名用于驗(yàn)證令牌的真實(shí)性。 安裝必要的包 在開始之前,我們

    2024年02月15日
    瀏覽(26)
  • API網(wǎng)關(guān):開源Apinto網(wǎng)關(guān)-上游服務(wù)篇(二)

    服務(wù)發(fā)現(xiàn)是一種分布式系統(tǒng)中的關(guān)鍵技術(shù),它能夠幫助應(yīng)用程序動態(tài)地發(fā)現(xiàn)和訪問依賴的服務(wù)實(shí)例,解決了服務(wù)實(shí)例分布在不同節(jié)點(diǎn)上的問題。通過服務(wù)發(fā)現(xiàn),應(yīng)用程序可以快速找到需要調(diào)用的服務(wù)實(shí)例的位置和元數(shù)據(jù)信息,并實(shí)現(xiàn)負(fù)載均衡和故障恢復(fù)等功能,從而提高分布

    2023年04月25日
    瀏覽(26)
  • 什么是API網(wǎng)關(guān),解釋API網(wǎng)關(guān)的作用和特點(diǎn)?解釋什么是數(shù)據(jù)流處理,如Apache Flink和Spark Streaming的應(yīng)用?

    API網(wǎng)關(guān)是一種在分布式系統(tǒng)中的組件,用于管理不同系統(tǒng)之間的通信和交互。API網(wǎng)關(guān)的作用是在不同系統(tǒng)之間提供統(tǒng)一的接口和協(xié)議,從而簡化系統(tǒng)之間的集成和互操作性。 API網(wǎng)關(guān)的特點(diǎn)包括: 路由和分發(fā)請求:API網(wǎng)關(guān)可以根據(jù)請求的URL、方法、參數(shù)等信息,將請求分發(fā)到

    2024年02月11日
    瀏覽(26)
  • 開源 API 網(wǎng)關(guān)的訪問策略(一)

    開源 API 網(wǎng)關(guān)的訪問策略(一)

    許多企業(yè)和組織面臨著網(wǎng)關(guān)訪問控制的挑戰(zhàn),因?yàn)閭鹘y(tǒng)的訪問控制方法往往過于笨重和繁瑣。這些方法可能涉及復(fù)雜的規(guī)則集、繁瑣的手動配置過程、缺乏靈活性和可擴(kuò)展性等問題。此外,隨著云計(jì)算和移動設(shè)備的廣泛應(yīng)用,訪問控制的復(fù)雜性和挑戰(zhàn)程度也不斷增加。因此,

    2024年02月09日
    瀏覽(20)
  • 分享 6 款 近期在研究的開源 API 網(wǎng)關(guān)

    隨著API越來越廣泛和規(guī)范化,對標(biāo)準(zhǔn)化、安全協(xié)議和可擴(kuò)展性的需求呈指數(shù)級增長。隨著對微服務(wù)的興趣激增,這一點(diǎn)尤其如此,微服務(wù)依賴于API進(jìn)行通信。API網(wǎng)關(guān)通過一個相對容易實(shí)現(xiàn)的解決方案來滿足這些需求。 也許最重要的是,API網(wǎng)關(guān)充當(dāng)用戶和數(shù)據(jù)之間的中介。AP

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包