Невозможно сгенерировать токен обновления для API IBM Visual Recognition
Я пытаюсь работать с аутентификацией на основе токенов 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 ответ
Описание в 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 нет.