Статьи

Как и зачем использовать URL-адрес OAuth-прокси с облачными элементами

Итак, этот заголовок должен действительно читать «Почему и Как …», так как я планирую начать с «Почему», а затем перейти к «как», но я не оглядываюсь назад и вы тоже. Вы инженер, и у вас есть код для написания, а у меня есть блог для написания. Итак, поехали!

Почему

Некоторые поставщики API разрешают использовать только один URL-адрес обратного вызова при использовании потока OAuth. Почему? У меня нет самых туманных идей. Это путь, по которому они решили пойти, поэтому Cloud Elements реализовали способ использования одного обратного вызова для обслуживания нескольких сред. Допустим, у вас есть одно приложение для интеграции Box вашего здания. С этим единственным приложением вы хотите иметь возможность работать как в своей тестовой, так и в производственной среде. Ну, из коробки (смотри, что я там делал) провайдер этого не позволяет. Таким образом, вы можете либо раскрутить два приложения, включить переменные окружения в свой код и сделать намного больше работы для себя (у кого есть время?). ИЛИ у вас может быть одно приложение с прокси-URL в качестве обратного вызова OAuth, которое может воздействовать на любую среду. Ваш звонок, я подожду, пока вы решите …

Ты мне нравишься. Вы все еще читаете, поэтому я должен предположить, что вы хотите эффективности, а не дублирования. Умный.

Как

Если вы все еще хотите, чтобы ваш провайдер API принудительно использовал URL-адрес прокси-сервера OAuth, следуйте инструкциям, и я покажу вам, как это настроить. Если вы все прочитаете, в конце вы также найдете забавное видео. Меньше веселья на вечеринке по случаю дня рождения и еще больше … «ООООО теперь я понимаю, что он имеет в виду» забавно.

  1. Выберите своего провайдера (для этого примера мы используем Box )

  2. Получите основную информацию для вашего приложения, такую ​​как ключ API и секрет. Пока не заполняйте URL перенаправления, мы немного разберемся с этим.

  3. Войдите в свою учетную запись Cloud Elements: https://my-staging.cloudelements.io

  4. В левом нижнем углу нажмите на смайлик.

  5. Обратите внимание на секреты вашей организации и пользователей, они понадобятся нам позже.

  6. Нажмите на OAuth Proxy

  7. Нажмите «Создать новый OAuth-прокси», введите имя с описанием и нажмите «Создать». Не беспокойтесь о ключах API и секретных разделах.

  8. Теперь у вас должен быть уникальный URL, созданный элементами Cloud. Вставьте это в URL-адрес перенаправления на веб-сайте провайдера (см. Я уже говорил, что мы будем иметь дело с URL-адресом перенаправления позже)

  9. Теперь для команды cURL GET:

  10. curl -X GET \
     'https://api.cloud-elements.com/elements/api-v2/elements/<Element name here>/oauth/url?isOauthProxy=true&oauthProxyName=%3CYour%20OAuth%20Proxy%20Name%3E&apiKey=%3CAPI%20Key%3E&apiSecret=%3CAPI%20Secret%3E&callbackUrl=%3CUnique%20UL%20Cloud%20Elements%20generated%3E&state=%3CURL%20you%20want%20the%20proxy%20to%20point%20to%3E&callbackProxy=true' \
     -H 'Authorization: User <secret>, Organization <secret>' \
     -H 'Cache-Control: no-cache' \
     -H 'Content-Type: application/json' 

  11. Вышеприведенное должно либо дать вам код, либо запустить поток OAuth, который предоставит вам код. В любом случае, возьмите этот код.

  12. Теперь мы собираемся создать экземпляр, поместив это:

  13. curl -X POST \
    https://api.cloud-elements.com/elements/api-v2/instances \
    -H ‘Authorization: User <Secret>, Organization <sceret>’ \
    -H ‘Cache-Control: no-cache’ \
    -H ‘Content-Type: application/json’ \
    -d ‘{
    “element”: {
    “key”: “<Name of Element>”
    },
    “providerData”: {
    “code”: “<Code from the GET flow>”
    },
    “configuration”: {
    “authentication.type”: “oauth2”,
    “oauth.api.key”: “<Your API Key>“,
    “oauth.api.secret”: “<Your API Secret>“,
    “oauth.callback.url”: “<The OAuth Proxy URL Cloud Elements generated>”
    },
    “name”: “<Your name for the instance>”
    }’
  14. 12. Если вам повезет, вы должны получить ответный код 200 и новый экземпляр <insert Element name here>!

Путь!

Как и обещал, вот видео.

OauthProxy от Бена Пеппера на Vimeo .

PS «Конфигурационный» объект JSON для POST может быть немного изменен в зависимости от элемента, который вы используете. Обратитесь к вкладке аутентификации для данного элемента здесь .