【发布时间】:2017-12-21 21:19:48
【问题描述】:
我的应用程序必须使用用户 api key & api secret 在配置文件/管理中手动提供的使用从外部服务获取数据。
我想防止将这些必要的键查询大量检索到数据库并将其保存在其他地方(假设这些键不会更新得太频繁)。
在我看来,它可以通过下一个选项来实现:
- 将
MemoryCache提供程序与SlidingExpiration一起使用; - 创建自定义
Claim并将其附加到现有的Identity声明集合中;
如果我错了请纠正我,但如果我意识到它是正确的 - 声明的信息是数据的一部分,用于前端的序列化/反序列化后端交互(我不太有信心关于它,但假设它在 cookie 和令牌中使用)。
实际上,多个后台进程(例如消息队列消费者或计划作业)也需要这些密钥。
您是否介意让我知道一种以优化方式保存这些受保护和经常使用的字段的正确方法?
提前谢谢你。
【问题讨论】:
-
如果它是关于用户的描述性信息,那么将其添加为声明将是合适的。只是不要添加太多数据(例如超过 4kb)
-
安全角度如何?有没有办法在前端解密这些信息?
-
当声明存储在 auth cookie 中时,整个事情都被加密了,所以不,客户端看不到内容。
-
前端是否需要api key/secret?
-
不,前端不需要这些 api 密钥。它将仅在后端使用。
标签: asp.net asp.net-core asp.net-identity claims-based-identity