如何使用 Azure App Service Active Directory 身份验证从浏览器访问 Azure Maps API?

How to access Azure Maps API from browser using Azure App Service Active Directory authentication?

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

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

好吧,在您的情况下,您可以点击 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 -> 添加 Azure Mapsuser_impersonation 权限,如下所示。

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

3.然后当用户登录web app,在他同意权限后,你可以得到端点为https://webappname.azurewebsites.net/.auth/me的token,并使用token来用javascript调用Azure Maps API,这样用户只需要登录一次,token是通过azure ad auth生成的。

注意:在获取令牌之前,请确保已将登录应用程序的用户添加为角色,例如 Azure Maps Data Contributor在Azure Map账号->Access Control (IAM),如果没有,按照这个link添加。