标签: restful-authentication

RESTful用户身份验证服务

嘿伙计们,这似乎经常被讨论,但我想围绕用RESTful服务进行身份验证做一个简单,淡化的问题.方案如下:

  • 有一个系统可以容纳注册用户的应用程序.系统公开RESTful API以访问这些用户.
  • 有一个具有登录表单的前端应用程序.应用程序可以是内部的,也可以是外部的.
  • 前端应用程序需要使用用户系统中的数据来验证用户.

现在的问题是如何根据用户系统中的数据验证在客户端应用程序中输入其凭据(用户名/密码)的用户,以确保其安全性和高性能?为了这个问题,假设客户端应用程序是某种Intranet的内部应用程序,但应用程序不会驻留在同一台机器上,只能通过该服务进行通信.

我理解让应用程序"超媒体驱动"的想法,但我们应该能够提供过滤/搜索服务.例如,考虑以下资源和API:

  • http://example.com/users
    • GET - 检索所有用户(分页,超媒体驱动)
    • POST - 创建新用户
    • 不支持PUT/DELETE
  • http://example.com/users/[id]
    • GET - 返回id = {id}的用户的完整表示
    • PUT - 更新用户,接收任何预定义的媒体类型
    • 删除 - 删除用户(具有适当的授权)
    • POST不受支持

基于以上所述,我的想法是在用户列表中使用客户端应用程序GET,按用户名进行过滤.该服务将哈希密码和salt返回给客户端,客户端将执行身份验证.

思考?

api rest web-services restful-authentication

9
推荐指数
2
解决办法
2万
查看次数

如何使用JAX-RS进行Rest身份验证

我正在寻找关于如何保护我的休息根资源的一些指示

@Path("/employee")
public class EmployeeResource {

    @GET
    @Produces("text/html")
    public String get(
        @QueryParam("name") String empname,
        @QueryParam("sn") String sn) {

         // Return a data back.
    }
}
Run Code Online (Sandbox Code Playgroud)

我已阅读有关基本认证和OAuth的帖子,我知道这个概念,但我正在寻找如何在代码中实现它的方法.

谢谢

rest restful-authentication jax-rs jersey java-ee

9
推荐指数
1
解决办法
9533
查看次数

Rails 3 RESTful身份验证 - 未初始化的常量ApplicationController :: AuthenticatedSystem

刚刚从https://github.com/Satish/restful-authentication安装了Rails 3的升级版restful_authentication插件.我试图在我的应用程序助手中包含插件中的代码,如下所示:

class ApplicationController < ActionController::Base
    protect_from_forgery

    include AuthenticatedSystem
end
Run Code Online (Sandbox Code Playgroud)

但是,当我运行服务器并导航到localhost上的应用程序时,我收到如下错误:

uninitialized constant ApplicationHelper::AuthenticatedSystem
Run Code Online (Sandbox Code Playgroud)

AuthenticatedSystem是lib/authenticated_system.rb中的一个模块,那么为什么包含工作呢?

restful-authentication ruby-on-rails-3

9
推荐指数
1
解决办法
6406
查看次数

Web客户端和移动REST api安全性的推荐配置

我意识到这个问题有很多问题,我现在已经研究了几天了.我想确保我的问题尽可能具体,因为我还没有充分了解最佳方法.

目前我有一个开发的django站点,Web客户端可能通过django-piston json REST api进行大约95%的通信.另外5%是一些重新登录功能,仍然通过具有CSRF保护的POST表单.理想情况下,我想将其余部分也移到REST api中.

我现在需要找到最佳的推荐解决方案,以便以可重用且愉快的共存方式保护Web客户端和移动客户端(应用程序尚未开发).我已经阅读了很多帖子,最终为移动端推荐OAuth2(和https),但我仍然对如何设置Web客户端安全性感到困惑.我也在理解OAuth2方面以及我是否可以使用双腿形式.就目前而言,Web客户端是经过django身份验证的.从技术上讲,jsonp功能在活塞中仍然有效,所以我认为任何人都可以使用第三方应用程序的api,只要他们的网络会话有auth cookie?

我api的用法总结:

  1. API是服务器应用程序的完全私有接口
  2. 如果第三方Web客户端mashup无法广泛重用API,那将是理想的选择.
  3. 数据不是necc敏感的.它只是一个社交类型的网站,其中最个人的信息是电子邮件,地址等基本用户配置文件.

我的问题摘要:

  1. OAuth2是保护移动应用访问安全的最佳推荐方法吗?它与Web客户端方面有什么关系吗?如果推荐OAuth2,它应该是应用程序版本的应用程序范围的密钥吗?
  2. Web客户端是否应该使用通过ajax传递的CSRF,并且只是禁用jsonp以确保其始终相同的来源?基本上,我是否单独处理Web客户端安全性?
  3. 我应该如何组织urls/app实例/子域或建议维护Web与移动安全的任何内容?我是否只需要单独的网址前缀,一个用于使用不同规则的移动设备?

我正在寻找django-piston针对解决这些问题的具体建议.我已经分支了我的项目并开始使用这个分叉版本的活塞:https://bitbucket.org/jespern/django-piston-oauth2

我有一个想法是创建一个活塞资源,首先检查它是否同源,然后只强制执行django auth,否则它强制执行oauth2,但我不确定这是否合适.

2012年1月1日更新

根据Spike提供的信息,我开始使用piston-oauth2.我最终创建了一个fork来为nonrel django(mongodb)添加一些修复程序,我分叉someone示例也使用oauth2和活塞:

https://bitbucket.org/justinfx/django-piston-oauth2-nonrel-example

