保护Azure Active Directory B2C访问令牌和刷新令牌

时间:2019-04-04 00:42:49

标签: azure azure-active-directory access-token azure-ad-b2c refresh-token

我看过很多文章,解释了如何保护令牌以防止未经授权的攻击。 Microsoft针对msal.js的文档本身指定默认情况下将令牌存储在sessionStorage中。由于localStorage和sessionStorage都容易受到XSS攻击;你们用来保护这些令牌的方法有哪些?请记住,我希望不需要用户经常登录(我需要他们保持登录状态,以便我将要构建的chrome扩展程序与我的Web应用程序一起使用)。

我创建了两个单独的项目;一个用于我的应用程序api,另一个用于我的应用程序客户端。我正在使用.net Core 2.2和Angular7。我读过一些人们说使用httponly cookie的文章。在这方面,我的问题是;如何与Azure Active Directory B2C一起使用?我很困惑,所以如果有人可以清理一些东西,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

因此,我得出一个小结论,即在SPA(单页应用程序)中,通常会提供隐式授权。这意味着没有提供刷新令牌,因为无法将其安全地存储在浏览器中。仅访问令牌。访问令牌是短暂的;因此,如果攻击者得以保留,他只能在指定的时间内执行损害,并且更容易发现和缓解受到破坏的访问令牌。

因此,我的方法是使用localStorage并付出一定的努力来防止常见的跨站点脚本(XSS)攻击。至于chrome扩展程序,google提供了“ chrome.identity” api,该API声称可以安全地存储令牌,并提供一种安全的方式来获取和刷新令牌。 (src:https://www.informationsecuritybuzz.com/articles/security-and-privacy-best-practices-on-building-a-chrome-extension/

因此看来,通过chrome扩展,您可以维持一个长期存在的会话,但是由于SPA在浏览器中根本不存在安全性,因此任何会话都将受限于访问令牌本身的生存期。将要求用户重新认证。如果使用社交登录名,则对用户而言将是无缝的。

如果有人对我在这里所说的内容有任何疑问,请随时提出;否则,我会将这个问题标记为已回答,以供其他人进一步参考,并让自己将来有机会更新和提出与我前进的经历有关的问题。