Tag: restful authentication

用户/通过使用RESTful WCF和Windows窗体的身份validation

为Windows Forms应用程序与IIS托pipe的RESTful WCF服务交谈实施授权/身份validation的最佳方法是什么? 我问的原因是我很困惑,筛选了不同的文章和职位expression不同的方法,并最终在WCF安全最佳实践“( http://www.codeplex.com/WCFSecurityGuide )上达到约650页的文档我是根据我的情况,只是不确定哪种方法是最好的,以及如何开始实施。 我从本文开始使用“使用WCF 3.5devise和构buildREST风格的Web服务”( http://msdn.microsoft.com/zh-cn/library/dd203052.aspx )以及REST风格的WCF服务上的PDCvideo。很棒,帮助我实现了我的第一个REST友好的WCF服务, 我有了服务工作后,我回到了实施安全,见。 “安全注意事项”(页面上的四分之一),并试图按照说明实现一个HTTP授权标头,但是我发现代码是不完整的(请参阅UserKeysvariables从未声明)。 这是我试图研究更多关于如何做到这一点(使用HMAC哈希与“授权”HTTP标头,但在谷歌上找不到多less?),这导致我到其他文章有关消息级别的安全性,形成authentication和自定义validation器,坦率地说,我不确定哪个是现在采取的最好和最合适的方法。 所以所有这些(并感谢听到直到现在!),我想我的主要问题是, – 我应该使用哪种安全实施? – 有没有办法避免每个WCF调用发送用户名/密码? 如果在开始时已经build立了一个连接,我宁愿不发送这些额外的字节,这将在login之后允许进行后续的呼叫。 – 如果我使用SSL,是否真的应该关心纯文本? 如上所述,.NET 3.5 win表单应用程序,IIS托pipe的WCF服务,但是重要的是我希望任何和所有的WCF服务都需要这个授权过程(不过它应该是会话,http头或其他),因为我不希望任何人都能够从networking上获得这些服务。 我知道上面的post很大,但我不得不expression我已经倒闭的路线,我需要完成的任何和所有的帮助,我非常感激。 PS:我也知道这篇文章如何使用WCF使用用户名/密码+ SSLconfiguration安全的REST风格的服务,如果社区build议我离开REST的WCF服务,我可以做到这一点,但是我开始保持一致任何公共的API来。 我认为这是很重要的,我说我如何访问我的WCF服务(联系服务正在工作,但什么是validation凭据 – 然后返回成员对象的最佳方式? WebChannelFactory<IMemberService> cf = new WebChannelFactory<IMemberService>( new Uri(Properties.Settings.Default.MemberServiceEndpoint)); IMemberService channel = cf.CreateChannel(); Member m = channel.GetMember("user", "pass"); 从MS文章(和我自己的一些testing)实施的一半代码: public Member GetMember(string username, string password) { if […]

耙子任务期间closures观察者的简单方法?

我在我的应用程序中使用restful_authentication。 我使用rake任务创build了一组默认用户,但每次运行任务时都会发送激活电子邮件,因为与我的用户模型关联的观察者。 我在创build用户时设置了激活字段,因此不需要激活。 任何人都知道在运行rake任务时绕过观察者的简单方法,以便在保存用户时不会发送电子邮件。 谢谢。

在Ruby on Rails的Restfulauthentication中,#self.included(base)做了什么?

我以为我们会做 helper_method :current_user, :logged_in?, :authorized? 使这些控制器方法可以在视图中用作辅助方法。 但是在Restful Authentication的lib/authenticated_system.rb ,我看到: # Inclusion hook to make #current_user and #logged_in? # available as ActionView helper methods. def self.included(base) base.send :helper_method, :current_user, :logged_in?, :authorized? if base.respond_to? :helper_method end 为什么这样做而不是那一行呢? 另外,我不认为included被称为任何地方。

Restful Web服务authentication

我有一个Restful Web服务API,由不同的第三方使用。 该API的一部分受到限制(您需要用户名/密码才能访问)。 我想知道什么是实现身份validation的最佳方式? 我正在使用https,因此通信被encryption。 我有两个想法: 在用户开始使用(受限)服务之前,它使用POST发送用户名/密码(因为正在使用https来encryption凭据)。 login成功后,服务器发回与此用户名匹配的随机一次性使用值(nonce)。 当下一个请求正在进行时,客户端发送先前返回的现时。 服务器匹配用户名和随机数,并沿请求的数据返回新的随机数。 每个新请求使用新的随机数。 基本上,这是一个Digest访问authentication的轻量级版本。 由于此API是从第三方使用的,所以用户名/密码可以用于每个(受限制的)请求。 由于正在使用https,它们将被encryption。 这种方法的崩溃是这样的事实,这不会是兼容的(POST将始终使用)。 我更接近于select第一种方法(这是Restful兼容,相对容易实现,XML,JSON或HTML可以使用而不用改变任何东西),但我想看看你的意见? 你有什么build议:第一,第二或第三种方法? 顺便说一句,我在服务器端使用Python。

基本的HTTP和承载令牌authentication

我目前正在开发一个REST-API,它是HTTP-Basic保护的开发环境。 由于真正的身份validation是通过令牌来完成的,我仍然试图弄清楚,如何发送两个授权头。 我试过这个: curl -i http://dev.myapp.com/api/users \ -H "Authorization: Basic Ym9zY236Ym9zY28=" \ -H "Authorization: Bearer mytoken123" 我可以例如禁用我的IP的HTTP身份validation,但由于我通常在不同的dynamicIP环境下工作,这不是一个好的解决scheme。 所以我错过了什么?

passport.js passport.initialize()中间件未被使用

我正在使用express + mongoose的节点,并尝试使用passport.js和restful api。 validation成功后,我一直收到这个exception(我在浏览器上看到了callbackurl): /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/utils.js:419 throw err; ^ Error: passport.initialize() middleware not in use at IncomingMessage.req.login.req.logIn (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/http/request.js:30:30) at Context.module.exports.delegate.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/middleware/authenticate.js:194:13) at Context.actions.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/context/http/actions.js:21:25) at verified (/Users/naorye/dev/naorye/myproj/node_modules/passport-facebook/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:133:18) at Promise.module.exports.passport.use.GitHubStrategy.clientID (/Users/naorye/dev/naorye/myproj/config/passport.js:91:24) at Promise.onResolve (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8) at Promise.EventEmitter.emit (events.js:96:17) at Promise.emit (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38) at Promise.fulfill (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:92:20) at /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/query.js:1822:13 我读过,我应该把app.use(passport.initialize()); 和app.use(passport.session()); 在app.use(app.router);之前app.use(app.router); 这就是我所做的。 这是我的express.js注册中间件: var express = require('express'), mongoStore = […]

保护我的Node.js应用程序的REST API?

我可以在我的REST API上做一些帮助。 我正在写一个Node.js应用程序,它使用Express,MongoDB,并在客户端有Backbone.js。 我花了最后两天的时间,试图解决所有这些问题,没有太多的运气。 我已经检查过 保护REST API 使用OAuth保护我的REST API,同时仍允许通过第三方OAuth提供者进行身份validation(使用DotNetOpenAuth) http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ http://tesoriere.com/2011/10/10/node.js-getting-oauth-up-and-working-using-express.js-and-railway.js/ 我想保持我的后端和前端尽可能分开,所以我想使用精心devise的REST API会很好。 我的想法是,如果我总是开发一个iPhone应用程序(或类似的东西),它可以使用API​​来访问数据。 但是,我希望这是安全的。 用户已经login到我的networking应用程序,我想确保我的API是安全的。 我读了关于OAuth,OAuth 2.0,OpenID,Hmac,哈希等…我想避免使用外部login(Facebook / Twitter /等)我想注册和login在我的应用程序/服务器。 …但我仍然在这里困惑。 也许是在深夜,或者我的大脑只是被炸,但我真的可以采取一些措施,在这里做什么。 我有什么步骤来创build一个安全的API? 任何帮助,任何信息,任何示例,步骤或任何东西都会很棒。 请帮忙!

AngularJSauthentication+ RESTful API

用于Auth /(重新)路由的angular度+ RESTful客户端通信(带有API) 这已经在几个不同的问题和几个不同的教程中被涵盖了,但是我所遇到的所有以前的资源并不完全相同。 在一个坚果壳里,我需要 通过POST从http://client.foologin到http://api.foo/login 为提供logout路由的用户提供“login”GUI /组件状态 当用户注销/注销时,能够“更新”用户界面。 这是最令人沮丧的 保护我的路线,以检查身份validation状态(他们是否需要它),并相应地将用户redirect到login页面 我的问题是 每当我导航到一个不同的页面,我需要打电话给api.foo/status以确定用户是否login。(ATM我使用Express的路线)这会导致一个呃,Angular确定的东西ng-show="user.is_authenticated" 当我成功login/注销时,我需要刷新页面(我不想这样做),以填充{{user.first_name}}类的东西,或者在注销的情况下,清空该值出。 // Sample response from `/status` if successful { customer: {…}, is_authenticated: true, authentication_timeout: 1376959033, … } 我试过了 http://witoldsz.github.io/angular-http-auth/ 1 http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/ 2 https://github.com/mgonto/restangular (对于我的生活,我无法弄清楚如何使用post data POST ,而不是query params 。文档在这个问题上什么也没有。 为什么我觉得我正在失去理智 似乎每个教程都依赖于一些数据库(大量的Mongo,Couch,PHP + MySQL,无限广告)解决scheme,而且没有一个纯粹依靠与RESTful API的通信来保持login状态。 一旦login,更多的POST / GET与withCredentials:true一起发送withCredentials:true ,所以这不是问题 我找不到任何做Angular + REST + […]

RESTful API的令牌身份validation:是否应定期更改令牌?

我正在用Django和django-rest-framework构build一个RESTful API。 作为authentication机制,我们select了“Token Authentication”,我已经在Django-REST-Framework的文档中实现了它,问题是,应用程序是否应该定期更新/更改令牌,如果是的话,是怎么做的? 应该是移动应用程序需要更新令牌还是Web应用程序应该自动执行? 最佳做法是什么? 任何人在这里经验与Django REST框架,并可以build议一个技术解决scheme? (最后一个问题的优先级较低)

API密钥与HTTP身份validation相比,RESTful API中的OAuth

我正在为我维护的其中一个应用程序构build一个RESTful API。 我们目前正在寻求build立各种东西,需要更多的控制访问和安全。 在研究如何确保API的时候,我发现了一些关于使用什么forms的不同观点。 我已经看到一些资源说HTTP-Auth是要走的路,而其他人则更喜欢API密钥,甚至其他人(包括我在这里发现的问题)OAuth发誓。 然后,当然,那些喜欢API密钥的人说,OAuth是专为代表用户访问的应用程序devise的(据我所知,如使用您的Facebook帐户login非Facebook网站),而不是用户直接访问他们特别注册的网站上的资源(如访问Twitter服务器的官方Twitter客户端)。 然而,OAuth的build议似乎甚至是最基本的authentication需求。 那么我的问题是 – 假设这些都是通过HTTPS完成的,三者之间的一些实际区别是什么? 什么时候应该考虑其他人?