Внедрение аналитики временных рядов Azure с помощью библиотеки JavaScript

Я пытаюсь внедрить аналитику временных рядов 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 о том, что ресурс не найден. Могу ли я использовать любой другой метод аутентификации?

Могу ли я просто использовать саму регистрацию приложения с идентификатором клиента и секретом?


person MAK    schedule 13.06.2019    source источник
comment
Привет, не могли бы вы поделиться более подробной информацией, если возможно, о сценарии, который вы пытаетесь включить? Кто ваши пользователи? Это бизнес-сценарий?   -  person Alberto Vega    schedule 18.06.2019
comment
Вы видели это руководство? docs.microsoft.com/en-us/azure/active-directory / develop   -  person Alberto Vega    schedule 18.06.2019
comment
@ AlbertoVega-MSFT Я пытаюсь использовать поток предоставления учетных данных клиента в JS вместо ADAL. Я хочу, чтобы регистрация приложения выдавала себя за пользователя, а не предлагала пользователю войти в систему.   -  person MAK    schedule 18.06.2019
comment
Кстати, есть ли конкретная причина, по которой вы не хотите использовать библиотеку ADAL?   -  person Alberto Vega    schedule 19.06.2019


Ответы (1)


В настоящее время вы используете лучший механизм для создания клиентского приложения на Time Series Insights. В идеале вы должны добавить всех пользователей, которых вы намереваетесь использовать приложение, в политики доступа к данным для этой среды. Если бы у вас была серверная часть, вы могли бы отправлять запросы с использованием субъекта-службы, но это, вероятно, усложнило бы вашу архитектуру. Более удобным решением было бы добавление группы AAD в политики доступа к данным, но в настоящее время она не поддерживается ... Эта функция отслеживается в журнале отставания продукта. Надеюсь, это поможет!

person Matt Darsney    schedule 19.06.2019
comment
Я также рад обсудить ваш сценарий, если вы создаете собственное приложение на основе Time Series Insights ... Я поддерживаю JS SDK aka клиент - person Matt Darsney; 19.06.2019
comment
Спасибо за ваш комментарий. Можно ли использовать учетные данные клиента для встраивания временных рядов? - person MAK; 19.06.2019
comment
На самом деле я не знаком с этой конфигурацией для какого-либо приложения, но мне было бы интересно узнать о ней, если у вас есть пример. Я не уверен, что клиентское приложение может быть добавлено в политику доступа к данным, или если клиентское приложение как объект может даже перепрыгнуть через необходимые обручи oauth, чтобы получить idtoken + токен доступа для TSI. Наиболее распространенная конфигурация для разрешения доступа широкому кругу пользователей - это предоставление доступа к приложению для всего клиента и проксирование вызовов из веб-приложения на сторону сервера, где запросы выполняются от имени субъекта-службы. - person Matt Darsney; 19.06.2019
comment
Есть ли какие-нибудь обновления по этому делу - я хочу иметь субъекта-службы без серверной части. Безопасность не проблема! - person codlix; 17.01.2020