AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Envoy Gateway:十分鐘搞定單點(diǎn)登錄(SSO)!

來(lái)源: 責(zé)編: 時(shí)間:2023-12-11 17:20:07 263觀看
導(dǎo)讀單點(diǎn)登錄(SSO)簡(jiǎn)化了用戶(hù)體驗(yàn),使用戶(hù)能夠在訪問(wèn)多個(gè)應(yīng)用時(shí)只需一次登錄。這提高了用戶(hù)滿(mǎn)意度,減少了密碼遺忘的風(fēng)險(xiǎn),同時(shí)增強(qiáng)了安全性。但是,實(shí)現(xiàn)單點(diǎn)登錄并不容易,需要應(yīng)用程序?qū)崿F(xiàn)和認(rèn)證服務(wù)器的交互邏輯,增加了應(yīng)用程序的

單點(diǎn)登錄(SSO)簡(jiǎn)化了用戶(hù)體驗(yàn),使用戶(hù)能夠在訪問(wèn)多個(gè)應(yīng)用時(shí)只需一次登錄。這提高了用戶(hù)滿(mǎn)意度,減少了密碼遺忘的風(fēng)險(xiǎn),同時(shí)增強(qiáng)了安全性。但是,實(shí)現(xiàn)單點(diǎn)登錄并不容易,需要應(yīng)用程序?qū)崿F(xiàn)和認(rèn)證服務(wù)器的交互邏輯,增加了應(yīng)用程序的開(kāi)發(fā)工作量。Envoy Gateway 在最新版本中的安全策略中提供了 OpenID Connect (OIDC) 的能力,采用 Envoy Gateway,無(wú)需對(duì)應(yīng)用做任何修改,在十分鐘內(nèi)即可立刻實(shí)現(xiàn)單點(diǎn)登錄。i2v28資訊網(wǎng)——每日最新資訊28at.com

什么是單點(diǎn)登錄(SSO) ?

SSO 是 英文 Single Sign-On 的縮寫(xiě),翻譯為中文即為單點(diǎn)登錄。當(dāng)采用單點(diǎn)登錄之后,用戶(hù)只需要登錄一次,就可以訪問(wèn)多個(gè)應(yīng)用系統(tǒng)。SSO 通常由一個(gè)獨(dú)立的身份管理系統(tǒng)來(lái)完成,該系統(tǒng)為每個(gè)用戶(hù)分配一個(gè)全局唯一的標(biāo)識(shí),用戶(hù)在登錄時(shí),只需要提供一次身份認(rèn)證,就可以訪問(wèn)所有的應(yīng)用系統(tǒng)。我們?cè)谑褂靡恍┚W(wǎng)站時(shí),經(jīng)常會(huì)看到“使用微信登錄”、“使用 Google 賬戶(hù)登錄”等按鈕,這些網(wǎng)站就是通過(guò) SSO 來(lái)實(shí)現(xiàn)的。i2v28資訊網(wǎng)——每日最新資訊28at.com

采用單點(diǎn)登錄有以下幾個(gè)好處:i2v28資訊網(wǎng)——每日最新資訊28at.com

  • ? 用戶(hù)只需要登錄一次,就可以訪問(wèn)多個(gè)應(yīng)用系統(tǒng),不需要為每個(gè)應(yīng)用系統(tǒng)都單獨(dú)登錄。
  • ? 應(yīng)用系統(tǒng)不需要自己實(shí)現(xiàn)用戶(hù)認(rèn)證,只需將認(rèn)證工作交給單點(diǎn)登錄系統(tǒng),可以大大減少應(yīng)用系統(tǒng)的開(kāi)發(fā)工作量。

圖片圖片i2v28資訊網(wǎng)——每日最新資訊28at.com

什么是 OpenID Connect (OIDC) ?

SSO 通常是通過(guò) OpenID Connect (OIDC) 1 來(lái)實(shí)現(xiàn)的。OIDC 是一個(gè)基于 OAuth 2.0 2 協(xié)議之上的身份認(rèn)證協(xié)議。i2v28資訊網(wǎng)——每日最新資訊28at.com

