从后端重定向到前端时如何保护令牌

时间:2019-12-21 12:22:33

标签: rest api security authentication asp.net-core

场景

A -> 3rd Patry SMAL,domain-xyz.com

B ->我的应用后端(.net核心REST API),domain-b.com

C ->我的应用程序前端(反应应用程序),domain-c.com

当用户尝试登录 C 并重定向到 A 时,通过身份验证后, B 会发出一个令牌,该令牌在URL中添加到 C ,重定向从 B 发布到 C

它显示 C 中的URL,例如 domain-c.com/user_access_token ,并且该令牌用于使用 B 中的API

问题: URL中的可见令牌是一个问题,由安全测试人员报告

问题: 如何更改它以确保此模型安全?

请提出建议,谢谢!

1 个答案:

答案 0 :(得分:0)

您正在谈论的流称为隐式授予流,您可以在其中直接在前端获得令牌。对于您来说,响应类型将为token

现在的问题是如何使其更安全。我建议不要将响应类型设置为token,而应将其设置为响应类型code

这将为您提供前端的授权代码(而不是access_token),这对于试图窃取您的令牌的黑客来说是无用的。

现在,此代码已在C处接收,您将其发送到后端B。

立即使用client_id, client_secret对A进行授权呼叫,并收到code以获取access token。使用此访问令牌为用户创建会话。

有关更多信息,请参见:https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type#the-authorization-code-flow