HereMaps — ищет варианты, позволяющие использовать поддомены с картой (javascript), не раскрывая идентификатор приложения

#here-api #heremaps

#здесь-api #heremaps

Вопрос:

Ищете решение для использования ключа приложения Here Maps javascript map (https://developer.here.com/documentation/maps/3.1.20.0/api_reference/H.service .Platform.html ) безопасно при наличии нескольких поддоменов.

в настоящее время мы инициализируем карту следующим образом:

 this.platform = new H.service.Platform({
    apikey: 'XXXX',
    useCIT: true,
    useHTTPS: true
});
 

Служба Javascript Here maps запрашивает ключ api для аутентификации и выдает GET, когда ключ api указан правильно.

Одним из их методов безопасности является внесение в белый список, однако мы разрешаем нашим пользователям создавать поддомены, такие как xxx.example.com , при доступе к тому же веб-приложению.

Одним из вариантов безопасности HereMaps является следующее:

  • с помощью опции Создайте доверенный домен для ваших учетных данных приложения (вставьте значения без протокола)

Этот параметр, похоже, не работает, потому что он не разрешает * (*.example.com ). Я отключил эту опцию, чтобы иметь возможность использовать сервис here maps, однако я бы предпочел добавить некоторую безопасность и не раскрывать напрямую наш идентификатор приложения..

Я не смог найти упоминания о поддержке oauth2 для службы javascript here maps. Итак, мои вопросы:

  • Поддерживает ли here maps аутентификацию oauth2 для своего картографического сервиса javascript?
  • Существуют ли другие варианты, кроме использования * для белых поддоменов?
  • Есть ли способ, которым мы можем прокси-сервер наших поддоменов в наш основной домен. Я думал о Iframe, но это кажется громоздким, потому что мы взаимодействуем с картой?
  • Может быть, лучший подход?

Заранее спасибо

Комментарии:

1. Я бы посоветовал вам добавить еще немного информации к вашему вопросу. Я понятия не имею, о чем вы говорите, и я предполагаю, что я не единственный. На что вы ссылаетесь на «Here Maps javascript». Где документация, особенно для упомянутого вами варианта? Что вы пробовали? С какими именно проблемами вы столкнулись?

2. Привет @wedi Я попытался прояснить вопрос

3. Что произойдет, если вы укажете просто example.com ?

4. @Tomas, если запрос от example.com (или www.example.com ), тогда GET будет принят. Однако запросы GET блокируются (ошибка авторизации), когда вы запрашиваете у xxx.example.com

5. Привет @BrianVelda, поддомен, использующий символ подстановки (*), не разрешен в безопасности белого списка. Вам нужно будет указать полное доменное имя.

Ответ №1:

Я думаю, что путь токенов — лучший вариант для вас. Я лично не использую эту услугу, но я нашел это https://developer.here.com/documentation/identity-access-management/dev_guide/topics/sdk.html#step-2-create-a-signature

Возможно, я ошибаюсь, но я понимаю, что это выглядит так:

  1. Пользователь запрашивает токен (для использования API со стороны клиента) у вашего серверной части.
  2. Вы создаете ключ подписи и подписи в своем бэкэнде, а затем отправляете запрос на создание токена
  3. затем вы можете вернуть этот токен на сторону клиента для пользователя.

Вопросы:

Что мешает мне создать токен на вашем сайте, а затем использовать его в другом месте?

Когда вы вносите в белый список домен, из которого собираетесь использовать запросы, если вы делаете это не с сервера, а со стороны клиента, как сервер может сказать, что он поступает из определенного домена?

Мне кажется, что все запросы перед переходом к сервису HERE должны проходить через ваш серверный интерфейс API, который определит, поступает ли запрос от предоставленного «интерфейса».

Комментарии:

1. Спасибо за ваше предложение, я согласен с вашим предложением, однако в документации here maps javascript не упоминается поддержка этой аутентификации. Я нашел кое-что о опции заголовка здесь: developer.here.com/documentation/maps/3.1.20.0/api_reference /. … Но я не смог найти только упоминание о сервисе H. Платформа — это то место, где вы инициализируете карту и ожидаете некоторой формы проверки (в нашем случае мы даем ключ api).

2. Я думаю, что их javascript нуждается в этом apikey (описанном как обязательный). Похоже, что для токена нет опций, потому что это должно быть подключено к вашему бэкэнду. Я думаю, вы могли бы создать токен в своем бэкэнде перед инициализацией javascript, а затем инициализировать map, прикрепив заголовки. Я не знаю, какие есть опции внутри их сервиса, но если вы могли бы установить, что вам всегда требуется токен, тогда раскрытие apikey не кажется проблемой. В любом случае я бы, конечно, связался с ними за некоторыми советами, если вы им заплатите. Я бы также спросил о первом вопросе, который я написал в своем ответе.

3. пожалуйста, напишите, когда вам удастся это выяснить. Мне интересно узнать обо всех этих проблемах с аутентификацией