IdentityServer4中的Cookie

Jon*_*nas 7 asp.net cookies identityserver4

有人可以解释在Identity Server4中成功登录后发送到用户浏览器的cookie的用途.另外我在底部有三个较小的相关问题.

客户端在Startup.cs文件中定义的ASP.NET Core中使用cookie中间件.

app.UseCookieAuthentication()
Run Code Online (Sandbox Code Playgroud)

很明显,Identity Server创建了哪些令牌以及ASP.NET Core中间件创建了哪些cookie,但我不确定每个cookie包含哪些内容.

ASP.NET Core中间件决定创建分块cookie可能是由于cookie大小(4050B + 865B).

我一直试图找到一种解密cookie的方法,使用ASP.NET Core提供的Data Protection API 读取值,没有任何运气.

  • idsvr
  • idsvr.session
  • .AspNetCore.coookie
  • .AspNetCore.coookieC1
  • .AspNetCore.coookieC2
  • .AspNetCore.Antiforgery.

Internet Explorer中的开发人员工具的屏幕截图

  1. 哪个cookie包含Identity Server发出的id_token,access_token?
  2. CookieName可用于更改ASP.NET核心中间件创建的cookie的名称,如果不同的客户端共享相同的cookie名称,还是需要单独的会话cookie?
  3. 可以使用Data Protection API 解密Identity Server Cookie 吗?

raw*_*wel 0

  1. AFAIK id_token、access_token 默认情况下不存储在 cookie 中。但如果需要,您可以将它们存储在会话 cookie(由 ASP.NET Core 中间件创建的 cookie)中。以下是如何使用 OpenID 连接 OWIN 中间件为具有混合流的身份服务器 3完成此操作。asp.net core 中间件也应该有类似的选项。

  2. 每个客户端可以有相同的 cookie 名称,但不要求他们这样做。顺便说一句,cookie 只能由创建它的客户端访问。

  3. 我不知道。