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

问题描述

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

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

解决方法

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

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

enter image description here

2 。在门户中导航至Azure Active Directory-> App registrations ->查找与您的应用程序服务相对应的AD App-> API permissions->添加user_impersonation的{​​{1}}权限,如下所示。

enter image description here

enter image description here

注意::如果在首页上找不到Azure Maps,只需转到Azure Maps并搜索APIs my organization uses,然后单击它并添加上面的权限。

enter image description here

3 。然后,当用户登录Web应用程序时,在他同意权限之后,您可以获取带有端点ba1ea022-5807-41d5-bbeb-292c7e1cf5f6的令牌,并使用该令牌调用Azure Maps API使用javascript,通过这种方式,用户只需登录一次,令牌便是通过azure广告身份验证生成的。

注意:在获取令牌之前,请确保已将登录应用程序的用户添加为角色,例如https://webappname.azurewebsites.net/.auth/me在Azure Map帐户中-> Azure Maps Data Contributor,如果不是,请单击此链接添加它。

enter image description here