我正在運行一個基于微服務的應用程式,其中有一些基本服務和一個使用IdentityServer4的Oauth令牌服務。我希望直接從入口控制器中使用身份服務進行令牌反省,我認為這似乎是被支持的(https://kubernetes.github.io/ingress-nginx/examples/auth/oauth-external-auth/)。- 然后根據用戶在應用層的角色,檢查他們是否被允許訪問各種服務。
我在自省回應中擁有寶貴的資訊,我希望在自省完成后從我的入口控制器中將這些資訊傳遞給我的不同服務(角色、用戶名、電子郵件等)。在ingress-nginx中使用oauth的檔案相當缺乏。我想知道是否有人知道這是否被支持,如果被支持,我如何去實作它。
uj5u.com熱心網友回復:
我最近對NGINX和Kong做了同樣的研究,得出了這樣的結論:
- 首先使用一個通用的入口/負載平衡器 。
- 其次是一個反向代理/API網關,用于某些路由 。
- 然后是實際的后端API 。
你將能夠隨心所欲地定制第二層,例如定制nginx.conf檔案和添加LUA插件。
但是第一層傾向于使用自己的nginx模板,與默認的模板有很大不同。每當你暴露一個新的Kubermetes服務時,一個新的ingress模板實體就會被啟動。實際上,ingress是一個與反向代理不同的服務器角色,并不意味著可以以同樣的方式進行定制。
在Curity,我們做了很多與OAuth相關的作業,我建議通過以下方式實作你的目標:
在Curity,我們做了很多與OAuth相關的作業。
- 不要管入口 。
- 在入口之后的反向代理層中進行自省,這樣你就可以通過 LUA 腳本添加你的自省(和任何其他)邏輯。OpenResty 和 Kong Open Source 都是不錯的選擇。 。
- 我們將此稱為phantom token 模式 。
- 這里有一個例子LUA 實施,您可以插入其中 - 請注意,結果快取是解決方案的一個重要部分,以確保良好的性能 。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/329640.html
標籤:
