我目前的任务是编写一个RESTful API,我们将向客户发布该API。我计划在with中间件中使用Web 2。访问该应用程序的应用程序可以从没有附加用户身份验证的控制台应用程序到涉及用户登录和身份验证的完整的web应用程序。
另一个要求是,我们不仅需要提供用户身份验证来控制我们将返回的数据,还需要验证我们的组织是否允许应用程序访问我们的API。因此,这要求我们不仅验证调用API的应用程序,还需要验证通过该应用程序登录的许多用户。
我的目标是使用像OAuth 2这样的承载令牌技术。我对OAuth 2并不十分熟悉,但是在仔细研究之后,我看不到有一种方法可以方便像这样的两部分身份验证。理想情况下,我们希望发出一个clientId和一个clientPassword,它们会将其与用户in和用户密码一起传递进来,然后我们将返回一个令牌。
这是在使用OAuth2之前有人已经解决过的问题吗?还是这是一个自定义解决方案的工作?
发布于 2016-03-05 14:12:15
您所描述的内容听起来像是相当标准的Oauth2.0场景,因此您不需要任何自定义的东西。
对于网络应用程序,您可以使用资源所有者密码凭据授予。这是一个标准的流程。
这允许您的Oauth客户端将其客户端Id和客户端机密连同用户的Id和密码传递给Auth Server,然后Auth Server可以在响应发出令牌之前验证用户和客户端。
但是我建议使用授权代码授予,这可能是web应用程序的最佳选择,它涉及到客户端和用户都需要进行有效的身份验证。
对于您的控制台应用程序,或任何不特定于用户的应用程序,您可以使用客户凭据授予。这使得应用程序可以在没有用户的情况下进行身份验证和获取令牌。
如果需要API来了解客户端应用程序,那么唯一不能真正使用的流是隐式Grant,它不对客户端进行身份验证。
https://stackoverflow.com/questions/35806986
复制相似问题