Невозможно сгенерировать токен обновления для API IBM Visual Recognition - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь работать с аутентификацией на основе токенов IAM.Я могу сгенерировать «токен доступа» и могу выполнять операции, используя «токен доступа».Теперь у меня возникла проблема при генерации «токена обновления».Я перехожу по этой ссылке https://cloud.ibm.com/docs/services/watson?topic=watson-iam.

Я использую приведенную ниже команду для создания токена обновления.Здесь значение заголовка авторизации получено с использованием имени пользователя в качестве «apikey» и значения в качестве моего ключа.Значение {refreh-token}, которое я использую, которое я получил при создании «токена доступа».

curl -k -X POST --header "Authorization: Basic Yng6Yng=" --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token={refresh-token}" "https://iam.bluemix.net/identity/token"

Я ожидаю получить токен обновления, но получаю ошибку {"context": "requestId":" 021c3482 ... ""}, "errorCode": "BXNIM0507E", "errorMessage": "Для API, связанных с OpenID Connect, необходимо отправить учетные данные клиента в качестве основного заголовка авторизации"}

Можеткто-нибудь, помогите мне понять, что происходит не так

1 Ответ

0 голосов
/ 30 мая 2019

Описание в https://cloud.ibm.com/docs/services/watson?topic=watson-iam неправильно описывает случай обновления.Я свяжусь с командой документации, чтобы обновить этот раздел.Это общее описание того, как получить токены для ключей API: https://cloud.ibm.com/docs/iam?topic=iam-iamtoken_from_apikey

Для использования API IBM Cloud позволяет генерировать токены доступа без предоставления идентификатора клиента / секретного ключа.В этом случае предполагается default идентификатор клиента, который позволяет создавать токены только для ключей API, но не авторизован для использования любого другого типа предоставления - включая grant_type refresh_token.Поэтому просто отбросьте маркер обновления из ответа на предоставление ключа API при первом вызове - вы не сможете его использовать.

В случае использования ключа API нет никакого преимущества использованияgrant_type refresh_token по сравнению с получением нового токена доступа с типом предоставления ключа API в любом случае - все шаги проверки, которые выполняются внутри (существует ли пользователь до сих пор / пользователь все еще находится в учетной записи / ...), идентичны.Но срок действия маркера обновления истекает - ключ API отсутствует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...