我正在尝试嵌入Azure时间序列洞察。存根应用程序提供了执行此操作的代码。我创建了一个应用程序注册,并为其添加了Time Series insights API权限。我还创建了自己的带有事件源的时间序列环境。
现在,使用这段代码使用ADAL实现了JS库中的身份验证。
var authContext = new AuthenticationContext({
clientId: 'xxxxx',
postLogoutRedirectUri: 'https://insights.timeseries.azure.com',
cacheLocation: 'localStorage'
});
通过这段代码,我得到了一个访问令牌。
var promise = new Promise(function (resolve, reject) {
authContext.acquireToken(
'https://api.timeseries.azure.com/',
function (error, token) {
console.log(token);
if (error || !token) {
console.log('Here');
// TODO: Handle error obtaining access token
document.getElementById('api_response').textContent = error;
document.getElementById('loginModal').style.display = "block";
document.getElementById('api_response2').textContent = '';
return;
}
//console.log('Token is ' + token);
// Use the access token
document.getElementById('api_response').textContent = '';
document.getElementById('api_response2').textContent = '';
document.getElementById('loginModal').style.display = "none";
resolve(token);
}
);
});
现在,如果我想为所有用户而不仅仅是我自己嵌入这个应用程序,我该怎么做呢?如果我将自己从时间序列环境中的数据访问策略中删除,我会得到一个404,说明资源未找到。我可以使用任何其他身份验证方法吗?
我可以简单地使用应用程序注册本身和客户端Id和密钥吗?
发布于 2019-06-19 08:49:54
目前,您正在遵循在Time Series Insights上创建仅客户端应用程序的最佳机制。理想情况下,您应该将打算使用该应用程序的所有用户添加到该环境的数据访问策略中。如果您有服务器端,则可以使用服务主体发出请求,但这可能会使您的体系结构复杂化。一个更方便的解决方案是将AAD组添加到数据访问策略中,但目前在产品积压中没有跟踪supported...That特性。希望这能有所帮助!
https://stackoverflow.com/questions/56580805
复制相似问题