持久化承载令牌



我有一个c# CLI应用程序,需要在Windows上(使用相同的域用户)多次执行,可能在多个服务器上,在常规夜间处理的几分钟内。此应用程序需要来自身份验证服务器的承载令牌(有效期为一小时),以便访问本地网络上的服务。我已经实现了使用Http请求请求承载令牌的逻辑。

有一个问题,在DNS中有一个反ddos措施,这意味着在几分钟的窗口中,当这个应用程序被执行多次时,许多请求失败,因此应用程序失败。显而易见的解决方案是在调用之间以某种方式保留单个令牌,并在可用时使用它。否则重新发出http请求。

是否有一种安全的方法将这样的令牌存储在网络共享/服务上,这样它就只能被这个应用程序和/或呼叫用户访问?我不想在文件中留下明文承载令牌,因为这会给系统带来安全风险。

我发现了一些。net Core api,可以使用当前用户的一些信息来加密数据/文件,这意味着只有用户可以解密它。然而,它不限制每个应用程序的访问,所以有人可以把他们自己的应用程序放在我们的任务框架中,调用相同的API并解密令牌,如果他们想要的话。看起来不太安全。

在Windows上,您可以使用ProtectedData类来加密(Protect)和解密(UnProtect)数据

您可以使用DataProtectionScope.CurrentUser,这样,只有运行应用程序的用户才能解密。

相关内容

  • 没有找到相关文章

最新更新