OAuth 2.0 協(xié)議本身是一個(gè)授權(quán)協(xié)議,OAuth 2.0 協(xié)議中的授權(quán)服務(wù)器(Authorization Server)負(fù)責(zé)對(duì)用戶(hù)進(jìn)行身份認(rèn)證,認(rèn)證成功后,授權(quán)服務(wù)器會(huì)向客戶(hù)端頒發(fā)一個(gè)訪問(wèn)令牌(Access Token),客戶(hù)端可以使用該令牌來(lái)訪問(wèn)該用戶(hù)的受保護(hù)的資源。例如用戶(hù)可以通過(guò) OAuth 2.0 授權(quán)一個(gè)第三方應(yīng)用訪問(wèn)其 Github 賬號(hào)下的代碼庫(kù)。Access Token 是一個(gè)透明的字符串,只有授權(quán)服務(wù)器才知道如何解讀??蛻?hù)端會(huì)在訪問(wèn)受保護(hù)資源時(shí)帶上 Acces Token,授權(quán)服務(wù)器根據(jù) Access Token 來(lái)判斷該請(qǐng)求是否有訪問(wèn)指定資源的權(quán)限。Access Token 只用于對(duì)資源訪問(wèn)進(jìn)行授權(quán),其中并沒(méi)有用戶(hù)身份信息。i2v28資訊網(wǎng)——每日最新資訊28at.com

OIDC 通過(guò)在 OAuth 2.0 協(xié)議之上增加了一個(gè) ID Token 來(lái)實(shí)現(xiàn)身份認(rèn)證。OIDC 的認(rèn)證過(guò)程和 OAuth 2.0 的認(rèn)證過(guò)程是一樣的,只是認(rèn)證服務(wù)器在對(duì)用戶(hù)認(rèn)證后向客戶(hù)端頒發(fā)的是一個(gè) ID Token 而不是 Access Token。ID Token 是一個(gè) JSON Web Token (JWT) 3,JWT Token 是一個(gè)標(biāo)準(zhǔn)的格式,其中包含了用戶(hù)的身份信息,例如用戶(hù)的唯一標(biāo)識(shí),用戶(hù)名,郵箱等,并且可以通過(guò)認(rèn)證服務(wù)器的公鑰進(jìn)行驗(yàn)證,因此可以代表登錄的用戶(hù)身份。OIDC 通過(guò) ID Token 來(lái)實(shí)現(xiàn)身份認(rèn)證,從而實(shí)現(xiàn)了單點(diǎn)登錄。i2v28資訊網(wǎng)——每日最新資訊28at.com

備注:由于篇幅有限,本文對(duì) OAuth 2.0 只做簡(jiǎn)單介紹,如果感興趣的話(huà),可以移步阮一峰老師的 OAuth 2.0 介紹 ? 系列文章進(jìn)一步了解協(xié)議的原理。i2v28資訊網(wǎng)——每日最新資訊28at.com

Envoy Gateway OIDC 認(rèn)證過(guò)程

Envoy Gateway 在最新版本中的安全策略中提供了 OIDC 的能力,可以通過(guò) OIDC 來(lái)實(shí)現(xiàn)單點(diǎn)登錄。OIDC 標(biāo)準(zhǔn)支持通過(guò) OAuth 2.0 中的 Authorization Code Flow,Implicit Flow,Hybrid Flow 三種方式來(lái)進(jìn)行身份認(rèn)證。Envoy Gateway 采用了其中最安全,也是最常用的 Authorization Code Flow ?。下圖展示了 Envoy Gateway OIDC 的認(rèn)證過(guò)程。i2v28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片i2v28資訊網(wǎng)——每日最新資訊28at.com

  • ? 當(dāng)用戶(hù)訪問(wèn)一個(gè)需要進(jìn)行 OIDC 認(rèn)證的 HTTPRoute 時(shí),Envoy Gateway 會(huì)檢查請(qǐng)求中是否有代表用戶(hù)身份的 ID Token,如果沒(méi)有,或者 Token 已經(jīng)過(guò)期,則會(huì)將請(qǐng)求重定向到 OIDC Provider 的認(rèn)證頁(yè)面。
  • ? 用戶(hù)在 OIDC Provider 的認(rèn)證頁(yè)面輸入用戶(hù)名和密碼等身份信息進(jìn)行認(rèn)證。認(rèn)證成功后,OIDC Provider 會(huì)將用戶(hù)重定向到 Envoy Gateway 的回調(diào)地址,并且?guī)弦粋€(gè) Authorization Code。
  • ? Envoy Gateway 收到 OIDC Provider 的回調(diào)請(qǐng)求后,會(huì)將 Authorization Code 發(fā)送給 OIDC Provider,OIDC Provider 根據(jù) Authorization Code 生成一個(gè) ID Token,并將 ID Token 返回給 Envoy Gateway。
  • ? Envoy Gateway 收到 ID Token 后,會(huì)將 ID Token 保存在一個(gè) Cookie 中,并將請(qǐng)求重定向到原來(lái)的 HTTPRoute。
  • ? 當(dāng)用戶(hù)再次訪問(wèn)該 HTTPRoute 時(shí),Envoy Gateway 會(huì)從 Cookie 中獲取 ID Token,驗(yàn)證該 ID Token 合法,并且未過(guò)期后,Envoy Gateway 會(huì)將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)。

