我目前正在撰寫一個社交媒體后端服務器,它應該可以處理很多用戶。作為身份驗證機制,我們希望使用 Google 和 Apple 的 OIDC 身份驗證(使用 Apple 登錄)。
現在,當我們獲得一個不透明的訪問令牌時,我真的無法想象一種授權不透明訪問令牌的高性能方法,因為我們無法解碼令牌(不是 jwt 令牌),而且我們不知道發行者。
我的想法:
- 依次對訪問令牌進行一一授權。意義:
- 從谷歌獲取谷歌/用戶資訊
- 如果是 401,則獲取 Apple/userinfo
這是性能不佳的,因為處理時間越來越長,當我們添加更多 IDP 時
- 在獲取 /userinfo 端點之前,將頒發者保存在資料庫中并始終在身份驗證步驟中獲取用戶的頒發者
這樣性能更好,但感覺不太對,因為網路服務器必須進行 DB 呼叫 HTTP 呼叫才能授權來自客戶端的請求。
我是否缺少一種以高性能方式獲得它的方法?
順便說一句:網路服務器是一個使用 express.js 的 node.js 應用程式
非常感謝您的建議!
uj5u.com熱心網友回復:
這里的關鍵點foreign access tokens是不是為在您自己的后端授權而設計的。相反,您需要在登錄完成時發出自己的令牌。
授權服務器 (AS)
最標準的解決方案是讓您的應用程式與您擁有的 AS 對話,并由它為您管理社交登錄。然后,AS 將發布您可以完全自定義的令牌。
這將使您能夠完全控制范圍并宣告后端用于授權以及 UI 中的會話時間。無論用戶選擇哪種登錄方法,您的后端都將只使用 AS 頒發的訪問令牌。
當您需要添加新的登錄方法時,您只需更改 AS 配置,無需更改應用程式中的任何代碼。一個好的 AS 將支持與許多系統的集成,如本摘要頁面所示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313714.html
標籤:安全 验证 oauth-2.0 openid 连接 国内流离失所者
上一篇:python3安全問題,os.system('wget...')與urllib.request.urlopen(...)
