Tag: authentication

REST身份validation和公开API密钥

我一直在阅读REST,关于它的问题以及其他许多网站和博客上都有很多问题。 虽然我从来没有见过这个具体的问题…出于某种原因,我无法围绕这个概念… 如果我正在构build一个RESTful API,并且我想要保护它,那么我所看到的方法之一就是使用安全令牌。 当我使用其他API时,有一个令牌和一个共享的秘密…是有道理的。 我不明白的是,正在通过javascript(XHR / Ajax)来完成对rest服务操作的请求,防止有人用FireBug(或者浏览器中的“查看源代码”)等简单的东西来嗅探出来复制API密钥,然后使用密钥和秘密冒充该人员?

将ASP.NET MVC5身份validation添加到现有项目

我在网上看到了很多类似的网页,但是其中大部分使用新的项目而不是现有的项目,或者没有必要的function。 所以,我有一个现有的MVC 5项目,并希望集成ASP.NET MVC5身份与login,电子邮件确认和密码重置function。 除此之外,我还需要在数据库(即用户,angular色,组等)上创build所有必要的表 (我在项目中使用EF代码优先)。 有没有符合这些需求的文章或样本? 任何build议,将不胜感激。 提前致谢…

你在哪里储存盐弦?

对数据库存储进行哈希密码处理时,我总是使用正确的per-entry saltstring。 为了我的需要,将散列密码旁边的salt存储在散列密码旁边一直工作正常。 但是,有些人build议将salt与数据库分开存放。 他们的观点是,如果数据库被攻破,攻击者仍然可以build立一个彩虹表,考虑一个特定的盐串,以便一次破解一个帐户。 如果这个帐号拥有pipe理员权限,那么他甚至不需要破解其他任何人。 从安全的angular度来看,将盐储存在不同的地方是值得的吗? 考虑在同一台机器上使用服务器代码和数据库的Web应用程序。 如果盐被存储在该机器上的平面文件中,那么很可能如果数据库受到损害,那么盐文件也是如此。 有没有推荐的解决scheme?

configurationSpring Security 3.x有多个入口点

我一直在使用Spring Security 3.x来处理我的项目的用户身份validation,到目前为止,它已经完美运行。 我最近收到了一个新项目的要求。 在这个项目中,需要两套用户authentication:一种是针对LDAPauthentication员工,另一种是针对数据库authentication客户。 我有点难以理解如何在Spring Security中进行configuration。 我最初的想法是创build一个有以下领域的login屏幕: – 单选button字段 – 供用户select是员工还是客户。 j_username用户字段。 j_password密码字段。 如果用户select“员工”,那么我希望Spring Security根据LDAP对他们进行身份validation,否则证书将根据数据库进行身份validation。 但是,问题是表单将被提交给/j_spring_security_check并且我无法将单选button字段发送给我实现的自定义身份validation提供程序。 我最初的想法是我可能需要两个表单提交url,而不是依靠默认的/j_spring_security_check 。 每个URL将由不同的身份validation提供程序处理,但是我不确定如何在Spring Security中configuration它。 我知道在Spring Security中,我可以configuration回退身份validation,例如,如果LDAP身份validation失败,那么它将回退到数据库身份validation,但这不是我在这个新项目中拍摄的内容。 有人可以分享如何在Spring Security 3.x中configuration它吗? 谢谢。 更新 – 01-28-2011 – @ EasyAngel的技术 我正在努力做到以下几点: 员工表单login提交给/j_spring_security_check_for_employee 客户表单login提交给/j_spring_security_check_for_customer 我想要2种不同的表单login的原因是允许我根据用户不同的方式处理authentication,而不是做回退authentication。 就我而言,员工和客户可能有相同的用户ID。 我并入了@ EasyAngel的想法,但必须replace一些弃用的类。 我目前面临的问题是没有筛选进程URLS似乎注册在Spring安全,因为我不断收到Error 404: SRVE0190E: File not found: /j_spring_security_check_for_employee 。 我的直觉是springSecurityFilterChain bean没有正确连线,因此我的自定义filter根本没有使用。 顺便说一下,我正在使用WebSphere,并且在服务器中设置了com.ibm.ws.webcontainer.invokefilterscompatibility=true属性。 我能够毫无问题地打到默认的/j_spring_security_check 。 这是我完整的安全configuration: <?xml […]

RESTauthenticationscheme的安全性

背景: 我正在deviseREST Web服务的身份validationscheme。 这并不是“真正的”需要安全的(这更像是一个个人项目),但是我想尽可能地保证它的安全性和学习体验的安全性。 我不想使用SSL,因为我不想要麻烦,而且大部分都是为了设置它。 这些SO问题让我开始特别有用: RESTfulauthentication 保护REST API / Web服务的最佳实践 最好的SOAP / REST / RPC Web API的例子? 你为什么喜欢他们? 他们有什么问题? 我正在考虑使用简化版本的Amazon S3身份validation (我喜欢OAuth,但似乎太复杂了,我的需要)。 我正在添加一个随机生成的服务器提供的nonce ,以防止重播攻击。 为了解决这个问题: S3和OAuth都依靠签名请求URL和几个选定的标头。 他们都不签署 POST或PUT请求的请求正文 。 这难道不是一个中间人攻击,它保留了url和headers,并用攻击者想要的任何数据replace请求主体? 看起来好像我可以通过在被签名的string中包含请求主体的散列来防范这一点。 这是安全的吗?

Android Firebase DynamiteModule:无法加载模块描述符

自从升级到最新版本的Firebase(9.0.0)后,通过signInWithEmailAndPassword()对用户进行身份validation时,我无法摆脱以下两个错误。 任何人的想法是怎么回事? 05-19 18:09:49.245 23550-23589/[PACKAGE] E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/[PACKAGE]-3/base.apk"],nativeLibraryDirectories= [/data/app/[PACKAGE]-3/lib/x86, /vendor/lib, /system/lib]] 和 05-19 18:09:49.252 23550-23550/[PACKAGE] E/FirebaseApp: Firebase API initialization failure.java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.google.firebase.FirebaseApp.zza(Unknown Source) at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) at com.google.firebase.FirebaseApp.zzbu(Unknown Source) at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) at android.content.ContentProvider.attachInfo(ContentProvider.java:1748) at android.content.ContentProvider.attachInfo(ContentProvider.java:1723) […]

ASP.NET Core中基于令牌的身份validation

我正在使用ASP.NET Core应用程序。 我试图实现基于令牌的身份validation,但无法弄清楚如何使用新的安全系统为我的情况。 我通过例子,但他们没有帮助我很多,他们正在使用cookieauthentication或外部身份validation(GitHub,微软,Twitter)。 我的场景是什么:angularjs应用程序应该请求/tokenurl传递用户名和密码。 WebApi应授权用户并返回将由angularjs应用程序在以下请求中使用的access_token 。 我发现了一篇关于在当前版本的ASP.NET中使用ASP.NET Web API 2,Owin和Identity的基于令牌的身份validation实现我所需要的精彩文章。 但对于我如何在ASP.NET Core中做同样的事情并不明显。 我的问题是:如何configurationASP.NET Core WebApi应用程序使用基于令牌的身份validation?

使用自定义令牌以pipe理员身份向FB DB发出REST请求

我正在迁移到新的数据库和3.0客户端库。 我正在更新生成自定义身份validation令牌的部分(在我们的服务器上),以执行PATCH更新Firebase数据库中的资源。 这些PATCH请求曾经由我们的服务器使用admin声明基于此: https : //www.firebase.com/docs/rest/guide/user-auth.htm 对于新的数据库,我生成的JWT令牌(使用ruby-jwt )是这样的: payload = { aud: "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit", claims: custom_claims.merge({ admin: true }), exp: now_seconds + (60 * 60), # Maximum expiration time is one hour iat: now_seconds, iss: service_account_email, sub: service_account_email, uid: uid } JWT.encode(payload, private_key, "RS256") 具有此令牌的Firebase数据库的PATCH请求将失败: Missing claim 'kid' in auth header 。

Google云terminal和用户的身份validation

我目前刚进入AppEngine世界,并希望使用云端点为我正在开发的移动应用程序创build后端。 我现在的问题之一是关于用户的身份validation。 我一直关注App Engine上的Udacity MOOC,并且教会了我们如何使用Google帐户来validation用户的API请求。 在后端,我们只需要添加一个User参数给我们的方法,并检查用户是否login。据我所知,这个用户参数是由App Engine根据请求的Authorization头生成的。 ( 可能需要一些确认 ) 现在,有一堆我不确定要理解的东西,这在MOOC上没有得到很好的解释。 现在,我想知道这是否与其他OAuth计划兼容,除了Google? 所以,如果我想实现Facebook身份validation,我会只通过Facebook访问令牌? 从我search的内容来看,使用Android上的Facebook SDK将导致我能够生成一个用户访问令牌,它可以将我的用户识别为脸书 。 发送到我的后端后,我想要检查它与Facebook的有效性,如果它是有效的,创build一个新的用户到我的应用程序。 现在,我也想生成一个新的令牌,标识我的应用程序的用户。 我需要做些什么来做到这一点?

Firebase 3中是否还可以对令牌进行服务器端validation?

Firebase 3中是否还可以对令牌进行服务器端validation? 我们使用现有的身份validation系统(使用服务帐户)在运行Golang的服务器上生成自定义令牌(JWT)。 该令牌在使用的iOS客户端上使用 FIRAuth.auth()?.signInWithCustomToken(customToken) 直到那里一切正常。 但是,当我们将客户端令牌传递给从 FIRUser.getTokenWithCompletion({ token, error in ..}) 我们无法validation它。 JWT令牌使用RS256进行签名,并有一个header.kid,我们无法识别。 服务帐户(用于签署自定义令牌)的公钥不会validation客户端令牌。 validation客户端令牌是否需要公钥? 我知道可以使用Java或Javascript中的“verifyIdToken”调用来validation客户端令牌,但我们希望能够使用标准JWT库在Golang中执行此操作。 这一切在Firebase 2中都运行良好(使用HS256和Firebase秘密)。