【发布时间】:2019-11-26 01:58:35
【问题描述】:
我们使用一些组织的 API 有一段时间了,但现在他们开始使用 OAuth2 进行身份验证。他们的 API 完全由我们的应用程序以编程方式使用。所以现在我们必须使用 OAuth2 进行身份验证,这样我们才能再次使用他们的 API。
我对这个身份验证过程有点困惑。有没有一种方法可以以编程方式使用 OAuth 进行身份验证?它说,在继续进行身份验证之前,将要求用户进行身份验证时登录,您如何仅从代码中实现此登录?或者您是否需要先使用浏览器进行身份验证,然后使用访问令牌来获取来自应用程序的进一步请求。这种场景下OAuth2认证的典型流程是什么?
编辑:只有一个用户是我们的应用程序用于访问其数据的帐户。该用户最终注册为 API 的使用者。
【问题讨论】:
-
你的应用或者调用api的部分是做什么的?它是一些后台或独立于用户的工作,还是代表用户调用 api? api 提供者是否知道用户或需要一些 SSO 登录,例如通过谷歌、Facebook 等?
-
在不知道你真正需要什么的情况下:一般来说,OAuth 当然可以以编程方式使用(无需用户交互)。
-
@Thomas API 用于从他们的服务器访问我们解析的一些 xml 响应,这是每天在某个时间完成的计划作业。只有一个用户是我们应用程序使用的帐户,没有其他用户,因此 API 提供者知道我们的帐户,它被注册为 API 的消费者。
-
好吧,在这种情况下,我会说您需要“密码”流程或“客户端凭据”流程(您可以查找它们)。哪个适合您的需求取决于 api 的配置方式:如果您的应用程序只是从 api 的角度来看的“用户”,那么我会说使用“密码”流程(api 应该为此提供一些登录机制 - 你'd login 以获取您在后续请求期间发回的访问令牌) - 如果您的应用程序是服务提供者(客户端),“客户端凭据”流程应该足够了(如果 api 支持它)。
-
@Thomas 从他的问题和 cmets 中所说,我假设他想使用 client_credentials 流程。
标签: java authentication oauth oauth-2.0 meetup