【问题标题】:How to generate private/public key pair for client-side REST authentication?如何为客户端 REST 身份验证生成私钥/公钥对?
【发布时间】:2014-07-31 09:40:09
【问题描述】:

我正在使用Restlet 框架来提供一些 RESTful 资源 URI。我需要对每个操作进行身份验证,但我不想维护服务器端状态。 Restlet 支持使用客户端 cookie 进行身份验证,我已经亲自验证了这一点,方法是部署一个包含静态字符串的 cookie,然后尝试在另一个请求期间找到该 cookie,并通过匹配内部字符串来验证身份验证饼干。

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

那么我如何在 Java 中生成一个私钥公钥对,这样私钥保存在代码中并且始终相同(即使在停止/启动 Web 应用程序之后),并且使用私钥生成不同的公钥密钥,然后我可以将其放入 cookie 中?

【问题讨论】:

    标签: java rest authentication cookies restlet


    【解决方案1】:

    我不太喜欢将 Cookie 用于 RESTful 应用程序。理论上 RESTful 应用程序应该是无状态的,这意味着从一个请求到另一个请求,客户端应该总是告诉服务器需要发生什么,而不依赖于先前的请求。

    话虽如此,我将对客户端发出的每个请求进行身份验证。

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 2023-03-19
      • 2017-10-24
      • 2017-11-08
      • 2015-08-20
      • 2012-10-27
      相关资源
      最近更新 更多