Web Services 使用简单的标记字符串保护Web服务端点是否是一个好的实践?

lfapxunr  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(137)

我有一个Web应用程序,其中常规用户登录是通过SSO处理的。(这使我无法创建服务用户)
在这个应用程序中,我有一些不在任何用户范围内的Web服务端点。它们将由另一个应用程序触发并执行一些操作。
才是下面正确的做法。
1.标记字符串是手动创建的(因为简单)
1.令牌字符串存储在提供Web服务端点的系统的环境变量中,以及存储在调用这些端点的系统中。
1.每次调用时,都会进行简单的相等性检查-如果令牌不存在,则端点返回401。
我的方法简单吗?
我在这个主题上没有找到很多东西--我的方法来自moodle-webservice handling,在那里你在moodle中生成一个webservice令牌,并将它放在调用webservice的应用程序中。

ddarikpa

ddarikpa1#

对于没有高安全性要求的基本应用程序,这可能是可以的。
您可以做以下几件事(所有这些都会增加复杂性和/或成本):

  • 服务可以存储一个正确的密码哈希值(如bcrypt、pbkdf 2或argon 2),而不是实际的密码。这会有所帮助,因为如果它被泄露,实际的密钥不会丢失,攻击者仍然不能轻易调用服务。(但它已经被泄露,这不像用户密码会被重用,所以这取决于你的选择和威胁模型。)
  • 你可以把这个密钥存储在一个合适的库中,比如AWS Secrets Manager或Hashicorp Vault或类似的库中。这将使你能够在一个地方控制对密钥的访问,并审计密钥的使用(可能会对尝试发出警报等)。对库的访问仍然需要管理,但这很容易通过AWS上的角色来实现,例如,具有正确角色的示例可以访问密钥,而其他示例不能。

相关问题