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

保护Azure Active Directory B2C访问令牌和刷新令牌,azure,azure-active-directory,access-token,azure-ad-b2c,refresh-token,Azure,Azure Active Directory,Access Token,Azure Ad B2c,Refresh Token,我遇到过很多文章,解释如何保护令牌以防止未经授权的攻击。msal.js的Microsoft文档本身指定默认情况下令牌存储在sessionStorage中。因为本地存储和会话存储都容易受到XSS攻击;你们使用了哪些方法来保护这些代币。请记住,我不希望要求我的用户必须频繁登录(我需要他们保持登录状态,以便使用我正在构建的chrome扩展来配合我的web应用) 我创建了两个独立的项目;一个用于我的应用程序api,另一个用于我的应用程序客户端。我使用的是.NETCore2.2和Angular7。我读过一

我遇到过很多文章,解释如何保护令牌以防止未经授权的攻击。msal.js的Microsoft文档本身指定默认情况下令牌存储在sessionStorage中。因为本地存储和会话存储都容易受到XSS攻击;你们使用了哪些方法来保护这些代币。请记住,我不希望要求我的用户必须频繁登录(我需要他们保持登录状态,以便使用我正在构建的chrome扩展来配合我的web应用)


我创建了两个独立的项目;一个用于我的应用程序api,另一个用于我的应用程序客户端。我使用的是.NETCore2.2和Angular7。我读过一些文章,其中有人说要使用httponly cookies。我在这方面的问题是:;这在Azure Active Directory B2C中是如何工作的?我很困惑,所以如果有人能澄清一些事情,我将不胜感激。

所以我得出了一个小小的结论,在SPA(单页申请)中,通常会有一个隐含的授权。这意味着没有提供刷新令牌,因为无法将其安全地存储在浏览器中。只有一个访问令牌。访问令牌的寿命很短;因此,如果攻击者获得了,他只能在指定的时间内进行破坏,并且受损的访问令牌更容易检测和缓解

因此,我的方法将是使用localStorage,并努力防止常见的跨站点脚本(XSS)攻击。至于chrome扩展,谷歌提供了“chrome.identity”api,声称可以安全地存储令牌,并提供获取和刷新令牌的安全方式。(src:)

因此,通过chrome扩展,您似乎可以维护一个长寿命的会话,但由于SPA在浏览器的真实环境中不存在安全性,因此任何会话都将被限制在访问令牌本身的生存期内。用户需要重新验证。如果使用社交登录,这对用户来说将是相当无缝的


如果有人看到我在这里所说的有任何问题,请随意参与;否则,我会将此问题标记为已回答,以供其他人进一步参考,并在将来提供有关我未来经历的更新和问题。

因此,我得出一个轻微的结论,即在SPA(单页申请)中,通常会提供隐式授权。这意味着没有提供刷新令牌,因为无法将其安全地存储在浏览器中。只有一个访问令牌。访问令牌的寿命很短;因此,如果攻击者获得了,他只能在指定的时间内进行破坏,并且受损的访问令牌更容易检测和缓解

因此,我的方法将是使用localStorage,并努力防止常见的跨站点脚本(XSS)攻击。至于chrome扩展,谷歌提供了“chrome.identity”api,声称可以安全地存储令牌,并提供获取和刷新令牌的安全方式。(src:)

因此,通过chrome扩展,您似乎可以维护一个长寿命的会话,但由于SPA在浏览器的真实环境中不存在安全性,因此任何会话都将被限制在访问令牌本身的生存期内。用户需要重新验证。如果使用社交登录,这对用户来说将是相当无缝的

如果有人看到我在这里所说的有任何问题,请随意参与;否则,我会将此问题标记为已回答,以供其他人进一步参考,并在将来提供有关我前进经验的更新和问题