在获取具有混合或授权代码流的访问令牌以使其远离浏览器之后,在(ASP.NET Core)OpenIdConnect中间件中使用SaveTokens = true似乎很愚蠢,以便它们最终再次进入浏览器。
使用中间件存储访问令牌的更好方法是什么?
答案 0 :(得分:1)
使用SaveTokens
中间件将令牌中的令牌与用户声明一起存储。虽然此cookie可能存储在浏览器中,但它受到保护,因此只有该应用程序才能读取它。浏览器或客户端代码无法读取cookie。所以他们并没有真正在浏览器中结束(就像他们使用隐式授权类型一样)。
否则,您需要做的是创建一个令牌存储,通过经过身份验证的用户或会话查找令牌。
ASP.NET Core Identity有一个表,用于为您可以查看的用户存储令牌,但这意味着您的所有应用程序都必须与ASP.NET Identity库集成,任何令牌都可以访问应用
答案 1 :(得分:0)
与隐式流程相比,有几个关键区别,这使得此流程更加安全:
它们最终以Secure
and HttpOnly
cookie的形式出现在浏览器中,这意味着它们是:
cookie也被加密,并且只能由ASP.NET Core服务器应用读取。因此,即使攻击者以某种方式获得了它们,要解密它们,也需要访问服务器或ASP.NET Core的数据保护提供程序使用的加密密钥。