Я отвечаю на свой вопрос ...
TLDR
Ответ от @naoko выше верен: пройти авторизацию CKAN через WSO2 API-M включите X-CKAN-API-Key
в качестве заголовка со значением, установленным для личного ключа CKAN API вашего пользователя CKAN.
Длинная версия
Передайте ключ API CKAN следующим образом:
curl -k -H "Authorization: Bearer wso2-app-key-here" -H "X-CKAN-API-Key: ckan-authorization-key-here" https://myWso2DeveloperPortal.com:8243/daas/3.0.1/action/resource_show?id=resource-id-of-CKAN-dataset-here
(используйте -k
, если хост имеет самозаверяющий сертификат https)
Где ...
wso2-app-key-here
- это ключ приложения, найденный на портале разработчиков WSO2. ckan-authorization-key-here
- это закрытый ключ вашей учетной записи пользователя в CKAN. (Его можно найти на странице вашего профиля пользователя в пользовательском интерфейсе CKAN.) resource-id-of-CKAN-dataset-here
- это идентификатор ресурса набора данных, который вы хотите запросить.
Метод resource_show
в этом примере возвращает метаданные для данного ресурса CKAN. Другие методы CKAN вызываются аналогичным образом.
Это все благодаря CKAN за альтернативу передаче ключа в заголовке с именем Authorize
. В случае CKAN можно использовать переменную X-CKAN-API-Key
. И это может быть легко передано, как показано выше.
Mea culpa за то, что я не поймал это в документах CKAN в первую очередь (это прямо там, на моем собственном скриншоте выше!) ... если бы я внимательно прочитал это сохранил бы сообщение SO к лучшему или худшему;)
Если бы CKAN не предоставил альтернативу с X-CKAN-API-Key
, то это можно сделать в версии 3.0.0, как описано на этих страницах:
«Передача пользовательского токена авторизации в бэкэнд»
https://apim.docs.wso2.com/en/latest/Learn/APIGateway/MessageMediation/passing-a-custom-authorization-token-to-the-backend/
FWIW, я на самом деле пробовал это перед тем, как попробовать решение X-CKAN-API-Key и его не работал Может я что-то не так делаю Но так как решение X-CKAN-API-Key работает для меня, я называю его готовым.