现在只是我的一个问题,真正把它连接到我自己的项目并使其工作.但这些测试都很有效.

django mobile restful-authentication django-piston oauth-2.0

9
推荐指数
1
解决办法
1897
查看次数

将身份验证添加到ASP.NET WebApi 2.2

我已经创建了一个WebApi 2.2项目(来自一个空的新ASP.NET项目)来证明一些实现概念,我现在想要为它添加身份验证.

我注意到在新的WebApi应用程序上添加身份验证的唯一方法是使用其中一个(VS 2013,在我的情况下)模板.

是否有一种确定的方法可以将身份验证添加到现有的WebApi 2.2应用程序中?

我只想使用持票人代币,如果这对我可能收到的任何答案产生影响.

c# asp.net authentication restful-authentication asp.net-web-api

9
推荐指数
1
解决办法
9244
查看次数

扩展restful_authentication/AuthLogic以支持匿名iPhone的懒惰登录的最佳方法是什么?

我正在构建一个与Ruby on Rails后端对话的iPhone应用程序.Ruby on Rails应用程序还将为Web用户提供服务.restful_authentication插件是提供快速和可自定义的用户身份验证的绝佳方式.但是,我希望iPhone应用程序的用户拥有一个帐户,该帐户由存储在新列中的电话的唯一标识符([[UIDevice device] uniqueIdentifier])自动创建.之后,当用户准备创建用户名/密码时,帐户将更新为包含用户名和密码,保留iPhone唯一标识符.用户在设置用户名/密码之前不应该访问该网站.但是,他们可以使用iPhone应用程序,因为应用程序可以使用它的标识符对自身进行身份验证.

修改restful_authentication以执行此操作的最佳方法是什么?创建一个插件?或者修改生成的代码?

那么替代框架呢,比如AuthLogic.允许iPhone将生成的身份验证令牌锁定到其UUID的最佳方法是什么,但是让用户稍后创建用户名/密码?

ruby iphone ruby-on-rails restful-authentication

8
推荐指数
1
解决办法
1816
查看次数

在RESTFUL身份验证中添加注销按钮

我已经安装了RESTFUL身份验证,一切似乎都运行正常.我可以注册并登录.我可以注销的唯一方法是输入URL http:// localhost:3000/logout

如何在页面上添加注销按钮?我尝试在members.rhtml中添加一个

<%= link_to "logout", :controller=> "sessions", :action=> "destroy" %>
Run Code Online (Sandbox Code Playgroud)

它引用了session_controller.rb,但是我收到错误"没有动作响应显示.动作:创建,销毁和新"

有什么想法吗?感谢名单

ruby-on-rails restful-authentication logout

8
推荐指数
1
解决办法
7513
查看次数

Asp.Net Web Api基于令牌的授权,没有OWIN和AspNet.Identity

我打算使用下面的代码来实现我的web api安全性,但我不确定这是否足够安全和​​合理.我不想使用OWIN和AspNet.Identity,因为它对我来说非常复杂,我不完全理解,我不知道我如何定制数据库表,用户角色等.但我的方式很简单,非常可定制我.

这是CustomAuthorizeAttribute;

public class CustomAuthorize : AuthorizeAttribute
{
    public override void OnAuthorization(HttpActionContext actionContext)
    {
        if ((actionContext.Request.Headers.GetValues("Host").FirstOrDefault().Contains("localhost:15742")))
        {
            IEnumerable<string> access_token;
            if (actionContext.Request.Headers.TryGetValues("Authorization", out access_token))
            {
                var user = GetUserByToken(access_token);
                if (user!=null && !user.TokenIsExpired)
                {
                    HttpContext.Current.Response.AddHeader("WWW-Authenticate", "Custom " + access_token.FirstOrDefault());
                    return;
                }
                else
                {
                    actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
                    HttpContext.Current.Response.AddHeader("WWW-Authenticate", "Custom");
                    return;
                }
            }
            else
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
            }
        }
        else
        {
            actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是前端使用

<script type="text/javascript">
    $(function () {
        var access_token = $.cookie('access_token');
        if (access_token == undefined) …
Run Code Online (Sandbox Code Playgroud)

asp.net restful-authentication authorize-attribute custom-authentication asp.net-web-api

8
推荐指数
1
解决办法
3540
查看次数

我在哪里需要使用JWT?

除了结构和协议之外,我想知道JWT在哪里适合客户端/服务器通信?

  • 是否可以替换身份验证和会话cookie?
  • 这是为了减轻在数据库或内存中存储会话令牌的服务器吗?
  • 是否让客户确保他们从预期的服务器接收数据,如果这不是一个问题,我不需要JWT?
  • 当连接是HTTPS/SSL时,服务器到服务器通信是必要的还是好的做法?

authentication restful-authentication jwt

8
推荐指数
2
解决办法
3478
查看次数

仅当提供了 Web API 密钥名称时才能指定 Web API 密钥

我试图从 Power BI 的供应商 REST API 获取数据。

获取数据时,在Web API下,它不断抛出此错误。见附件截图。

错误信息截图

它是一种 POST 方法,您可以在其中按响应正文中的任何字段进行过滤(但这次我没有通过任何字段)。

我用来获得响应的查询如下。抱歉我忘记在哪里找到的了。

let

    apiUrl = "my_api_url",

    token="my_api_key",

    options = [Headers=[Authorization="Bearer " & token ]],

    result = Json.Document(Web.Contents(apiUrl , options))

in

    #"result"
Run Code Online (Sandbox Code Playgroud)

authentication api rest restful-authentication powerbi

8
推荐指数
1
解决办法
7299
查看次数