【发布时间】:2013-03-06 03:38:35
【问题描述】:
我们正在使用 Grails 框架构建一个 Restful 服务,并使用 Spring Security 插件为其提供安全性。当您想使用自定义授权标头进行身份验证时,我想与大家一起检查最佳方法。可以在此处阅读有关此方法的更多信息 Custom HTTP Authorization Header
在我的例子中,客户端 ID 和密码存储在 Ldap 中,并且标头带有 SHA1 加密。使用 Spring Security 实现这一点的最佳方法是什么?
我也在 Grails 邮件列表中问过同样的问题。
任何见解都会有所帮助。谢谢。
~阿比
【问题讨论】:
-
您的问题并不清楚您在问什么或您已经拥有什么。另外,SHA1 是干什么用的?散列您发送的身份验证数据不会增加任何安全性。
-
嗨,卢克,我们想扩展授权标头,而不是使用普通的 base64 编码。因此,我们使用 SHA1 加密。我们将 clientid 和 secret 作为纯文本存储在 LDAP 中。所以,我一直在寻找一种方法,我可以编写一个过滤器,该过滤器首先解密标头,然后针对 LDAP 进行身份验证。希望这能说明问题。
-
并非如此。如果攻击者截获了标头中的 SHA-hash,他们可以自己发送,因为它相当于用户名/密码。因此,它不会使您的身份验证比基本身份验证更安全。您需要使用 HTTPS。此外,您不应将密码作为纯文本存储在服务器端。
-
谢谢Luke,我明白你的意思了,我们正在使用Https并且还添加了盐。在这篇文章中,当您有自定义授权标头时,我正在研究一种使用 Spring Security 的方法。可以更改标头的确切内容以及解密方式。
-
盐也不会产生太大影响。 Salting 用于存储散列密码,但您将它们存储为纯文本。
标签: authentication grails spring-security http-headers sha1