【问题标题】:Embed Azure Time Series Insights using JavaScript library使用 JavaScript 库嵌入 Azure 时序见解
【发布时间】:2019-10-28 01:35:13
【问题描述】:

我正在尝试嵌入 Azure 时序见解。存根应用程序提供了执行此操作的代码。我创建了一个应用注册并向其添加了时间序列洞察 API 权限。我还使用事件源创建了自己的时间序列环境。

现在JS库中的认证是通过ADAL和这段代码实现的。

 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 和密码一起使用吗?

【问题讨论】:

  • 嗨,如果可能的话,您能否分享更多关于您尝试启用的场景的详细信息?你的用户是谁?这是企业对企业的场景吗?
  • @AlbertoVega-MSFT 我正在尝试在 JS 而不是 ADAL 中使用客户端凭据授予流程。我希望应用注册模拟用户,而不是提示用户登录。
  • 顺便问一下,您不想使用 ADAL 库有什么具体原因吗?

标签: azure azure-active-directory azure-timeseries-insights


【解决方案1】:

目前,您正在遵循在 Time Series Insights 上创建仅限客户端的应用程序的最佳机制。理想情况下,您会将打算使用该应用程序的所有用户添加到该环境的数据访问策略中。如果您有服务器端,则可以使用服务主体发出请求,但这可能会使您的体系结构复杂化。更方便的解决方案是将 AAD 组添加到数据访问策略中,但目前不支持...该功能正在产品积压中进行跟踪。希望对您有所帮助!

【讨论】:

  • 如果您在 Time Series Insights 上构建自定义应用程序,我也很乐意讨论您的方案...我维护 JS SDK aka tsiclient
  • 感谢您的评论。是否可以使用客户端凭据嵌入时间序列?
  • 我真的不熟悉任何应用程序的配置,但如果你有一个例子,我很想了解它。我不确定客户端应用程序是否可以添加到数据访问策略中,或者客户端应用程序作为一个实体是否甚至可以跳过必要的 oauth 箍以获得 TSI 的 idtoken + 访问令牌。允许广泛用户访问的最常见配置是授予整个租户对应用程序的访问权限,并将 Web 应用程序的调用代理到代表服务主体发出请求的服务器端
  • 这个案例有什么更新吗 - 我想要一个没有后端的服务主体。安全不是问题!
猜你喜欢
  • 2018-10-06
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
  • 2021-03-01
  • 1970-01-01
相关资源
最近更新 更多