OAuth 2.0客户端的定义

6
我正在为我们的系统开发基于REST的API。我们将有几种类型的客户端:
  • Web浏览器 - 在加载HTML5应用程序后,这些浏览器将访问我们的API
  • 由我们开发的移动应用程序
  • 由第三方开发的移动应用程序
我想问一下,在定义客户端时应该使用什么策略。例如:
  • 我们的系统中的每个用户是否需要被定义为一个客户端,因为他们需要进行身份验证,或者Web客户端被视为一个客户端?

  • 我们是否为iPhone应用程序分配一个客户端,为Android应用程序分配另一个客户端?

  • 每个使用我们的API的第三方开发人员是否会获得单独的客户端ID?

谢谢,
Assaf

所以我们没有为每个用户创建一个客户端,只为每个应用程序(我们自己的或第三方的)创建了一个客户端。 - checklist
2个回答

2
访问 Google API控制台 并创建一个项目。然后访问 API访问 菜单来创建客户端ID。您将看到不同客户端类型所需的数据,包括Web应用程序、Android和iPhone应用程序。这可能有助于确定您自己的要求。
以下是截图:

enter image description here


谢谢。这是一个很好的例子。让人更容易理解。 - checklist

0

这是一个很好的问题。出于自己的原因,我一直在研究这个问题。以下是我的想法:

a) 每个用户在OAuth方面并不被定义为客户端。在OAuth方面,客户端是提供授权机制的定义。 b) 我会根据需要支持的OAuth流程来定义我的客户端类型

例如: 您可以为所有客户端使用相同的客户端类型。根据OAuth 2规范(http://tools.ietf.org/html/draft-ietf-oauth-v2-25),移动客户端和Web客户端被视为“公共客户端”,因此您可以决定仅为所有客户端支持隐式授权类型,并将其表示为OAuth中的1个客户端类型。

c) 您可能决定区分不同类别的用户,例如您可能希望为不同的客户端设置不同的令牌超时期限,因此您应该为这些客户端定义不同的客户端类型。

总之,我认为您应该根据需要支持的授权类型和需要支持的不同配置来定义您的OAuth客户端类型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接