将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) 返回成功状态码或失败状态码

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

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

相关推荐

  • presto 源码从架构到实现

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

    2023-04-01 04:28:17
    0 43 50
  • crestron是什么牌子领先的家庭自动化技术提供商

    Crestron是一家全球领先的自动化和控制技术公司,专注于提供先进的系统解决方案,用于智能家居,企业,教育,医疗和公共空间。 Crestron的产品结合了最新的技术,如触摸屏,遥控器,智能手机应用程序,智能家居技术,网络解决方案,多媒体控制和投影仪控制等,可提供完整的控制和自动化解决方案。 Crestron的核心代码是“CTRL”,它是Crestron的控制系统的基础。…

    2023-08-02 00:45:01
    0 53 75
  • pinterest网页版在Pinterest上发现新的创意

    Pinterest网页版是一种社交媒体平台,它允许用户分享图片,视频,文章和其他内容。用户可以在Pinterest上创建自己的主页,收集和发布内容,并与其他用户进行交流。…

    2023-09-29 13:31:45
    0 35 32
  • webapi是什么构建高性能RESTful API

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

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

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

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

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

    2023-03-14 00:59:51
    0 90 73
  • flask restful接口开发实例:使用Flask Restful实现RESTful API开发

    Flask-RESTful 是一个 Flask 扩展,用于快速构建 REST API。它提供了一种简单的方法来定义资源,并以标准的方式处理 HTTP 请求。以下是一个使用 Flask-RESTful 开发 REST API 的示例:…

    2024-05-16 11:45:13
    0 79 66
  • forrester 低代码:如何利用Forrester低代码技术提升业务效率

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

    2023-04-30 11:07:27
    0 48 59

发表评论

登录 后才能评论

评论列表(11条)