• 第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地址

  • 相关阅读:
    [转载] 美团-云鹏: 写给工程师的十条精进原则
    Docker测试一个静态网站
    Docker容器访问外部世界
    Docker容器间通信
    Docker网络(host、bridge、none)详细介绍
    Docker的资源限制(内存、CPU、IO)详细篇
    esxi中CentOS7不停机加磁盘并扩容现有分区
    ESXI6.5安装CentOS7教程
    Linux查看占用CPU和内存的 的程序
    Centos7使用脚本搭建LVS的DR模式。
  • 原文地址:https://www.cnblogs.com/thinksjay/p/10780466.html
Copyright © 2020-2023  润新知