如何为客户端REST身份验证生成私钥/公钥对?

时间:2014-06-10 14:53:49

标签: java rest authentication cookies restlet

我使用Restlet框架来提供一些RESTful资源URI。我需要对每个操作进行身份验证,但我不想维护服务器端状态。 Restlet支持使用客户端Cookie进行身份验证,我通过在其中部署带有静态字符串的Cookie,然后尝试在其他请求期间查找该Cookie并通过匹配验证身份验证来亲自验证这一点cookie中的字符串。

但我现在不想写任何字符串,而是想写一些可以用于实际身份验证的内容。

那么我如何在Java中生成私有公钥对,以便私钥保存在代码中并且始终相同(即使在停止/启动Web应用程序之后),并且使用私有生成不同的公钥钥匙,我可以把它放入饼干?

1 个答案:

答案 0 :(得分:0)

我不是将REST用于RESTful应用程序的忠实粉丝。理论上,RESTful应用程序应该是无状态的,这意味着从请求请求客户端应始终告诉服务器需要发生什么,而不依赖于先前的请求。

话虽如此,我会在客户端发出的每个请求中执行身份验证。

您可以为每个请求执行多种不同类型的身份验证:

  • Basic Authentication - 我建议通过https执行此操作,以便密码永远不会以纯文本形式显示。
  • Mutual Authentication via Certificates - 这将要求客户端向服务器提供证明客户端身份的证书。这是进行身份验证的一种很好的方式,非常安全,但是当出现问题或有人在设置时没有注意时很难处理。要使一切正确,需要很好的细节,很容易搞砸。最后,证书最终到期,人们必须记住更新它们,主要的痛苦。
  • OAuth Authentication - OAuth是基本身份验证和相互身份验证的有趣替代方案。它基于令牌。从长远来看,更容易维护证书。

尽量不要过于担心每个请求的身份验证开销。与请求的其余部分相比,它应该非常小(希望如此)。