如何使用 NANCY 和 RESTsharp 在 .NET 中实现 REST 调用的安全性?

发布于 2024-12-21 02:05:08 字数 238 浏览 0 评论 0原文

如何向我的 REST 应用程序添加安全层,我可以控制我的服务器和客户端, 我使用 NANCY 作为服务器和 RESTsharp 作为客户端。

如果 REST 支持无状态,我很难理解如何确保调用安全。

谢谢

How do I add a security layer to my REST application, I am both in control of my server and client,
I am using NANCY as a server and RESTsharp as client.

I have hard time understanding how to make calls secure if REST support to be stateless.

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小霸王臭丫头 2024-12-28 02:05:08

克里斯蒂安的评论可能足以满足您的需求。它展示了如何使用 Nancy 加载项进行 Basic 或 FormsAuth,并且 RESTSharp 确实支持开箱即用的 Basic 身份验证。

我在工作中构建 Nancy 驱动的 REST API 已经有一段时间了,我们使用 RESTSharp 以及纯 HTML+JS 作为客户端,并且我们选择实现我们自己的基于会话的身份验证(部分原因是这些加载项我们实施时不存在)。然而它的好处是,无论客户端支持什么,它的使用都很简单。我将快速解释它是如何工作的。

客户端发送其用户名和密码(或者,如果您愿意,还可以发送标识符和密钥)以使用 POST /sessions(使用 HTTPS)创建新的会话资源。该资源包含一个可用于后续调用的会话密钥。会话在 X 分钟不活动后过期。

对服务的每次调用都需要有效的会话密钥(创建会话除外)。密钥以 cookie 或查询字符串的形式提供。使用 RESTSharp 时,我们通常将其设置为 cookie,并继续重复使用它,除非它过期。

最后,可以通过调用 DELETE /session/{key} 来销毁会话。

这是保护 REST API 的一种简单但有效(假设是 HTTPS)的方法。

或者,您可以实现 OAuth,RESTSharp 显然也支持开箱即用。

Christian's comment may be sufficient for your needs. It shows how to use the Nancy add-ins for Basic or FormsAuth and RESTSharp does support Basic auth right out of the box.

I've been building a Nancy driven REST API at work for quite some time now, we've used both RESTSharp as well as plain HTML+JS as clients and we chose to implement our own session based authentication (partly because those add-ins didn't exist when we implemented). However what is nice about it, is how simple it is to use regardless of what the client supports. I'll quickly explain how it works.

The client sends their username and password (or if you like, identifier and secret key) to create a new session resource using POST /sessions (use HTTPS). This resource contains a session key which can be used for subsequent calls. The session expires after X minutes of inactivity.

Each call made to the service requires a valid session key (except creating a session). The key is provided either as a cookie or in the query string. When using RESTSharp we usually set this as a cookie and just keep reusing it unless it's expired.

Finally, the session can be destroyed by calling DELETE /session/{key}.

This is a simple, but effective (assuming HTTPS) way to secure a REST API.

Alternatively you could implement OAuth, which RESTSharp also apparently supports out of the box.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文