Http OAuth2-无用户交互的授权

Http OAuth2-无用户交互的授权,http,oauth,oauth-2.0,authorization,Http,Oauth,Oauth 2.0,Authorization,因此,我试图通过外部应用程序的API访问我自己的数据。我只需要访问我自己的数据。不尝试从我的任何用户帐户接收数据,因此他们不需要授权任何内容。因此,显然我需要避免任何重定向(这似乎是我研究OAuth越多的标准过程…) 进程被点击/authorize端点,该端点返回一个代码。然后在对accesstoken端点的请求中提供该代码。然后允许我通过API访问我的帐户。我95%确信这个过程对于所有OAuth来说都是标准的,但我想我会提供细节,以防它不是 我如何在后端提供凭证,以获取代码输入令牌请求,从而否

因此,我试图通过外部应用程序的API访问我自己的数据。我只需要访问我自己的数据。不尝试从我的任何用户帐户接收数据,因此他们不需要授权任何内容。因此,显然我需要避免任何重定向(这似乎是我研究OAuth越多的标准过程…)

进程被点击
/authorize
端点,该端点返回一个代码。然后在对
accesstoken
端点的请求中提供该代码。然后允许我通过API访问我的帐户。我95%确信这个过程对于所有OAuth来说都是标准的,但我想我会提供细节,以防它不是


我如何在后端提供凭证,以获取代码输入令牌请求,从而否定所有用户交互?我正在使用的API强制我使用OAuth。

您正在描述的oauth2授权被调用。这种身份验证方式的设计使希望访问用户资源的应用程序能够访问用户凭据

所以,若你们在这个授权中找到了一种和用户凭证交互的方法,那个么它将被认为是一种黑客行为

如果您不希望单个用户输入用户名和密码,但希望使用某种“系统帐户”访问api,则不应使用oauth授权

有多项补助金对你有效。问题是授权服务器支持哪些,哪些对您可用

此授予类型适用于能够获取资源所有者凭据的客户端

然而

资源所有者密码凭据授予类型适用于 资源所有者与 客户端,如设备操作系统或高特权应用程序

这种授权类型很可能不可用,因为它可能被误用来窃取用户凭据

客户端可以仅使用其客户端凭据请求访问令牌

如何将资源绑定到客户端不是oauth规范的一部分,因此是特定于提供者的



如果您想阅读更多关于oauth2的文章,这是一篇很好的文章。

您正在描述的oauth2授权流是授权代码授权流,如上面的回答所示。就像他们说的,如果你可以选择在API中使用上述两种授权中的一种,那就是最简单的解决方案


但是,如果您不这样做,仍然有一种方法可以避免“用户交互”。不清楚“用户交互”是什么意思,但在授权代码流中,这通常意味着登录到调用您试图验证的API的web应用程序,然后在同意页面上同意。请参阅以获取示例(我为Fitbit:实现了OAuth 2)。您需要使用Selenium之类的自动web浏览器来单击“同意”按钮。然后,您可以从/authorize的响应中捕获代码,并将代码发送到accesstoken端点

我已经尝试了这两种方法,我们无法使用此流访问带有Graph API的一个驱动器。您将得到一个
租户没有SPO许可证的错误。其中,如果我使用
用户流
,该流中的访问令牌允许我使用单驱动API。