Как получить доступ к API Azure Maps из браузера с помощью аутентификации Azure App Service Active Directory?

#azure-active-directory #adal.js #azure-appservice #azure-maps

#azure-active-directory #adal.js #azure-appservice #azure-карты

Вопрос:

У меня есть служба приложений Azure с включенной аутентификацией Azure Active Directory. Итак, пользователи прошли проверку подлинности с помощью AD. Как мне использовать эту аутентификацию для вызова Azure Maps из JavaScript в браузере?

Я смог совершать вызовы из браузера к API карт, используя общий ключ maps, но я, очевидно, не хочу этого делать. Я также смог заставить браузер вызывать мой сервер, а мой сервер использовать общий ключ для вызова maps API, но я не хочу, чтобы мой сервер был посредником при каждом вызове.

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

1. Вы имеете в виду, что хотите, чтобы пользователь входил в приложение с помощью Azure ad auth, при этом он сможет вызывать azure maps api?

2. В принципе, да. Пользователь уже вошел в AD и на сайт. Я полагаю, что я должен каким-то образом иметь возможность использовать эту существующую аутентификацию для выполнения вызовов API Azure Maps из JavaScript.

3. Кучу документации по этому вопросу и ссылки на примеры можно найти здесь: learn.microsoft.com/en-us/azure/azure-maps /…

4. Я проходил через все это много раз и до сих пор не смог заставить его работать в этом конкретном сценарии.

Ответ №1:

Что ж, в вашем случае вы можете нажать https://webappname.azurewebsites.net/.auth/me , чтобы получить токен для вызова Azure Maps API, пожалуйста, выполните следующие действия.

1. Перейдите в обозреватель ресурсов -> найдите свою службу приложений -> добавить ["resource=https://atlas.microsoft.com"] в additionalLoginParams список ниже -> PUT .

введите описание изображения здесь

2. Перейдите Azure Active Directory на портал -> App registrations -> найдите приложение AD, соответствующее вашей службе приложений -> API permissions -> добавьте разрешение user_impersonation Azure Maps , подобное приведенному ниже.

введите описание изображения здесь

введите описание изображения здесь

Примечание: Если вы не смогли найти Azure Maps на первой странице, просто перейдите APIs my organization uses и выполните поиск ba1ea022-5807-41d5-bbeb-292c7e1cf5f6 , затем щелкните его и добавьте разрешение выше.

введите описание изображения здесь

3. Затем, когда пользователь входит в веб-приложение, после того, как он согласится с разрешениями, вы можете получить токен с помощью endpoint https://webappname.azurewebsites.net/.auth/me и использовать токен для вызова Azure Maps API с помощью javascript, таким образом, пользователю просто нужно войти в систему один раз, токен был сгенерирован с помощью azure adавторизация.

Примечание: Перед получением токена убедитесь, что пользователь, вошедший в приложение, уже добавлен в качестве роли, например Azure Maps Data Contributor , в учетной записи Azure Map -> Access Control (IAM) , если нет, перейдите по этой ссылке, чтобы добавить его.

введите описание изображения здесь

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

1. Блестяще! Большое тебе спасибо, Джой Ван!