Сбой токена аутентификации RingCentral в вызове Curl — неавторизованный для этого типа гранта

Я пытаюсь получить токен аутентификации из RingCentral auth token /restapi/oauth/token конечная точка с cURL, но происходит сбой с ошибкой:

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"

person Robert    schedule 07.12.2017    source источник


Ответы (1)


Поток паролей OAuth 2.0

Вы делаете запрос OAuth 2.0, используя предоставление пароля OAuth 2.0 (grant_type=password), также известное как «поток паролей» на портале разработчиков RingCentral и формально как предоставление «учетных данных владельца ресурса» в стандарте OAuth 2.0 IETF RFC 6749.

Чтобы использовать поток паролей, ваше приложение должно поддерживать тип авторизации Password flow, как показано на снимках экрана ниже.

Чтобы использовать этот поток, ваше приложение должно соответствовать двум критериям:

  • Уметь защищать секрет клиента: учетные данные приложения включают идентификатор клиента и секрет клиента. Для потока паролей секрет клиента должен быть защищен от конечных пользователей, например. в защищенном серверном приложении. Его нельзя использовать с клиентским приложением только для браузера, потому что конечные пользователи смогут проверять и извлекать секрет клиента.
  • Будьте частным приложением: поток паролей требует, чтобы владелец приложения имел доступ к паролю владельца ресурса (он же конечного пользователя). По этой причине его можно использовать только с частными приложениями, в которых владелец приложения и владелец ресурса находятся в одной организации. Он не поддерживается для общедоступных приложений, поскольку разработчики приложений не должны предоставлять пароли.

Чтобы использовать этот тип гранта, вам необходимо убедиться, что ваше приложение настроено на получение гранта потока паролей на портале разработчиков RingCentral, как показано ниже:

Мастер создания приложений

При создании приложения убедитесь, что выбран «Поток паролей». Ваши варианты основаны на «типе приложения» и «типе платформы» для вашего приложения, которые, в свою очередь, связаны со спецификациями безопасности вашего приложения.

Мастер создания приложения RingCentral Password Flow

Вот анимированный GIF-файл, показывающий различные настройки приложения для предоставления OAuth.

Страница настроек приложения

Чтобы убедиться, что в существующем приложении включен «поток паролей», перейдите на страницу «Настройки» приложения в раздел «Настройки OAuth» и убедитесь, что поток паролей присутствует.

Страница настроек приложения RingCentral Password Flow

Вот некоторая информация о предоставлении пароля в IETF RFC 6749:

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

person Grokify    schedule 11.12.2017