【问题标题】:What data will be stored in the idsrv cookie of the IdentityServer4?IdentityServer4 的 idsrv cookie 中将存储哪些数据?
【发布时间】:2021-03-09 07:39:33
【问题描述】:

我想将 IdentityServer 用于我的单页应用程序的“身份验证部分”。我注意到生成了一些 cookie。因此,我阅读了 IdentityServer 的文档以获取有关 idsrv cookie 的更多信息。我能找到的唯一信息是“除了身份验证 cookie,IdentityServer 将发出一个额外的 cookie,默认名称为“idsrv.session”。这个 cookie 派生自主身份验证 cookie,它用于检查会话端点用于在注销时基于浏览器的 JavaScript 客户端。它与身份验证 cookie 保持同步,并在用户注销时被删除。 有人知道 idsrv cookie 中将存储哪些数据吗? 提前致谢!

【问题讨论】:

    标签: vue.js cookies identityserver4 idsrv


    【解决方案1】:

    idsrv.session cookie 很短,比如这个:

    Set-Cookie: idsrv.session=FEB09F3BA38A51C77FF680ACB11BBAFF; path=/; secure; samesite=none
    

    您可以在IssueSessionIdCookie方法中找到here的设置位置,该值只是一个随机会话ID。

    您可以在 CreateSessionIdAsync 中找到如何使用

    CryptoRandom.CreateUniqueId(16, CryptoRandom.OutputFormat.Hex));
    

    idsrv cookie cookie 由 cookie authenticationn 方案设置,该 cookie 通常包含登录用户的用户详细信息。包括关于该用户的一些声明。 cookie 使用数据保护 API 进行保护。

    因此,当您使用 openid connect 执行完整的身份验证周期时,您将与 IdentityServer 建立一个登录会话,并与您的客户端建立一个登录会话。

    希望能回答你的问题。

    【讨论】:

    • 谢谢。身份令牌的数据是否与 idsrv cookie 中的数据相同?
    • 对不起。我不明白。据我了解,身份令牌包含有关您是谁的信息,而访问令牌包含有关是否允许用户访问受保护资源的信息。那么为什么我需要 idsrv cookie?
    • idserv cookie 是必需的,例如,如果用户从一个应用程序转到另一个使用相同 IdentityServer 的应用程序,那么用户不需要再次登录,也许只需要同意需要新的范围。基本上,这就是我们获得单点登录体验的方式。否则,实现这一目标将更加困难。
    • 谢谢。我想我明白了。是否可以防止生成此 cookie?我想我不需要这个饼干。但是,如果仍然会生成 cookie,则用户必须通过弹出窗口或类似的方式接受使用 cookie。
    • 我不知道你可以自定义多少这个cookie或者这个cookie对于IdentityServer的操作来说是“如何”的。但一般来说,如果不接受 cookie,那么大部分网络都无法正常工作,因为登录需要 cookie。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    相关资源
    最近更新 更多