将OAuth2.0身份验证添加到 RESTfulAPI

我有一个需要通过 OAuth 2.0 进行身份验证的 API。我最初预计使用HWIOAuthBundle,但是从调查来看,这更多地与将第三方连接到 Symfony 的安全 / 身份验证机制有关,并且不提供验证 OAuth 2.0Authorization头所需的机制。

我有一个需要通过 OAuth 2.0 进行身份验证的 API。我最初预计使用HWIOAuthBundle,但是从调查来看,这更多地与将第三方连接到 Symfony 的安全 / 身份验证机制有关,并且不提供验证 OAuth 2.0Authorization头所需的机制。

然后,我发现了一些关于FOSOAuthServerBundle的信息,它使应用程序成为自己的 OAuth 2.0 提供者,并提供所需的安全机制来验证Authorization头。

但是问题是,我想将 OAuth 2.0 提供程序(授权服务器)集成到外部应用程序(包含用户群)中,而不是将其包含在 API 中。这将提供一些机制,用于通过(另一个)RESTful API 针对此外部应用程序执行令牌验证。

Points:

RESTful API 需要 OAuth 2.0 身份验证。

OAuth 2.0 授权服务器位于单独的应用程序中。

我觉得我应该使用Implicit授予并在每个请求上调用授权服务器来验证令牌是否正确。

我的想确吗?

5

至于我 undesratnd 您的要求,您需要通过外部 OAuth 授权服务器验证您的 API:

客户端需要提供上述步骤中检索到的访问令牌以及访问受保护资源的请求。访问令牌将作为请求标头中的授权参数发送。

服务器将根据令牌对请求进行身份验证。

如果令牌有效,则客户端将获得对受保护资源的访问权限,否则访问将被拒绝。

这里是一个example,它可能会帮助您实现您的要求。检查此document

或者简单地说,你可以用Jersey and Oauth

此外,您可以检查Apache Oltu并找出实现您的要求的方法。

3

A lot of the big companies like Google, Facebook etc have a separate authorization server from the API server. Check out Google's OAuth authorization flow below Google OAuth Authorization

您也可以查看 Google 的OAuth Documentation了解详情。

因此,您需要做的就是实现 OAuth 提供程序,以便您可以授权该提供程序。OAuth 网站上有一个可用的库列表:http://oauth.net/code。您可以具体查看here;有一个在 Java 中运行 OAuth 服务提供商的示例。

2

oAuth 绝对可以是应用程序服务器以外的服务器。下面是身份验证序列的图片:

enter image description here

-显然,如果论坛无法解码或验证令牌,论坛将返回 401 状态代码而不是 200 状态代码。

只要您的 oAuth 服务器 & amp;论坛共享相同的公钥,您就可以分割您的 oAuth 服务器 & amp;您的应用程序。

事实上,看看jwt.io。将您从 oAuth 服务器获得的令牌粘贴到那里。它应该能够立即解码令牌。然后,您可以将您的公钥放入 'secret' 文本框中,以验证令牌是否得到验证。

您的应用程序(论坛,在这个例子中)应该能够做到这一点:

1)从请求的授权头获取令牌

2)解码令牌

3)检查到期日期

4)使用 oAuth 的公钥验证令牌

5) 返回成功状态码或失败状态码

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(431)
如何在Wordpress中正确出列某些Elementorcss文件
上一篇
当需要在视图上执行invalidate()时
下一篇

相关推荐

  • presto 源码从架构到实现

    示例示例Presto 是一款开源的分布式 SQL 查询引擎,由 开发,它可以在大数据集合上快速执行 SQL 查询。它的源码是使用 Java 语言编写的,可以在 Apache License 0 许可下免费获取。Presto 源码的主要组成部分包括:…

    2023-04-01 04:28:17
    0 38 40
  • webapi是什么构建高性能RESTful API

    WebAPI是一种创建HTTP服务的框架,它可以让你使用HTTP协议提供数据访问服务。它可以被用于创建RESTful服务,它可以支持多种格式,如XML,JSON,HTML等。…

    2023-04-23 01:51:50
    0 92 66
  • php如何做接口:使用 PHP 创建 RESTful API 接口

    示例示例PHP可以使用CURL来实现接口,下面是一个简单的代码示例:…

    2023-01-15 03:39:24
    0 13 42
  • restful和webservice区别比较两种不同的Web服务架构

    示例示例Restful和都是用于实现远程调用的技术,但它们之间有一些重要的区别。Restful是一种设计风格,它使用HTTP协议来传输数据,而是一种技术,它使用XML来传输数据。…

    2023-03-14 00:59:51
    0 76 89
  • forrester 低代码:如何利用Forrester低代码技术提升业务效率

    Forrester Low Code是一种开放源代码的应用程序开发平台,它使用基于Web的界面来帮助开发者快速构建功能强大的应用程序。它提供了一种简单的方法,可以使用低代码技术来创建和部署应用程序。…

    2023-04-30 11:07:27
    0 70 39
  • presto源码(含代码示例)

    Presto源码是一个开源的分布式SQL查询引擎,它可以在各种数据源之间执行交互式查询。它的核心是一个可扩展的查询处理引擎,它可以处理大量的数据,并以高性能的方式返回结果。 Presto源码由多个模块组成,包括:…

    2023-04-18 05:43:33
    0 36 66
  • Ful i one:netsuite有RESTfulAPI吗

    关于Ful i one的问题,在netsuite api documentation pdf中经常遇到,我想知道 Netsuite 是否提供 REST ful api?目前我正在使用基于 SOAP 的 Web 服务与我的应用程序(java)进行集成。我已经做了一些研究,但没有得到有用的信息。…

    2022-12-11 10:11:46
    0 43 38
  • Cv林簌:隔离林评价(anomaly detection with isolation forest)

    关于Cv林簌的问题,在anomaly detection with isolation forest中经常遇到,第一次使用隔离森林 (sklearn) 运行异常检测。我有一个连续变量的数据帧与我一个热编码的分类变量混合。然后我创建了一个数据透视表 (我每天所有字段的总和)。我运行了模型,并将异常分数和标签添加到我的表中。问题是...有没有办法查看哪些特征 (s) 对任何给定异常的异常标签有贡献?…

    2022-12-18 08:18:23
    0 13 50

发表评论

登录 后才能评论

评论列表(38条)