gpt4 book ai didi

asp.net-core-2.0 - IdentityServer4 签名 key 、验证 key 和 .Net Core 数据保护

转载 作者:行者123 更新时间:2023-12-04 07:26:04 25 4
gpt4 key购买 nike

Identity Server 4 文档(此处为 http://docs.identityserver.io/en/latest/topics/crypto.html?highlight=data%20protection)讨论了签名 key 和验证 key 。我知道签名 key 是使用

AddSigningCredential(<X509Certificate2>)
并且有两个用于验证 key 的 API
AddValidationKey(<X509Certificate2>)
AddValidationKeys(<Microsoft.IdentityModel.Tokens.AsymmetricSecurityKey[]>)
该文档讨论了签名 key 翻转和向发现文档添加多个验证 key 。问题:
  • 何时将 AddValidationKey 与 X509Certificate2 一起使用?即使您使用的是 AddSigningCredential,您是否需要这样做?
  • “您请求/创建新的 key Material ”指的是什么?这是新证书吗?或者这是 Microsoft 数据保护 key ?
  • 什么是非对称安全 key ?有没有从 X509Certificate2 创建的方法?
  • 我们正在使用 cookie 身份验证 - ValidationKeys 是否与 Net Core 2.0 中存储的 PersistKeysToAzureBlobStorage 的 key 相同? ( https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.1&tabs=aspnetcore2x )
  • 最佳答案

    IdentityServer 使用非对称加密。非对称加密意味着你有一个公钥和一个私钥。公钥是共享的(显然)并且仅用于加密。私钥是私有(private)的。它应该受到严格的保护,从不共享,它是用来解密的。签名 key 是您的公钥,而验证 key 是您的私钥,所以是的,您需要两者。可以使用 X509Certicate,因为证书同时使用公钥和私钥,但最终,IdentityServer 只是使用证书来获取 key 。
    AddValidationKeys (复数)方​​法显式用于 key 翻转。例如,您的证书可能会在一年后过期(大多数情况下为默认值)。在该期限结束时,您将用新证书替换它。但是,客户端可能仍然拥有访问 token ,并且通过先前证书中的公钥进行了加密,并且 IdentityServer 将需要先前证书中的私钥来解密它。使用此方法,您可以添加以前的 key ,仅用于验证 IdentityServer 无法使用当前 key 验证的 Material 。

    数据保护确实是完全独立的。它也使用公钥和私钥来完成它的工作,因此从技术上讲,您也可以对 IdentityServer 使用相同的 key 。但是,最好将您的 key 限制在独特的用途上。这样,如果您确实受到了损害,您并没有完全受到损害,并且可以在一定程度上限制潜在泄漏的范围。

    关于asp.net-core-2.0 - IdentityServer4 签名 key 、验证 key 和 .Net Core 数据保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52080427/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com