從圖中可以看到,雖然 OIDC 單點(diǎn)登錄的過(guò)程比較復(fù)雜,但都是由 Envoy Gateway 來(lái)完成的。對(duì)于應(yīng)用程序來(lái)說(shuō),這個(gè)過(guò)程其實(shí)是無(wú)感知的,應(yīng)用程序無(wú)需修改任何代碼,就可以實(shí)現(xiàn)單點(diǎn)登錄。i2v28資訊網(wǎng)——每日最新資訊28at.com

采用 Envoy Gateway 為應(yīng)用實(shí)現(xiàn)單點(diǎn)登錄

采用 Envoy Gateway 可以簡(jiǎn)化應(yīng)用關(guān)于用戶(hù)登錄的實(shí)現(xiàn),應(yīng)用程序無(wú)需在代碼中實(shí)現(xiàn)和 OIDC Provicer 交互的相關(guān)邏輯,只需要在 Envoy Gateway 的安全策略中配置 OIDC 的相關(guān)參數(shù),在十分鐘內(nèi)可實(shí)現(xiàn)應(yīng)用的 OIDC SSO。下面我們通過(guò)一個(gè)例子來(lái)演示如何在 Envoy Gateway 中配置 OIDC。i2v28資訊網(wǎng)——每日最新資訊28at.com

配置 OIDC Provider

Envoy Gateway 支持所有實(shí)現(xiàn)了 OIDC 標(biāo)準(zhǔn)的 Identify Provider,包括 Google、微軟、Auth0、Okta、微信、微博等等。下面我們以 Google 賬戶(hù)登錄為例介紹如何為 Envoy Gateway 配置 OIDC SSO。i2v28資訊網(wǎng)——每日最新資訊28at.com

首先需要參照 Google 的 OpenID Connect 文檔 ? Google Cloud Platform 中創(chuàng)建一個(gè) OAuth Client ID。i2v28資訊網(wǎng)——每日最新資訊28at.com

打開(kāi) Google Cloud Console 的 Credentials 界面,點(diǎn)擊 Create Credentials -> OAuth client ID,然后選擇 Web application,輸入應(yīng)用的名稱(chēng),設(shè)置 Authorized redirect URLs 為 https://www.example.com/oauth2/callback,然后點(diǎn)擊 Create 按鈕創(chuàng)建 OAuth Client ID。i2v28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片i2v28資訊網(wǎng)——每日最新資訊28at.com

備注:Envoy Gateway 采用 %REQ(x-forwarded-proto)%://%REQ(:authority)%/oauth2/callback 作為默認(rèn)的 OIDC 回調(diào)地址,因此需要將 Authorized redirect URLs 設(shè)置為 https://www.example.com/oauth2/callback。i2v28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建成功后,會(huì)彈出一個(gè)頁(yè)面顯示創(chuàng)建的 OAuth client 的信息,記錄下其中的 Client ID 和 Client Secret,這兩個(gè)值將會(huì)用于后面的 Envoy Gateway 安全策略配置中。i2v28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片i2v28資訊網(wǎng)——每日最新資訊28at.com

配置 Envoy Gateway 安全策略

首先參照 Envoy Gateway Quickstart ? 安裝 Envoy Gateway 和例子程序。根據(jù) OIDC 規(guī)范的建議,Envoy Gateway 要求配置 OIDC 的 Listener 采用 HTTPS 協(xié)議,因此前參照 Secure Gateway ?為 Envoy Gateway 配置 HTTPS。i2v28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建一個(gè) Kubernetes Secret,用于存儲(chǔ) OAuth Client 的 Client Secret。i2v28資訊網(wǎng)——每日最新資訊28at.com

注意將 ${CLIENT_SECRET} 替換為上面創(chuàng)建的 OAuth Client 的 Client Secret。i2v28資訊網(wǎng)——每日最新資訊28at.com

$ kubectl create secret generic my-app-client-secret --from-literal=client-secret=${CLIENT_SECRET}secret "my-app-client-secret" created

然后在 Envoy Gateway 中配置 OIDC SSO,首先需要在 Envoy Gateway 中配置一個(gè)安全策略,該安全策略用于配置 OIDC SSO 的相關(guān)參數(shù)。i2v28資訊網(wǎng)——每日最新資訊28at.com

注意將 ${CLIENT_ID} 替換為上面創(chuàng)建的 OAuth Client 的 Client ID。i2v28資訊網(wǎng)——每日最新資訊28at.com

cat <<EOF | kubectl apply -f -apiVersion: gateway.envoyproxy.io/v1alpha1kind: SecurityPolicymetadata:  name: oidc-examplespec:  targetRef:    group: gateway.networking.k8s.io    kind: HTTPRoute    name: backend  oidc:    provider:      issuer: "https://accounts.google.com"    clientID: "${CLIENT_ID}.apps.googleusercontent.com"    clientSecret:      name: "my-app-client-secret"EOF

上面短短十來(lái)行配置就會(huì)將 OIDC SSO 應(yīng)用到名為 backend 的 HTTPRoute 上。這樣,當(dāng)客戶(hù)端請(qǐng)求訪問(wèn)該 HTTPRoute 時(shí),就會(huì)被重定向到 Google 頁(yè)面進(jìn)行用戶(hù)驗(yàn)證 。除了 HTTPRoute,Envoy Gateway 還支持將 SecurityPolicy 應(yīng)用到 Gateway 上,只要將 targetRef 指向 Gateway 即可。i2v28資訊網(wǎng)——每日最新資訊28at.com

驗(yàn)證單點(diǎn)登錄

如果集群有對(duì)外暴露的 LoadBalancer,可以直接通過(guò) LoadBalancer 的地址訪問(wèn) Envoy Gateway。如果集群沒(méi)有對(duì)外暴露的 LoadBalancer,可以通過(guò) Port-Forward 的方式將 Gateway 的端口映射到本地,例如:i2v28資訊網(wǎng)——每日最新資訊28at.com

export ENVOY_SERVICE=$(kubectl get svc -n envoy-gateway-system --selector=gateway.envoyproxy.io/owning-gateway-namespace=default,gateway.envoyproxy.io/owning-gateway-name=eg -o jsnotallow='{.items[0].metadata.name}')sudo kubectl -n envoy-gateway-system port-forward service/${ENVOY_SERVICE} 443:443

將 Envoy Gateway 的地址配置到 DNS 中,例如將 www.example.com 配置到 Envoy Gateway 的地址。i2v28資訊網(wǎng)——每日最新資訊28at.com

127.0.0.1 www.example.com

首先在瀏覽器中訪問(wèn) Envoy Gateway 的地址,例如 https://www.example.com,Envoy Gateway 會(huì)根據(jù) OIDC 的配置引導(dǎo)用戶(hù)進(jìn)行登錄。瀏覽器會(huì)跳轉(zhuǎn)到 Google 的登錄頁(yè)面。i2v28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片i2v28資訊網(wǎng)——每日最新資訊28at.com

輸入 Google 賬戶(hù)的用戶(hù)名和密碼,登錄成功后,會(huì)跳轉(zhuǎn)到應(yīng)用的首頁(yè)。i2v28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片i2v28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

單點(diǎn)登錄(SSO)簡(jiǎn)化了用戶(hù)體驗(yàn),使用戶(hù)能夠在訪問(wèn)多個(gè)應(yīng)用時(shí)只需一次登錄。但是,實(shí)現(xiàn)單點(diǎn)登錄并不容易,需要應(yīng)用程序?qū)崿F(xiàn)和認(rèn)證服務(wù)器的交互邏輯,增加了應(yīng)用程序的開(kāi)發(fā)工作量。Envoy Gateway 在最新版本中的安全策略中提供了 OpenID Connect (OIDC) 的能力,采用 Envoy Gateway 的安全策略,讓?xiě)?yīng)用程序無(wú)需修改任何代碼即可輕松實(shí)現(xiàn)基于 OIDC 的單點(diǎn)登錄(SSO)。i2v28資訊網(wǎng)——每日最新資訊28at.com

