我有一个需要通过 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授予并在每个请求上调用授权服务器来验证令牌是否正确。
我的想确吗?

至于我 undesratnd 您的要求,您需要通过外部 OAuth 授权服务器验证您的 API:
客户端需要提供上述步骤中检索到的访问令牌以及访问受保护资源的请求。访问令牌将作为请求标头中的授权参数发送。
服务器将根据令牌对请求进行身份验证。
如果令牌有效,则客户端将获得对受保护资源的访问权限,否则访问将被拒绝。
这里是一个example,它可能会帮助您实现您的要求。检查此document。
或者简单地说,你可以用Jersey and Oauth
此外,您可以检查Apache Oltu并找出实现您的要求的方法。
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 Documentation了解详情。
因此,您需要做的就是实现 OAuth 提供程序,以便您可以授权该提供程序。OAuth 网站上有一个可用的库列表:http://oauth.net/code。您可以具体查看here;有一个在 Java 中运行 OAuth 服务提供商的示例。

oAuth 绝对可以是应用程序服务器以外的服务器。下面是身份验证序列的图片:
-显然,如果论坛无法解码或验证令牌,论坛将返回 401 状态代码而不是 200 状态代码。
只要您的 oAuth 服务器 & amp;论坛共享相同的公钥,您就可以分割您的 oAuth 服务器 & amp;您的应用程序。
事实上,看看jwt.io。将您从 oAuth 服务器获得的令牌粘贴到那里。它应该能够立即解码令牌。然后,您可以将您的公钥放入 'secret' 文本框中,以验证令牌是否得到验证。
您的应用程序(论坛,在这个例子中)应该能够做到这一点:
1)从请求的授权头获取令牌
2)解码令牌
3)检查到期日期
4)使用 oAuth 的公钥验证令牌
5) 返回成功状态码或失败状态码
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(38条)