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/cn.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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP