java 板


LINE

※狀況概述: 最近在研究 Spring Security 和 OAuth2 授權 目前的需求情境是:存取 API 需要登入 而 token 會儲存在 client,每次呼叫 API 時傳送該 token 登入可以使用註冊的帳密,也可以透過第三方登入 使用帳密登入,目前登入驗證成功後,會建立一個 JWT 回傳至 client 而第三方登入,Spring Security 的 OAuth2 filter 會從導頁至登入頁,到取得 access token 直接處理完 並且把 access token 和其它資訊存在 session 的樣子 目前 client 的開發人員是決定由他自己去取得 access token 第一個問題是 1. client 直接取得第三方的 access token 存取 API 時,server 需要驗證該 access token 是否有效 然後不希望每次 request 都要重驗 access token 有效性 驗證成功後建個 mapping 儲存在 cache 2. client 只要取得 authentication code 就好 再由 server 拿 code 去換 access token server 成功取得 access token 後儲存在 cache 想請問實務上的實做方式是哪種?或是是其它方式? 第二個問題是 目前只會存取自己 web 的服務,不需要存取第三方的 API 那不管問題一如何取得 access token 是否可以重新建一個 JWT 給 client 例如我希望 token 的有效期限是 30 分鐘 從第三方的 token 取得需要的資訊,然後重新建一份 JWT 給 client 每次 request 檢查是否過期,再決定是 server 直接重取 或是請 user 再重新登入 以前都是碰 Struts2 / Spring MVC + JSP 的環境 現在對於 SPA / APP + RESTful API 的開發模式蠻陌生的 還有很多問題需要犛清,不過還是想先確認上述二個問題實做是否有誤 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.69.88 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/java/M.1593227626.A.365.html
1F:→ ssccg: 2的多出server拿code換token是避免access token流到client 06/27 15:07
2F:→ ssccg: 提昇安全性(例如防止XSS攻擊偷走token),因為code換token會 06/27 15:08
3F:→ ssccg: 再驗證一次是合法的server 06/27 15:10
請問是建議第2個方式比較好嗎 因為我們client開發人員認為他直接去拿第三方access token就好了 而server端基於不信任client傳來的資料,是一定要再驗證過的 若第三方的access token 被 user 以外的管道拿到 表示該管道就可以呼叫第三方的API取得user的資料了的意思 所以還是client拿code,讓server去換access token比較好嗎
4F:→ ssccg: 第二個問題,基本上確認token正確後,本來server端就可以用 06/27 15:11
5F:→ ssccg: 自己的登入方式處理,你要另發server自己的JWT token或傳統 06/27 15:11
6F:→ ssccg: 的http session都可以,本來就不會只靠access token 06/27 15:12
7F:→ ssccg: access token是還要存取第三方的resource server時才用的 06/27 15:16
會部署在多server的環境,所以選擇傳token的方式 session的方式沒做過在多server的環境,除非存資料庫吧 或是要查一下多server的session實做方式 還有很多安全性方面的問題要確認,先感謝了 ※ 編輯: jtorngl (114.43.69.88 臺灣), 06/27/2020 17:29:33
8F:→ ssccg: 主要還是看應用場景,最小授權原則,如果client沒必要直接 07/04 13:29
9F:→ ssccg: 用到access token就不要讓client端拿到 07/04 13:30
10F:→ ssccg: 如果沒有任何資訊會存在server session中的話,的確只用 07/04 13:31
11F:→ ssccg: token做成完全stateless會比較方便 07/04 13:31
12F:推 new122851: 跨多server的session管理可以用redis效率比存RDB好 08/01 18:20







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP