比较来自世界各地的卖家的域名和 IT 服务价格

客户端应用程序的身份验证 REST API 使用 CORS 当地战略

问题:

提供保护 API 客户端应用程序仅使用本地身份验证策略。

红色箭头是知识中不连续的一部分。


语境:

IE - - -
client.example.com

做。

POST-
api.example.com/login


, 在成功的地方
client.example.com

可以访问 GET

-

服务如
api.example.com/secret

.

主意!

模拟 OAuth 2.0 坐在前面的混合类型的授权 API.

为什么混合?


它不会
Implicit Grant Flow

aka
Client-Side Web Applications Flow

, 因为服务器没有重定向 API, 这也提供了访问标记。 /它是。/

" 点亮了 so-and-so 访问您的数据?

"

它不会
Resource Owner Password Flow

, 因为

客户 ID 以及客户的秘密

与请求一起传输,因此假设客户端应用程序在服务器端。


OK... 那么那个小而另一个呢?

如果我们使用令牌,该怎么办 CRSF 下载客户端应用程序的页面时 POST 它也与用户凭据一起 OAuth 2.0 是否在访问令牌上共享认证的结束点? 您将使用Access和Token令牌验证每个后续请求 CRSF 成功登录后。

良好的图书馆 Node.js OAuth 2.0, 我发现了哪个

:

https://github.com/ammmir/node-oauth2-provider
帮我!

我找不到解决此问题的身份验证措施的工作示例! 向我指定正确的方向?

最终,这里的目标也是对客户端应用程序进行身份验证 REST api, 使用 CORS 通过当地策略,有一个用户名 & 密码即使上述协议是不可能的。

为了适应慷慨:

这是一个客户端应用程序,所以让我们保持时尚。

我正在寻找一个工作的例子,

使用种子 Node.js OAuth 2.0 上面是服务器 API/Auth 和前景框架,如

Angular.js

或者 Backbone.js

,

提出要求。

该示例必须对应于上述上下文。
已邀请:

窦买办

赞同来自:

我在具有相当类似的架构的应用程序上工作,尽管服务是 .NET Web API, 不是节点,我们使用
http://dotnetopenauth.net/
供应商 OAuth. 除了您提供的混合方法,我们执行以下操作:

x.com 服务登录页面

页面输入 POSTs 返回凭据 x.com

服务器端逻辑 x.com 单位 client_id 和 client_secret 使用凭据发送令牌请求 /
http://tools.ietf.org/html/rfc6749#section-4.3
, 你有的
上文提到的/ 回到临时访问标记和标记
更新

更新标记将加密到文件 cookie, 发布 x.com

然后作为文件转到浏览器 cookie /加密令牌更新/, 所以临时访问令牌

客户应用程序 /在我的情况下 angular/ 现在可以使用Access标记按下 api.x.com 对于服务 /看起来你很清楚约束 CORS... 我们攻击了这个版本 angular
http://docs.angularjs.org/api/ ... ource
, 为了减轻它,但它不是很漂亮,因为我们想使用一切 HTTP 动词和维护 IE9/

当访问标记到期时,客户端应用程序可以从中申请新的访问标记 x.com

在服务器端 x.com 解密文件。 cookie, 要获得更新标记,并提供另一个电话 oauth 对于新的访问标记

这是一个很高的水平,但我希望,让您了解如何应对您的情况。 在我的情况下,如在你的情况下,我们不想使用会话状态或数据库来存储更新令牌,但显然,提供其浏览器的提供创建安全问题,因此更新令牌加密很重要 /其他安全原因/, 并使用文件 cookie 消除了对会话或其他常量存储的需求 x.com.

帅驴

赞同来自:

我建立了这个例子 Node 和 PassportJS, 展示如何使用用户进行身份验证 Facebook 或地方战略。 如您所描述的,双方都处于不同的域中,这是必需的 CORS.

GitHub: https://github.com/pablodenadai/Corsnection
https://github.com/pablodenadai/Corsnection
Live demo:
http://corsnection-client.herokuapp.com/
/

诸葛浮云

赞同来自:

不是为奖品运行的回复。 只有我 2 美仙 :/

在我的Web服务器上,

我通过挑战进行身份验证 rest 登录/密码通过基本身份验证 https. 此调用将密钥传送到客户端。 /单页Web应用程序/.

然后每个后续呼叫 REST 由关键签名。 服务器检查签名的正确性,并且一切仍然发生在 https.

我相信这种机制是非常使用的。

我看到跨域没有问题。 我有一个来源 anf, 如果我需要另一个来源的东西,我会使用 JSONP.

我用 nginx 作为探险服 https - >http.

我不知道他如何与决定竞争 OAuth2.

二哥

赞同来自:

我不能保证我会有时间编写一个工作的例子,但我可以告诉你 2 小路 :/

最大的交易结束。 决定此问题后,您将很容易使用该服务。 $http. 所以,第一个也可能是最简单的可以设置反向代理服务器 x.com webserver, 这表明了 api.x.com. 我写了一篇文章
https://coderoad.ru/10304198/
为此目的,第二种方法更好地创建,以允许特定域使用您的资源。 这包括一些编码 api.x.com, 因此,您无需在其他域中提供的新Web应用程序中更改任何内容。 你只需要授权 CORS 服务要求 api.x.com.

在数据库中创建一个表,您可以在其中管理授权域列表中。

添加此表 " x.com"

在 api.x.com 添加查询过滤器/拦截器,无论在请求处理后必须调用的方法,以及添加响应后的方法
Access-Control-Allow-Origin: x.com

, 如果请求来自 x.com /换句话说,检查请求标头,以使值对应于上表中的任何值,并将此值放在响应标头中 Access-Control-Allow-Origin/.

就这样 :/ 之后,如果你知道如何使用
http://docs.angularjs.org/api/ng.$http
或者
http://api.jquery.com/jQuery.ajax/
, 你可以 POST/PUT/DELETE/... 任何请求 api.x.com 在几分钟内从任何授权域名。

窦买办

赞同来自:

我非常类似于使用Web应用程序的想法 vinilla js 和交叉域身份验证 GAE backend 或者 OpenID connect.

Web应用程序开始 CDN. 单击登录链接时,它将进入相应的登录服务器并重定向到Web应用程序 /使用安全令牌 XSRF 而且只有饼干 HTTPS/. 输入服务器接受跨域请求。
https://developer.mozilla.org/ ... tials
数据。 令牌 XSRF 必须安装 /在标题中/ 每个请求。 文件 cookie 在浏览器中。 因为它只是一个文件 cookie HTTP, JS 不能读它。 技术非常安全。

登录系统后,您可以从入口处获取安全的评级。

详细描述您可以找到
http://dev.yathit.com/auth/ydn-login-client.html
, 和
https://bitbucket.org/ytkyaw/ydn-auth/wiki/Home
开源 - 这里。

要回复问题请先登录注册