加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 没有用户身份验证的安全REST API(无凭据)

发布时间:2020-12-17 07:13:45 所属栏目:安全 来源:网络整理
导读:我现在一直在努力研究如何在没有用户身份验证的情况下保护REST API. 这是什么意思 ? 在我的AngularJS应用程序中,我通过向现有服务(companydomain / userinfo)发送GET请求来识别用户,我必须使用该服务.我不确定这是如何工作的,因为我不是这段代码的作者,但关
我现在一直在努力研究如何在没有用户身份验证的情况下保护REST API.

这是什么意思 ?

在我的AngularJS应用程序中,我通过向现有服务(companydomain / userinfo)发送GET请求来识别用户,我必须使用该服务.我不确定这是如何工作的,因为我不是这段代码的作者,但关键是我在响应中获得有关用户的信息作为JSON(活动目录名称,公司中的电话……).

这是我必须识别用户的全部内容.

我做了什么

现在,我发现很多资源都在讨论OAuth,唯一令牌等等,但似乎没有什么能与我的问题相提并论.我实现了一个令牌系统,但由于我无法确定请求者的真实性,因此它毫无用处.

>用户打开应用程序.应用程序向服务询问有关用户的信息. companydomain /用户信息
>应用程序根据返回的信息向服务器请求令牌(nodejs& express). / API /标记/获得/ {} USER_INFO
>服务器生成一个唯一的令牌,并将其存储在内存中,并包含到期日期和所有者.如果用户存在(基于活动目录名称),服务器还会检查“授权用户”表,如果没有添加新条目.
>应用程序将每个请求的令牌发送到API. / API /项/删除/ {} entry_id

我认为你看到这里出了什么问题,攻击者可以轻易地向API发出损坏的请求以获得合法的令牌.所以我的问题是:

由于用户不使用凭据进行身份验证,我如何设法保护我的API?

我希望我的问题足够清楚,在这一点上,我甚至不确定如果不添加凭证系统我就能解决这个问题.

解决方法

因为您说用户信息端点返回活动目录名称,我假设您在Windows平台上.

如果是这样,为什么不使用Windows integrated authentication(Kerberos)来验证您的用户而不要求他们提供凭据?这仅适用于您的活动目录域,但对您的服务完全透明.

您仍然可以调用用户信息端点并验证它返回的信息是针对呼叫您的REST服务的同一用户.

如果您需要调用不支持Windows集成身份验证的服务,则可以生成security token(对其进行签名以保证完整性)并使其他服务信任此令牌.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读