标签: authentication

JWT和OAuth身份验证之间的主要区别是什么?

我有一个使用JWT的无状态身份验证模型的新SPA.我经常被要求引用OAuth进行身份验证流程,例如要求我为每个请求发送"Bearer tokens"而不是简单的令牌标头,但我认为OAuth比简单的基于JWT的身份验证要复杂得多.如果JWT身份验证的行为与OAuth相似,主要区别是什么?

我也使用JWT作为我的XSRF-TOKEN以防止XSRF,但我被要求将它们分开?我应该将它们分开吗?这里的任何帮助将不胜感激,并可能为社区带来一套指导方针.

authentication oauth jwt

276
推荐指数
7
解决办法
20万
查看次数

node.js的用户身份验证库?

node.js是否有任何现有的用户身份验证库?特别是我正在寻找可以为用户进行密码身份验证的东西(使用自定义后端身份验证数据库),并将该用户与会话相关联.

在我写一个auth库之前,我想我会看看人们是否知道现有的库.通过谷歌搜索找不到任何明显的东西.

-Shreyas

authentication serverside-javascript node.js

272
推荐指数
6
解决办法
10万
查看次数

如何使用BASIC身份验证从Web站点注销用户?

如果用户使用基本身份验证,是否可以从网站注销用户?

杀戮会话是不够的,因为一旦用户通过身份验证,每个请求都包含登录信息,因此用户下次使用相同的凭据访问站点时会自动登录.

到目前为止,唯一的解决方案是关闭浏览器,但从可用性的角度来看,这是不可接受的.

authentication http basic-authentication

259
推荐指数
12
解决办法
19万
查看次数

为什么AuthorizeAttribute会重定向到登录页面以进行身份​​验证和授权失败?

在ASP.NET MVC中,您可以使用如下标记控制器方法AuthorizeAttribute:

[Authorize(Roles = "CanDeleteTags")]
public void Delete(string tagName)
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这意味着,如果当前登录的用户不在"CanDeleteTags"角色中,则永远不会调用控制器方法.

不幸的是,对于失败,AuthorizeAttribute返回HttpUnauthorizedResult,它总是返回HTTP状态代码401.这导致重定向到登录页面.

如果用户未登录,则这非常有意义.但是,如果用户登录但未处于所需角色,则将其发送回登录页面会很困惑.

似乎AuthorizeAttribute将身份验证和授权混为一谈.

这似乎是ASP.NET MVC的一个疏忽,或者我错过了什么?

我不得不做一个DemandRoleAttribute将两者分开的东西.当用户未经过身份验证时,它会返回HTTP 401,并将其发送到登录页面.当用户登录但未处于所需角色时,它会创建一个NotAuthorizedResult.目前,这会重定向到错误页面.

当然我不必这样做?

authentication asp.net-mvc authorization

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

在Subversion中我可以是我的登录名以外的用户吗?

我想知道如何Subversion更改我的更改所显示的名称.

我刚刚开始使用Subversion.我正在使用它在XP笔记本电脑上版本控制代码,我总是以我妻子的名字登录.我希望subversion DB在我的名字下显示更改.

稍后我将复制数据库,以便整个房子可以访问它.我的妻子使用办公室电脑,她总是以我的名义登录.我可能会设置它,以便自动检查修改后的文档...最好是在她的名下.

最终我可能会在另一个用户名的Linux机器上使用它.

有没有办法修改用户环境来更改Subversion调用你的用户名?我希望设置SVN_USERNAME='Mark'会覆盖,但它通常会得到名称.

更新:看起来--usernameMichael提到的标志确实可以更改报告的名称"svn stat",即使对于本地文件:存储库也是如此.此外,它是粘性的,因此您无需为下一个命令指定它.我甚至重新启动它仍然使用"--username"我之前启动时的值.

svn authentication username

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

你在哪里储存盐串?

在散列数据库存储密码时,我总是使用正确的每个条目的盐字符串.根据我的需要,将盐存储在哈希密码旁边的数据库中一直运行正常.

但是,有些人建议将盐与数据库分开存储.他们的论点是,如果数据库受到攻击,攻击者仍然可以构建一个彩虹表,将一个特定的盐字符串考虑在内,以便一次破解一个帐户.如果此帐户具有管理员权限,那么他甚至可能不需要破解任何其他帐户.

从安全角度来看,将盐储存在不同的地方是否值得?考虑在同一台机器上具有服务器代码和DB的Web应用程序.如果盐存储在该机器上的平面文件中,则很可能如果数据库受到损害,则salt文件也是如此.

有什么建议的解决方案吗?

security authentication hash cryptography salt

242
推荐指数
4
解决办法
7万
查看次数

当"隐式"流程运行良好时,为什么OAuth2中存在"授权代码"流程?

使用"隐式"流程,客户端(可能是浏览器)将在资源所有者(即用户)提供访问权限后获得访问令牌.

但是,通过"授权代码"流程,客户端(通常是Web服务器)仅在资源所有者(即用户)授予访问权限后才获取授权代码.使用该授权代码,客户端再次调用API,将client_id和client_secret与授权代码一起传递,以获取访问令牌.这里描述的都很好.

两个流都具有完全相同的结果:访问令牌.但是,"隐式"流程要简单得多.

问题:当"隐式"流程接缝没问题时,为什么要打扰"授权代码"流程呢?为什么不对webserver使用"Implicit"?

这对提供商和客户来说都是更多的工作.

authentication oauth oauth-2.0

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

REST身份验证方案的安全性

背景:

我正在为REST Web服务设计身份验证方案.这并非"真正"需要安全(它更像是一个个人项目),但我希望尽可能安全地将其作为锻炼/学习体验.我不想使用SSL,因为我不想要麻烦,而且主要是设置它的费用.

这些SO问题对我开始特别有用:

我正在考虑使用简化版的Amazon S3身份验证(我喜欢OAuth,但它似乎对我的需求来说太复杂了).我正在为请求添加由服务器提供的随机生成的nonce,以防止重放攻击.

要回答这个问题:

S3和OAuth都依赖于对请求URL进行签名以及一些选定的标头.他们都没有签署 POST或PUT请求的请求体.这是不是容易受到中间人攻击,它会保留url和header并用攻击者想要的任何数据替换请求体?

看起来我可以通过在被签名的字符串中包含请求主体的哈希来防止这种情况.这样安全吗?

authentication rest oauth amazon-s3 rest-security

225
推荐指数
4
解决办法
11万
查看次数

如何检查用户是否已登录(如何正确使用user.is_authenticated)?

我正在浏览这个网站,但似乎无法弄清楚如何做到这一点,因为它不起作用.我需要检查当前站点用户是否已登录(已通过身份验证),并且正在尝试:

request.user.is_authenticated
Run Code Online (Sandbox Code Playgroud)

尽管确定用户已登录,但它只返回:

>
Run Code Online (Sandbox Code Playgroud)

我可以做其他请求(来自上面网址的第一部分),例如:

request.user.is_active
Run Code Online (Sandbox Code Playgroud)

返回成功的响应.

python authentication django

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

将Keypair添加到现有EC2实例

我获得了AWS Console访问权限的帐户,其中有2个实例正在运行,我无法关闭(在生产中).但是,我想获得对这些实例的SSH访问,是否可以创建一个新的Keypair并将其应用于实例,以便我可以SSH?获取当前创建的实例的密钥对的现有pem文件目前不是一种选择.

如果这不可能,还有其他方法可以进入实例吗?

authentication permissions ssh amazon-ec2 amazon-web-services

224
推荐指数
7
解决办法
19万
查看次数