标签: restful-authentication

使用子域丢失rails 2.3.2 app中的会话

我有一个2.2.3应用程序,我升级到2.3.2

它是一个多站点(使用子域),可为所有站点创建一个顶级会话.

这是我在production.rb中更改域的方式:

ActionController::Base.session_options[:domain] = "example.com"

# in rails 2.2.2, this is what i used to do:
# ActionController::Base.session_options[:session_domain] = "example.com" 
Run Code Online (Sandbox Code Playgroud)

升级后,奇怪的事情开始发生我无法再使用restful身份验证登录了.它确实对我进行了身份验证,但是一旦我被重定向,就会要求我再次登录.

正如我所说,我使用restful_authentication,我也使用乘客2.1.2.有人可以帮忙吗?

session ruby-on-rails restful-authentication

5
推荐指数
2
解决办法
5936
查看次数

Web服务客户端证书/身份验证最佳实践的解决方案

我有一个简单的Web服务,允许API第三方开发人员访问.API主要遵循REST原则.

我对通过要求开发人员使用客户端证书来使API更安全的解决方案感兴趣.是否有任何开源解决方案或其他实施建议可以帮助使用用户级证书进行身份验证的基于REST的API?

rest web-services restful-authentication certificate-authority

5
推荐指数
1
解决办法
4887
查看次数

是不是oauth_signature重新发明了SSL轮?

在使用twitter API时,我遇到的oauth_signature基本上是(请求体+请求参数+ nonces/timestamps + a consumer_secret)的哈希值.该consumer_secret已知仅到正在发送的请求的应用程序.

在Twitter的案例中:

  • 所有通信必须通过SSL进行.
  • twitter consumer_secret向每个授权的应用程序发出.

由于主要用于oauth_signature防止MITM(即没有山雀(在传输中篡改):),在我看来,这个特定的用例可以通过相互SSL解决

  • Twitter而不是发布consumer_secret,可以为每个应用程序颁发SSL证书.

虽然客户端ssl证书的这种想法可能看起来像20世纪90年代的互联网奥秘,但它并不成功,主要是因为验证客户端证书的信任链存在问题.这个问题不会出现在这里,因为twitter将是证书的唯一发行者和验证者.缺点是更多地涉及代表Twitter生成初始应用程序/客户端ssl证书的努力,但回报将是REST API的简单性,这可以依赖于客户端是他所说的人的保证.

请注意,在这种情况下,twitter只是一个例子.AFAIK,大多数其他oauth实现者使用类似的策略,这里的要点适用于已经强制要求SSL的任何大型OAuth实现者.

我在这里错过了什么?互联网惯性?

ssl restful-authentication oauth client-certificates twitter-oauth

5
推荐指数
1
解决办法
219
查看次数

使用Devise在Rails上使用json api进行身份验证

我使用devise和rails app来验证来自移动设备的用户; 所以用户从他们的移动设备注册/登录/注销,问题是(注册/登录),以便用户通过网络发送他的明文密码,如何加密明文密码和解密它在服务器端?我是RoR和Devise的新手.

passwords json ruby-on-rails restful-authentication devise

5
推荐指数
1
解决办法
6340
查看次数

具有RESTful身份验证的Symfony2 App,使用FOSRestBundle和FOSUserBundle

我正在为我的JS驱动的应用程序制作REST API.

在登录期间,登录表单通过AJAX提交到/rest/login我的API的url .

  • 如果登录成功,则返回204
  • 如果失败,则返回401

虽然我已经为API和应用程序本身分离了防火墙,但它们共享相同的上下文,这应该意味着,当用户对API进行身份验证时,他也会针对应用程序进行身份验证.因此,当服务器返回204时,页面将重新加载,它应该将用户重定向到应用程序,因为他现在已登录.

我试图使用check_loginFOSUserBundle的预制页面并指向/rest/login那里.

login:
    path: /rest/login
    defaults:
        _controller: FOSUserBundle:Security:check
    methods: [ POST ]
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为它总是返回重定向,无论如何.我阅读了symfony的文档,找不到如何制作自定义check_login页面.我需要的是这样的事情

use Symfony\Component\Security\Core\Exception\AuthenticationException;
use FOS\RestBundle\Controller\Annotations\View;    

class SecurityController {

