我必须处理这种类型的身份验证流程:
答案 0 :(得分:0)
首先:OAuth 2.0不是身份验证协议,而是委托访问协议。这里明确说明:https://oauth.net/articles/authentication/
虽然被广泛采用,但OAuth 2.0"身份验证框架"留下许多细节可供解释 - 这通常会导致实施的安全漏洞。 点击此处查看OAuth 2.0中最常见的10个实施漏洞:http://blog.intothesymmetry.com/2015/12/top-10-oauth-2-implementation.html
因此,实际的最佳做法是使用OpenID Connect,一种类似的协议(构建于OAuth 2.0之上),定义良好,可以缓解OAuth 2.0的大部分缺点。
OpenID Connect是对最终用户(主要是网络)进行身份验证的最佳做法。
如果您想在数据中心内进行身份验证,那么使用的各种解决方案会更广泛 - 但总的来说,我认为最常见的最佳做法是:
在任何情况下,服务最好委派用户的请求(即通过提供user_id
作为请求的一部分) - 并且将对该用户强制执行权限: