日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2023-12-11 17:20:07 253觀看
導讀單點登錄(SSO)簡化了用戶體驗,使用戶能夠在訪問多個應用時只需一次登錄。這提高了用戶滿意度,減少了密碼遺忘的風險,同時增強了安全性。但是,實現單點登錄并不容易,需要應用程序實現和認證服務器的交互邏輯,增加了應用程序的

單點登錄(SSO)簡化了用戶體驗,使用戶能夠在訪問多個應用時只需一次登錄。這提高了用戶滿意度,減少了密碼遺忘的風險,同時增強了安全性。但是,實現單點登錄并不容易,需要應用程序實現和認證服務器的交互邏輯,增加了應用程序的開發工作量。Envoy Gateway 在最新版本中的安全策略中提供了 OpenID Connect (OIDC) 的能力,采用 Envoy Gateway,無需對應用做任何修改,在十分鐘內即可立刻實現單點登錄。g2C28資訊網——每日最新資訊28at.com

什么是單點登錄(SSO) ?

SSO 是 英文 Single Sign-On 的縮寫,翻譯為中文即為單點登錄。當采用單點登錄之后,用戶只需要登錄一次,就可以訪問多個應用系統。SSO 通常由一個獨立的身份管理系統來完成,該系統為每個用戶分配一個全局唯一的標識,用戶在登錄時,只需要提供一次身份認證,就可以訪問所有的應用系統。我們在使用一些網站時,經常會看到“使用微信登錄”、“使用 Google 賬戶登錄”等按鈕,這些網站就是通過 SSO 來實現的。g2C28資訊網——每日最新資訊28at.com

采用單點登錄有以下幾個好處:g2C28資訊網——每日最新資訊28at.com

  • ? 用戶只需要登錄一次,就可以訪問多個應用系統,不需要為每個應用系統都單獨登錄。
  • ? 應用系統不需要自己實現用戶認證,只需將認證工作交給單點登錄系統,可以大大減少應用系統的開發工作量。

圖片圖片g2C28資訊網——每日最新資訊28at.com

什么是 OpenID Connect (OIDC) ?

SSO 通常是通過 OpenID Connect (OIDC) 1 來實現的。OIDC 是一個基于 OAuth 2.0 2 協議之上的身份認證協議。g2C28資訊網——每日最新資訊28at.com

OAuth 2.0 協議本身是一個授權協議,OAuth 2.0 協議中的授權服務器(Authorization Server)負責對用戶進行身份認證,認證成功后,授權服務器會向客戶端頒發一個訪問令牌(Access Token),客戶端可以使用該令牌來訪問該用戶的受保護的資源。例如用戶可以通過 OAuth 2.0 授權一個第三方應用訪問其 Github 賬號下的代碼庫。Access Token 是一個透明的字符串,只有授權服務器才知道如何解讀。客戶端會在訪問受保護資源時帶上 Acces Token,授權服務器根據 Access Token 來判斷該請求是否有訪問指定資源的權限。Access Token 只用于對資源訪問進行授權,其中并沒有用戶身份信息。g2C28資訊網——每日最新資訊28at.com

OIDC 通過在 OAuth 2.0 協議之上增加了一個 ID Token 來實現身份認證。OIDC 的認證過程和 OAuth 2.0 的認證過程是一樣的,只是認證服務器在對用戶認證后向客戶端頒發的是一個 ID Token 而不是 Access Token。ID Token 是一個 JSON Web Token (JWT) 3,JWT Token 是一個標準的格式,其中包含了用戶的身份信息,例如用戶的唯一標識,用戶名,郵箱等,并且可以通過認證服務器的公鑰進行驗證,因此可以代表登錄的用戶身份。OIDC 通過 ID Token 來實現身份認證,從而實現了單點登錄。g2C28資訊網——每日最新資訊28at.com

備注:由于篇幅有限,本文對 OAuth 2.0 只做簡單介紹,如果感興趣的話,可以移步阮一峰老師的 OAuth 2.0 介紹 ? 系列文章進一步了解協議的原理。g2C28資訊網——每日最新資訊28at.com

Envoy Gateway OIDC 認證過程

Envoy Gateway 在最新版本中的安全策略中提供了 OIDC 的能力,可以通過 OIDC 來實現單點登錄。OIDC 標準支持通過 OAuth 2.0 中的 Authorization Code Flow,Implicit Flow,Hybrid Flow 三種方式來進行身份認證。Envoy Gateway 采用了其中最安全,也是最常用的 Authorization Code Flow ?。下圖展示了 Envoy Gateway OIDC 的認證過程。g2C28資訊網——每日最新資訊28at.com

圖片圖片g2C28資訊網——每日最新資訊28at.com

  • ? 當用戶訪問一個需要進行 OIDC 認證的 HTTPRoute 時,Envoy Gateway 會檢查請求中是否有代表用戶身份的 ID Token,如果沒有,或者 Token 已經過期,則會將請求重定向到 OIDC Provider 的認證頁面。
  • ? 用戶在 OIDC Provider 的認證頁面輸入用戶名和密碼等身份信息進行認證。認證成功后,OIDC Provider 會將用戶重定向到 Envoy Gateway 的回調地址,并且帶上一個 Authorization Code。
  • ? Envoy Gateway 收到 OIDC Provider 的回調請求后,會將 Authorization Code 發送給 OIDC Provider,OIDC Provider 根據 Authorization Code 生成一個 ID Token,并將 ID Token 返回給 Envoy Gateway。
  • ? Envoy Gateway 收到 ID Token 后,會將 ID Token 保存在一個 Cookie 中,并將請求重定向到原來的 HTTPRoute。
  • ? 當用戶再次訪問該 HTTPRoute 時,Envoy Gateway 會從 Cookie 中獲取 ID Token,驗證該 ID Token 合法,并且未過期后,Envoy Gateway 會將請求轉發給后端服務。

從圖中可以看到,雖然 OIDC 單點登錄的過程比較復雜,但都是由 Envoy Gateway 來完成的。對于應用程序來說,這個過程其實是無感知的,應用程序無需修改任何代碼,就可以實現單點登錄。g2C28資訊網——每日最新資訊28at.com

采用 Envoy Gateway 為應用實現單點登錄

采用 Envoy Gateway 可以簡化應用關于用戶登錄的實現,應用程序無需在代碼中實現和 OIDC Provicer 交互的相關邏輯,只需要在 Envoy Gateway 的安全策略中配置 OIDC 的相關參數,在十分鐘內可實現應用的 OIDC SSO。下面我們通過一個例子來演示如何在 Envoy Gateway 中配置 OIDC。g2C28資訊網——每日最新資訊28at.com

配置 OIDC Provider

Envoy Gateway 支持所有實現了 OIDC 標準的 Identify Provider,包括 Google、微軟、Auth0、Okta、微信、微博等等。下面我們以 Google 賬戶登錄為例介紹如何為 Envoy Gateway 配置 OIDC SSO。g2C28資訊網——每日最新資訊28at.com

首先需要參照 Google 的 OpenID Connect 文檔 ? Google Cloud Platform 中創建一個 OAuth Client ID。g2C28資訊網——每日最新資訊28at.com

打開 Google Cloud Console 的 Credentials 界面,點擊 Create Credentials -> OAuth client ID,然后選擇 Web application,輸入應用的名稱,設置 Authorized redirect URLs 為 https://www.example.com/oauth2/callback,然后點擊 Create 按鈕創建 OAuth Client ID。g2C28資訊網——每日最新資訊28at.com

圖片圖片g2C28資訊網——每日最新資訊28at.com

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

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

圖片圖片g2C28資訊網——每日最新資訊28at.com

配置 Envoy Gateway 安全策略

首先參照 Envoy Gateway Quickstart ? 安裝 Envoy Gateway 和例子程序。根據 OIDC 規范的建議,Envoy Gateway 要求配置 OIDC 的 Listener 采用 HTTPS 協議,因此前參照 Secure Gateway ?為 Envoy Gateway 配置 HTTPS。g2C28資訊網——每日最新資訊28at.com

創建一個 Kubernetes Secret,用于存儲 OAuth Client 的 Client Secret。g2C28資訊網——每日最新資訊28at.com

注意將 ${CLIENT_SECRET} 替換為上面創建的 OAuth Client 的 Client Secret。g2C28資訊網——每日最新資訊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 中配置一個安全策略,該安全策略用于配置 OIDC SSO 的相關參數。g2C28資訊網——每日最新資訊28at.com

注意將 ${CLIENT_ID} 替換為上面創建的 OAuth Client 的 Client ID。g2C28資訊網——每日最新資訊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

上面短短十來行配置就會將 OIDC SSO 應用到名為 backend 的 HTTPRoute 上。這樣,當客戶端請求訪問該 HTTPRoute 時,就會被重定向到 Google 頁面進行用戶驗證 。除了 HTTPRoute,Envoy Gateway 還支持將 SecurityPolicy 應用到 Gateway 上,只要將 targetRef 指向 Gateway 即可。g2C28資訊網——每日最新資訊28at.com

驗證單點登錄

如果集群有對外暴露的 LoadBalancer,可以直接通過 LoadBalancer 的地址訪問 Envoy Gateway。如果集群沒有對外暴露的 LoadBalancer,可以通過 Port-Forward 的方式將 Gateway 的端口映射到本地,例如:g2C28資訊網——每日最新資訊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 的地址。g2C28資訊網——每日最新資訊28at.com

127.0.0.1 www.example.com

首先在瀏覽器中訪問 Envoy Gateway 的地址,例如 https://www.example.com,Envoy Gateway 會根據 OIDC 的配置引導用戶進行登錄。瀏覽器會跳轉到 Google 的登錄頁面。g2C28資訊網——每日最新資訊28at.com

圖片圖片g2C28資訊網——每日最新資訊28at.com

輸入 Google 賬戶的用戶名和密碼,登錄成功后,會跳轉到應用的首頁。g2C28資訊網——每日最新資訊28at.com

圖片圖片g2C28資訊網——每日最新資訊28at.com

總結

單點登錄(SSO)簡化了用戶體驗,使用戶能夠在訪問多個應用時只需一次登錄。但是,實現單點登錄并不容易,需要應用程序實現和認證服務器的交互邏輯,增加了應用程序的開發工作量。Envoy Gateway 在最新版本中的安全策略中提供了 OpenID Connect (OIDC) 的能力,采用 Envoy Gateway 的安全策略,讓應用程序無需修改任何代碼即可輕松實現基于 OIDC 的單點登錄(SSO)。g2C28資訊網——每日最新資訊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.www897cc.com/showinfo-26-42228-0.htmlEnvoy Gateway:十分鐘搞定單點登錄(SSO)!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 熱門的消息隊列框架比較、使用方法、優缺點,提供示例代碼

下一篇: 并發情況如何實現加鎖來保證數據一致性?

標簽:
  • 熱門焦點
  • 5月iOS設備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發布的iOS設備性能榜的上榜設備并沒有什么更替,僅僅只有跑分變化而產生的排名變動,剛剛開始的蘋果WWDC2023,推出的產品也依舊是新款Mac Pro、新款Mac Stu
  • 掘力計劃第 20 期:Flutter 混合開發的混亂之治

    在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。Flutter 基于自研的 Skia 引擎
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經知道了,就當作復習一下,古人云,溫故而知新嘛。現在,我們就開始今
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術的發展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應運而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 8月見!小米MIX Fold 3獲得3C認證:支持67W快充

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • OPPO K11評測:旗艦級IMX890加持 2000元檔最強影像手機

    【Techweb評測】中端機型用戶群體巨大,占了中國目前手機市場的大頭,一直以來都是各手機品牌的“必爭之地”,其中OPPO K系列機型一直以來都以高品質、
  • 蘋果140W USB-C充電器:采用氮化鎵技術

    據10 月 30 日 9to5 Mac 消息報道,當蘋果推出新的 MacBook Pro 2021 時,該公司還推出了新的 140W USB-C 充電器,附贈在 MacBook Pro 16 英寸機型的盒子里,也支
Top 主站蜘蛛池模板: 阿鲁科尔沁旗| 阜宁县| 景东| 罗山县| 定边县| 通江县| 年辖:市辖区| 共和县| 黔南| 华蓥市| 新干县| 塘沽区| 肇庆市| 南投县| 宣恩县| 嘉义市| 尼勒克县| 凤阳县| 恩平市| 柞水县| 信丰县| 政和县| 许昌市| 米脂县| 温泉县| 图片| 静乐县| 内丘县| 介休市| 秀山| 山东省| 南开区| 成武县| 淳安县| 沈阳市| 双柏县| 岳阳市| 万荣县| 湖北省| 靖西县| 依兰县|