RingCentral Auth令牌在卷曲呼叫中失败 - “未授权此授权类型”

时间:2017-12-07 10:24:56

标签: curl oauth-2.0 ringcentral

我正在尝试使用cURL从RingCentral auth token /restapi/oauth/token端点获取身份验证令牌,但失败并显示错误:

400 Bad Request

{
    "error": "unauthorized_client",
    "error_description": "Unauthorized for this grant type",
    "errors": [
        {
            "errorCode": "OAU-251",
            "message": "Unauthorized for this grant type"
        }
    ]
}

这就是我的尝试:

curl -X POST "https://platform.devtest.ringcentral.com/restapi/oauth/token" \
-H "Accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "clientId:clientpassword" \
-d "username=username&password=password&extension=101&grant_type=password"

1 个答案:

答案 0 :(得分:3)

OAuth 2.0密码流

您正在使用OAuth 2.0密码授权(grant_type=password)创建OAuth 2.0请求,也称为"密码流"在RingCentral Developer Portal中,正式作为资源所有者密码凭证"在OAuth 2.0 IETF RFC 6749标准中授予。

要使用密码流,您的应用程序必须支持以下屏幕截图中所示的Password flow授权类型。

要使用此流程,您的应用需要满足两个条件:

  • 能够保护客户端密钥:应用程序凭据包括客户端ID和客户端密钥。对于密码流,必须保护客户机密钥免受最终用户的影响,例如在安全的服务器上。它不能与仅浏览器的客户端应用程序一起使用,因为最终用户可以检查和检索客户端密钥。
  • 是私有应用:密码流要求应用所有者可以访问资源所有者(也称为最终用户)密码。因此,它只能用于应用程序所有者和资源所有者位于同一组织中的私有应用程序。公共应用程序不支持它,因为密码不应该是应用程序开发人员可用的。

要使用此授权类型,您需要确保您的应用配置为在RingCentral Developer Portal中具有密码流授权,如下所示:

创建应用向导

创建应用时,请务必确保"密码流"被选中。您的选项基于"应用程序类型"和#34;平台类型"对于您的应用,反过来又与您应用的安全规范相关。

RingCentral Password Flow Create App Wizard

这是一个动画GIF,显示OAuth授权设置的各种应用。

应用设置页面

验证现有应用有"密码流"已启用,请转到应用程序"设置"页面" OAuth设置"部分并验证密码流是否存在。

RingCentral Password Flow App Settings Page

以下是IETF RFC 6749中密码授予的一些信息:

https://tools.ietf.org/html/rfc6749#section-1.3.3