wso2 API Manager Неподдерживаемый метод аутентификации клиента!

Я пытаюсь использовать пароль OAuth2 grant_type = для запроса токена, как описано здесь с помощью диспетчера API WSO2. Используя следующую команду curl.

curl -k -d "grant_type=password&username=<uname>&password=<pwd>&scope=PRODUCTION" http://localhost:8280/token

Ответ на этот запрос:

{"error":"invalid_request","error_description":"Missing parameters: client_id"}

Затем я предоставляю свой ключ потребителя, и запрос curl становится следующим:

curl -k -d "grant_type=password&username=<uname>&password=<pwd>&scope=PRODUCTION&client_id=<myconsumerkey>" http://localhost:8280/token

Однако ответ сбивает с толку:

{"error":"unsupported_client_authentication_method","error_description":"Unsupported Client Authentication Method!"}

Итак, мой вопрос: API Man просто не поддерживает этот grant_type? Или я что-то здесь неправильно делаю? Следует ли мне искать сервер идентификации для этого типа гранта?

Ваше здоровье


person Chris A    schedule 17.01.2014    source источник


Ответы (1)


Вы хотите отправить учетные данные клиента (клиентский ключ и секрет) в заголовке HTTP Basic Authorization. Команда Curl будет такой, как следующая. Здесь «--user client-Key: client-Secret» использовался для создания заголовка базовой авторизации с помощью команды curl. Вы можете использовать следующую команду со своими значениями.

curl --user tFVhXORF35S9TTyeaZIH2IEXEw4a: 4h6fq4jgRYKrr4v91A_zQgw4Xtoa -k -d "grant_type = password & username = admin & password = admin" -H "Content-Type: application / x-www-form-urlencoded {/ IP / IP / токен

Добавьте к этому еще: я полагаю, что WSO2API не поддерживает получение учетных данных клиента в теле запроса. Согласно спецификации OAuth 2.0, это не рекомендуется. Проверьте здесь

person Asela    schedule 17.01.2014
comment
Спасибо @Asela. В этом случае у меня нет клиентского ключа или клиентского секрета. Следовательно, я пытаюсь использовать предоставление пароля владельца ресурса для получения токена (ов). Я полагаю, что единственная альтернатива, которую я видел, - это использовать api магазина для входа в систему, а затем получить ключ и секрет, а затем сгенерировать запрос для токена api. Есть предположения? - person Chris A; 18.01.2014
comment
Обычно, когда вы используете тип предоставления пароля владельца ресурса, вам также необходимо аутентифицировать клиента tools.ietf.org/html/rfc6749#section-4.3.2 В основном, поскольку вы разработчик приложения, вы должны зарегистрировать приложение и получить учетные данные клиента из магазина API. - person Asela; 18.01.2014