【问题标题】:How to access Azure Maps API from browser using Azure App Service Active Directory authentication?如何使用 Azure App Service Active Directory 身份验证从浏览器访问 Azure Maps API?
【发布时间】:2020-09-30 04:17:22
【问题描述】:

我有一个启用了 Azure Active Directory 身份验证的 Azure 应用服务。因此用户已通过 AD 身份验证。如何使用该身份验证从浏览器中的 JavaScript 调用 Azure Maps?

我能够使用地图共享密钥从浏览器调用地​​图 API,但我显然不想这样做。我还可以让浏览器调用我的服务器,并让我的服务器使用共享密钥来调用地图 API,但我不希望我的服务器必须成为每次调用的中间人。

【问题讨论】:

  • 你的意思是你想让用户使用azure ad auth登录应用,同时他将能够调用azure maps api?
  • 基本上是的。用户已经登录到 AD 和站点。我相信我应该能够以某种方式使用现有的身份验证从 JavaScript 调用 Azure Maps API。
  • 可以在此处找到有关此的大量文档和示例链接:docs.microsoft.com/en-us/azure/azure-maps/…
  • 我已经经历了很多次,但仍然无法让它在这种特定情况下工作。

标签: azure-active-directory adal.js azure-appservice azure-maps


【解决方案1】:

嗯,在你的情况下,你可以点击https://webappname.azurewebsites.net/.auth/me获取令牌来调用Azure Maps API,请按照以下步骤操作。

1。导航到resource explorer -> 找到您的应用服务-> 将["resource=https://atlas.microsoft.com"] 添加到additionalLoginParams,如下所示-> PUT

2.导航到门户中的Azure Active Directory -> App registrations -> 找到您的应用服务对应的AD App -> API permissions -> 添加权限user_impersonation Azure Maps 如下所示。

注意:如果第一页没有找到Azure Maps,就去APIs my organization uses搜索ba1ea022-5807-41d5-bbeb-292c7e1cf5f6,然后点击并在上面添加权限。

3。然后当用户登录Web应用程序时,在他同意权限后,您可以获得端点https://webappname.azurewebsites.net/.auth/me的令牌,并使用该令牌通过javascript调用Azure Maps API ,这样用户只需要登录一次,token就是通过azure ad auth生成的。

注意:在获取令牌之前,请确保已将登录应用的用户添加为角色,例如 Azure Maps Data Contributor在Azure Map Account -> Access Control (IAM),如果没有,请点击此链接添加。

【讨论】:

  • 太棒了!非常感谢你,Joy Wang!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
相关资源
最近更新 更多