    /**
     * @View(statusCode=204)
     */
    public function loginAction($username, $password) {

        /* first I need to somehow authenticate user 
           using normal authentication, that I've set up */
        ...

        /* Then I need to return 204 or throw exception,
           based on result.
           This is done using FOSRestBundle and it's …
Run Code Online (Sandbox Code Playgroud)

php restful-authentication symfony fosuserbundle fosrestbundle

5
推荐指数
1
解决办法
1万
查看次数

有没有办法验证供应商标识符(IDFV)是否有效?

Apple在本开发人员指南中讨论了一个称为供应商标识符(IDFV)的唯一标识符. http://possiblemobile.com/2013/04/unique-identifiers/

我想可以使用Restful API,因此只接受具有有效IDFV的请求.但是这个问题我不知道如何验证IDFV.我可以这么做,当安装应用程序时,它会注册我的服务.但理想情况下,我可以通过这种方式验证此标识符.

validation xcode restful-authentication uniqueidentifier ios

5
推荐指数
1
解决办法
810
查看次数

如何在客户端处理访问令牌和刷新令牌

我正在使用AngularJS客户端创建一个网站,并在REST中与后端(在另一个域中)进行通信。

为了验证每个调用,我通过每个HTTPS调用的标头传递一个令牌:“授权:承载access_tokenXXXXXX”

当令牌过期时,由于refresh_token,我能够创建一个新令牌。

access_token和refresh_token需要存储在客户端,因为浏览器需要在HTTP请求标头中将其设置为明文形式。

我的问题是:

问题1:建议使用哪种方式存储access_token和refresh_token以使其对浏览器可用,从而使其相对安全?(我有安静的敏感数据,例如个人照片)

问题2:access_token和refresh_token的建议生存期(=无法使用之前的时间)是多少?(仅供参考,我会在401响应后刷新令牌,并且我的应用是社交应用)

问题3:我有建筑方面的问题吗?我是否应该更改它以便根本不使用JavaScript并使用仅HTTP的cookie?

谢谢 :)

杰弗里

更新:

我最终选择了仅HTTP cookie。我正在使用Django Oauth Toolkit,因此Django正在等待HTTP标头(而不是Cookie)中的授权。

为了解决这个问题,我正在使用一个中间件,该中间件收集cookie的令牌并将其设置在标题中。它还应该允许我在access_token过期之前重新验证用户身份(使用刷新令牌)。

browser security restful-authentication access-token

5
推荐指数
1
解决办法
5017
查看次数

GET请求在浏览器中有效,但在POSTMAN或SOAPUI中无效

我有以下端点:http://millennium.iwise.com.br: 6017 /api/millenium_eco/Tabelas_preco.lista

如果我尝试通过浏览器打开,它会询问我的凭据然后工作正常 - 如下图所示.

用户: OData

密码: 0d @t @ 123

在此输入图像描述

如果我使用POSTMAN或SOAPUI发送相同的GET请求,我将获得401 Unauthorized.

在此输入图像描述

我在这里缺少什么?先感谢您.

更新:

我接受了浏览器的标头请求,并在POSTMAN中使用了相同的内容,我仍然收到401 Unauthorized.是否有可能将端点的服务器配置为拒绝除浏览器的所有请求?

在此输入图像描述 在此输入图像描述

rest restful-authentication postman

5
推荐指数
4
解决办法
1万
查看次数

使用Passport授权时设置邮递员进行API测试

在测试我的应用程序的API时,我试图让Postman工作时有点困惑.即,我正在使用Passport身份验证; 但是,我不知道它在我的代码中默认使用哪种类型.我怎么能弄明白这一点以及我应该在Postman中选择哪种类型?

这是相关的Passport代码:

var login = require('./login');
var signup = require('./signup');
var User = require('../models/user');

module.exports = function(passport, path, nodemailer, sesTransport, EmailTemplate, templateDir, template){

    // Passport needs to be able to serialize and deserialize users to support persistent login sessions
    passport.serializeUser(function(user, done) {
        //console.log('serializing user: ');console.log(user);
        done(null, user._id);
    });

    passport.deserializeUser(function(id, done) {
        User.findById(id, function(err, user) {
            //console.log('deserializing user:',user);
            done(err, user);
        });
    });

    // Setting up Passport Strategies for Login and SignUp/Registration
    login(passport);
    signup(passport, path, nodemailer, sesTransport, EmailTemplate, templateDir, template);

} …
Run Code Online (Sandbox Code Playgroud)

rest restful-authentication node.js postman passport.js

5
推荐指数
1
解决办法
4811
查看次数

REST API:基于令牌的简单身份验证-安全吗?

我有一个REST API,我正在寻找一种简单的方法来进行基于令牌的安全身份验证。由于我已经阅读过OAuth之类的协议非常复杂,因此我想实现一种更简单的方法。有哪些常用方法?接下来的过程的安全性如何?

  1. 客户端输入电子邮件和密码->将其发送到REST API(通过HTTPS)
  2. API验证用户
  3. 如果登录数据正确,则该API会生成一个唯一的API令牌,将其保存在数据库中供用户使用,然后将其发送回客户端
  4. 令牌存储在客户端Web存储中
  5. 对于以下请求,客户端必须每次发送令牌,API每次必须检查令牌
  6. 注销时,令牌将从Web存储和数据库中删除(当用户再次登录时会生成一个新令牌)。

这种方法是否存在巨大的安全性问题?还是可行?

非常感谢

security api restful-authentication token

5
推荐指数
1
解决办法
1936
查看次数