问题描述
我有一个启用了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
。
2 。在门户中导航至Azure Active Directory
-> App registrations
->查找与您的应用程序服务相对应的AD App-> API permissions
->添加user_impersonation
的{{1}}权限,如下所示。
注意::如果在首页上找不到Azure Maps
,只需转到Azure Maps
并搜索APIs my organization uses
,然后单击它并添加上面的权限。
3 。然后,当用户登录Web应用程序时,在他同意权限之后,您可以获取带有端点ba1ea022-5807-41d5-bbeb-292c7e1cf5f6
的令牌,并使用该令牌调用Azure Maps API使用javascript,通过这种方式,用户只需登录一次,令牌便是通过azure广告身份验证生成的。
注意:在获取令牌之前,请确保已将登录应用程序的用户添加为角色,例如https://webappname.azurewebsites.net/.auth/me
在Azure Map帐户中-> Azure Maps Data Contributor
,如果不是,请单击此链接添加它。