zoukankan      html  css  js  c++  java
  • 第33章 密码学(Cryptography),密钥(Keys)和HTTPS

    IdentityServer依赖于几个加密机制来完成它的工作。

    33.1 令牌签名和验证

    IdentityServer需要非对称密钥对来签署和验证JWT。此密钥对可以是证书/私钥组合或原始RSA密钥。无论如何,它必须支持带有SHA256的RSA。

    加载签名密钥和相应的验证部分是通过实现ISigningCredentialStoreIValidationKeysStore来完成的。如果要自定义加载密钥,可以实现这些接口并将其注册到DI。

    DI构建器扩展有几种方便的方法来设置签名和验证密钥 - 请参阅此处

    33.2 签名密钥翻转

    虽然一次只能使用一个签名密钥,但您可以将多个验证密钥发布到发现文档。这对于密钥翻转很有用。

    翻转通常如下所示:

    1. 您请求/创建新的密钥材料
    2. 除了当前的验证密钥之外,还要发布新的验证密钥。您可以使用AddValidationKeys构建器扩展方法。
    3. 所有客户端和API现在都有机会在下次更新发现文档的本地副本时了解新密钥
    4. 在一定时间(例如24小时)之后,所有客户端和API现在都应接受旧密钥材料和新密钥材料
    5. 只要你愿意,就可以保留旧的密钥材料,也许你有需要验证的长寿命代币
    6. 当旧密钥材料不再使用时,将其退出
    7. 所有客户端和API将在下次更新发现文档的本地副本时“忘记”旧密钥

    这要求客户端和API使用发现文档,并且还具有定期刷新其配置的功能。

    33.3 数据保护

    ASP.NET Core中的Cookie身份验证(或MVC中的防伪)使用ASP.NET Core数据保护功能。根据您的部署方案,这可能需要其他配置。有关更多信息,请参阅Microsoft文档

    33.4 HTTPS

    我们不强制使用HTTPS,但对于生产,它必须与IdentityServer进行每次交互。

    github地址

  • 相关阅读:
    @Autowired 注解是如何实现的?
    工作 3 年的同事不懂 isEmpty 和 isBlank 的区别,我真是醉了。。
    4 个单词,谷歌返回 16 个 SQL 注入漏洞...
    MySQL 更新不成功,事务问题搞清楚了吗?
    Python Web应用如何部署?
    mapbox加载postgis矢量切片
    tile2lon:地图瓦片编号与经纬度的换算关系
    shp2pgsql:将shapefile导入postgis数据库
    postgreSQL表添加ID自增列
    postgreSQL连接配置
  • 原文地址:https://www.cnblogs.com/thinksjay/p/10780466.html
Copyright © 2011-2022 走看看