我正在尝试为iphone应用程序构build一个rails API。 devise工作正常login通过Web界面,但我需要能够创build和销毁会议使用REST API,我想使用JSON,而不是必须在会议控制器上进行POST,必须parsingHTML和处理redirect。 我以为我可以做这样的事情: class Api::V1::SessionsController < Devise::SessionsController def create super end def destroy super end end 和在config / routes.rb我补充说: namespace :api do namespace :v1 do resources :sessions, :only => [:create, :destroy] end end 耙路由显示路由设置正确: api_v1_sessions POST /api/v1/sessions(.:format) {:action=>"create", :controller=>"api/v1/sessions"} api_v1_session DELETE /api/v1/sessions/:id(.:format) {:action=>"destroy", :controller=>"api/v1/sessions"} 当我POST /用户/会议一切正常。 我得到一些HTML和302。 现在,如果我POST / api / v1 /会话,我得到: […]
我想在注册过程之后立即login用户,而不通过login表单。 这可能吗 ? 我已经find了FOSUserBundle的解决scheme,但是我并没有将它用于实际工作的项目。 这里是我的security.yml,我正在使用两个防火墙。 纯文本编码器仅用于testing。 security: encoders: Symfony\Component\Security\Core\User\User: plaintext Ray\CentralBundle\Entity\Client: md5 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: in_memory: users: admin: { password: admin, roles: [ 'ROLE_ADMIN' ] } entity: entity: { class: Ray\CentralBundle\Entity\Client, property: email } firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false user_login: pattern: ^/user/login$ anonymous: ~ admin_login: pattern: ^/admin/login$ anonymous: ~ […]
有没有内置的实用工具或帮手parsingHttpContext.Current.User.Identity.Name ,例如domain\user获得单独的域名,如果存在和用户? 或者还有其他的课程吗? 我明白这很容易调用String.Split("\")但只是有趣的
我创build了一个WebApi和一个Cordova应用程序。 我正在使用http请求在Cordova应用程序和WebApi之间进行通信。 在WebApi中,我实现了OAuth承载令牌生成。 public void ConfigureOAuth(IAppBuilder app) { var oAuthServerOptions = new OAuthAuthorizationServerOptions { AllowInsecureHttp = true, TokenEndpointPath = new PathString("/token"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(1), Provider = new SimpleAuthorizationServerProvider(new UserService(new Repository<User>(new RabbitApiObjectContext()), new EncryptionService())) }; // Token Generation app.UseOAuthAuthorizationServer(oAuthServerOptions); app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()); } 这在SimpleAuthorizationServerProvider实现中 public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); // […]
我正在开发一个Web API 2.1服务,需要validation连接客户端(我将创build和控制的HTML5 / JS客户端)。 不幸的是,用户信息(用户名,密码哈希,angular色以及更多信息)存储在我只能读取的现有(SQL Server)数据库中。 Users数据库表是在5-6年前创build的,没有提及任何安全框架,所以它是一个完全自定义的格式。 我不允许对数据或数据库结构进行任何更改。 受这篇文章的启发,我推出了自己的基于令牌的validation用户身份的方法,但我缺乏使用已build立的安全框架的完整性和(重新)保证。 有没有一种方法可以将现有的框架(如OAuth2)集成到我当前的项目中? 我不知道是否有任何区别,但我使用OWIN自我托pipe。 编辑:我不知道为什么有几个人低估了这个问题 – 这真的是不好的? 就我而言,这是一个真正的问题,我希望能有一个答案(即使是“ 不,你不能这样做,因为…… ”)。 如果这些人可以在评论中解释他们的理由,那将是值得赞赏的。
我遇到了很多API,为用户提供了一个API 密钥和一个秘密 。 但是我的问题是:两者有什么区别? 在我看来,一个关键就足够了。 说我有一把钥匙,只有我和服务器知道。 我用这个键创build一个HMAC哈希,并做一个API调用。 在服务器上,我们再次创buildHMAC散列并将其与发送的散列进行比较。 如果相同,则通话被authentication。 那么为什么要使用两个键? 编辑:或者是用于查找API密钥的API密钥?
我已经创build了一个IAM用户帐户。 现在我想将此用户连接到AWS控制台。 AWS表示: For Users who need access to the AWS Management Console, create a password in the Users panel after completing this wizard. 。 我为IAM用户创build了一个密码。 尝试使用新的用户名和密码login到AWS Console不起作用。 我需要做什么?
我正在集成将使用HTTP-POST请求和检索数据的Web服务。 远程服务器需要根据RFC 2617进行基本身份validation 我尝试authentication失败。 即使我将“NetworkCredential”对象附加到“HttpWebRequest”对象的“Credentials”属性上,即使设置了“PreAuthenticate”= true,也不会在标头中发送authentication信息。 我错过了什么? //使用大块 NetworkCredential netCredential = new NetworkCredential(" uid", "pwd"); Uri uri = new Uri("http://address of services"); ICredentials credentials = netCredential.GetCredential(uri, "Basic"); objRegistration.Credentials = credentials; objRegistration.PreAuthenticate = true;
我需要在我的应用程序需要多个身份validationtypes; 特别是:应用程序的某些部分需要对Dropbox进行身份validation,并且某些部分需要基于电子邮件的身份validation,例如browserID。 我该如何处理? 我可以将身份validation附加到子网站吗? 由于YesodAuth类在所有示例中都将主基础数据types作为其参数,因此我怎么能做到这一点并不明显。 如果不是,还有其他的方法吗?
我正在devise一个网站,将有一个手机伴侣(初始只iPhone)。 该网站将是一个ASP.Net MVC 3应用程序。 我也将有一个ASP.Net Web API网站(MVC 4)公开服务的iPhone应用程序。 iPhone应用程序将具有自己的表单来捕获用户的用户名和密码,并将其发送到JSON头中的Web API。 我想从一开始就考虑安全问题,而不是一个想法。 我不是一个安全专家。 我已经做了大量的研究,看看其他人如何从Web服务处理移动应用程序客户端的身份validation。 我想我已经提出了一个体面的解决scheme,不涉及到第三方oAuths挂钩。 我将非常感谢您提供的任何意见,build议,批评和一般的WTFs。 🙂 我最大的担忧是: 确保对Web API的调用获得授权 最大限度地减less重播攻击的风险(因此下面调用中的时间戳) iPhone应用程序将如此开发: 两个string被硬编码到iPhone应用程序(每个用户的值相同): 应用程序ID 这是一个string,用于识别访问Web API(iPhone,Android,Windows Phone等)的客户端types。 应用程序的散列盐 这是一个string,用于对用户不可知的请求进行哈希散列。 两个string存储在iPhone应用程序的本地数据库中(每个用户独特的值): API用户访问令牌 这是通过Web API在成功validation后提供给客户端的string(令牌),并允许客户端访问Web API,而无需在每个请求中发送用户名和密码。 用户的哈希盐 这是一个用于对已build立的用户帐户进行请求的哈希值的string。 iPhone将通过以下方式调用Web API: API方法:创build帐户 客户端发送: 新帐户资料(使用者名称,密码,名字,姓氏等) 应用程序ID UTC时间戳 UTC时间戳记哈希应用程序的哈希盐 API返回: 新用户的哈希盐 这里的想法是,当创build一个帐户时,我可以使用应用程序的硬编码盐,因为如果盐(通过反编译或其他方式)出来,这不是一个巨大的安全风险。 但对于访问和修改用户数据的方法,我将使用仅由该用户拥有的盐,以便攻击者不能使用它来模拟其他用户。 API方法:获取帐户 (用于在网站上创build但尚未在iPhone上同步的帐户获取用户哈希值。当用户尝试loginiPhone时,iPhone会检测到没有该用户名的logging。) 客户端发送: 用户名 密码(使用应用程序的散列盐进行散列) 应用程序ID UTC时间戳 UTC时间戳记哈希应用程序的哈希盐 […]