【问题标题】:Best oauth grant type to use for my application用于我的应用程序的最佳 oauth 授权类型
【发布时间】:2015-01-12 03:53:35
【问题描述】:

我是我公司的一名 php 开发人员,我对 Oauth 的这个概念很感兴趣。 我一直在网上搜索并阅读了几乎所有我能找到的关于 oAuth 的文章,但我仍然不知道如何处理这种情况。

我住在荷兰,如果我的写作有时有点不妥,请见谅。

我正在为我们公司处理申请。它是一个在线工作平台,人们可以在此注册以找到工作。

我们将我们的在线应用程序出售给提供工作机会等的公司。

因此,我们为每家购买我们的 Web 应用程序的公司提供一个 URL,例如:http://companyname.onlinejobs.com(例如)。 所以我们有可以登录他们的应用程序的后端用户,他们每个人都有不同的角色和权限。

我们还有http://onlinejobs.com 作为一个网站,每个人都可以注册以查看工作机会等等。 所以我们还有一个前端用户,它也可以有多个角色,比如免费用户和高级用户。

我们已经构建了一个 REST API,它包含添加和查看作业和配置文件等的所有方法。我们希望这个 API 只能被我们注册的客户端访问。 所以如果我注册 company1.onlinejobs.com 比我认为是客户端,只能使用我们的 api。

但现在我们想将 oAuth 集成到这种情况中。 我们希望保护 API 免受任何未注册客户端的影响,但我们还希望确保前端免费用户无法访问高级前端用户可以进行的 surtain api 调用。

或者这种基于权限的行为不适合 oAuth? 我们可以针对我们的情况使用 oAuth2 使用的哪种授权类型? 我真的需要这些家伙的帮助..希望有人能给我一个清楚的解释,告诉我什么是最好的,甚至根本不用。

【问题讨论】:

  • 授权授予为客户端提供访问令牌(可能还有刷新令牌)。虽然根据具体情况肯定有充分的理由选择一种授权而不是另一种授权,但这些与用户权限无关。您是否将授权客户端与授权用户(即资源所有者)混淆了?考虑(重新)阅读tools.ietf.org/html/rfc6749的规范。

标签: php laravel oauth-2.0 user-permissions multi-tenant


【解决方案1】:

我们有一个类似的用例,我们构建了自己的授权服务器,可以处理以下用例

  • 来自
  • 的身份验证和授权
  • 网络应用程序
  • 启用 javascript 的应用 [如 SPA 应用]
  • Windows 服务或 Windows 应用等原生应用

我们在 OAuth2.0 中使用了以下流程

  1. 授权码
  2. 隐式流
  3. 资源所有者凭据

因此,需要根据您计划支持的应用程序类型来确定正确的流程选择。

HTH

【讨论】:

  • 隐式不太安全,那又如何?
  • @Pratik,隐式流主要用于具有本机用户界面的应用程序,例如移动应用程序等。考虑到安全性,我们应该通过 HTTPS 执行所有这些操作,它安全地包装了整个流程。甚至有企业公司将 SAML2 与他们的 AD 一起使用以实现更安全的操作。这些问题主要适用于面向公共 Web 的应用程序,而不适用于 VPC,但我们拥有的每个选项都可能存在争议:)
  • 对于单页应用来说,使用 Auth 授权比其他一切都好。时期!请谷歌水疗中心授权码授权。谢谢 :) 让我为您提供方便,请阅读此auth0.com/blog/oauth2-implicit-grant-and-spa 官方文档,谢谢。
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2018-05-18
  • 2014-12-18
  • 1970-01-01
  • 2011-07-15
  • 2011-03-16
  • 2019-07-05
  • 2019-08-18
相关资源
最近更新 更多