參考鏈接

  1. 1. OpenID Connect (OIDC) 1:https://openid.net/specs/openid-connect-core-1_0.html
  2. 2. OAuth 2.0 2:https://datatracker.ietf.org/doc/html/rfc6749
  3. 3. JSON Web Token (JWT)3:https://jwt.io
  4. 4. 阮一峰:OAuth 2.0 介紹?:https://www.ruanyifeng.com/blog/2019/04/oauth_design.html
  5. 5. Authorization Code Flow ? :https://datatracker.ietf.org/doc/html/rfc6749#section-4.1
  6. 6. Google OpenID Connect 文檔 ?:https://developers.google.com/identity/openid-connect/openid-connect
  7. 7. Envoy Gateway Quickstart ? :https://gateway.envoyproxy.io/latest/user/quickstart
  8. 8. Secure Gateway ?:https://gateway.envoyproxy.io/latest/user/secure-gateways

本文鏈接:http://www.tebozhan.com/showinfo-26-42228-0.htmlEnvoy Gateway:十分鐘搞定單點(diǎn)登錄(SSO)!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 熱門(mén)的消息隊(duì)列框架比較、使用方法、優(yōu)缺點(diǎn),提供示例代碼

下一篇: 并發(fā)情況如何實(shí)現(xiàn)加鎖來(lái)保證數(shù)據(jù)一致性?

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 6月安卓手機(jī)好評(píng)榜:魅族20 Pro蟬聯(lián)冠軍

    性能榜和性?xún)r(jià)比榜之后,我們來(lái)看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來(lái)源安兔兔評(píng)測(cè),收集時(shí)間2023年6月1日至6月30日,僅限國(guó)內(nèi)市場(chǎng)。第一名:魅族20 Pro好評(píng)率:95%5月份的時(shí)候魅族20 Pro就是
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開(kāi)始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無(wú)法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • JVM優(yōu)化:實(shí)戰(zhàn)OutOfMemoryError異常

    一、Java堆溢出堆內(nèi)存中主要存放對(duì)象、數(shù)組等,只要不斷地創(chuàng)建這些對(duì)象,并且保證 GC Roots 到對(duì)象之間有可達(dá)路徑來(lái)避免垃 圾收集回收機(jī)制清除這些對(duì)象,當(dāng)這些對(duì)象所占空間超過(guò)
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業(yè) 作者/李彥編輯/木魚(yú)拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁(yè)&ldquo;充值中心&rdquo;入口上線(xiàn)了本機(jī)生活界面。壹覽商業(yè)發(fā)現(xiàn),該界面目前主要
  • 當(dāng)家的盒馬,加速謀生

    來(lái)源 | 價(jià)值星球Planet作者 | 歸去來(lái)自己&ldquo;當(dāng)家&rdquo;的盒馬,開(kāi)始加速謀生了。據(jù)盒馬官微消息,盒馬計(jì)劃今年開(kāi)放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 小米MIX Fold 3下月亮相:今年唯一無(wú)短板的全能折疊屏

    這段時(shí)間以來(lái),包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都有新的進(jìn)展,其中榮耀、三星都已陸續(xù)發(fā)布了最新的折疊屏旗艦,尤其號(hào)榮耀Magi
  • 聯(lián)想的ThinkBook Plus下一版曝光,鍵盤(pán)旁邊塞個(gè)平板

    ThinkBook Plus 是聯(lián)想的一個(gè)特殊筆記本類(lèi)別,它在封面放入了一塊墨水屏,也給人留下了較為深刻的印象。據(jù)有人爆料,聯(lián)想的下一款 ThinkBook Plus 可能更特殊,它
  • 蘋(píng)果MacBook Pro 2021測(cè)試:仍不支持平滑滾動(dòng)

    據(jù)10月30日9to5 Mac 消息報(bào)道,蘋(píng)果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后獲得了不錯(cuò)的評(píng)價(jià),亮點(diǎn)包括行業(yè)領(lǐng)先的性能,令人印象深刻的電池續(xù)航,精美豐
  • Meta盲目擴(kuò)張致超萬(wàn)人被裁,重金押注元宇宙而前景未明

    圖片來(lái)源:圖蟲(chóng)創(chuàng)意日前,Meta創(chuàng)始人兼CEO 馬克&middot;扎克伯發(fā)布公開(kāi)信,宣布Meta計(jì)劃裁員超11000人,占其員工總數(shù)13%。他公開(kāi)承認(rèn)了自己的預(yù)判失誤:&ldquo;不僅
Top