Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подключение приложений к API Fabric для GraphQL позволяет веб-приложениям, мобильным и серверным приложениям запрашивать источники данных Fabric с помощью современного, эффективного API. Для этой интеграции требуется правильная проверка подлинности с помощью идентификатора Microsoft Entra и настройки приложения для безопасного вызова конечной точки GraphQL.
В этой статье описано, как подключить приложение React к API GraphQL Fabric, выполнив следующие действия.
- Создание и настройка приложения Microsoft Entra для проверки подлинности
- Настройка примера API GraphQL в Fabric с данными для запроса
- Клонирование и настройка полного приложения React из GitHub
- Тестирование аутентифицированного подключения
В этом руководстве используется React, но основные понятия проверки подлинности применяются к любому языку. Примеры на C#, Python или других языках см. в репозитории GitHub примеров Microsoft Fabric.
Кто должен подключать приложения
Настройка подключения к приложению необходима для:
- Веб-разработчики и разработчики мобильных приложений, создающие программы, использующие данные из Fabric lakehouses и хранилищ
- Разработчики интеграции подключают данные Fabric к пользовательским приложениям и автоматизированным рабочим процессам
- Разработчики серверной части создают службы, которые интегрируются с унифицированной платформой аналитики Fabric
- Инженеры данных настраивают автоматизированные рабочие процессы обработки данных, которые используют данные Fabric через API
Используйте это руководство, если необходимо выполнить проверку подлинности и авторизацию приложений для доступа к API GraphQL Fabric.
Необходимые компоненты
Средства разработки: на компьютере требуется Node.js (версия LTS) и Visual Studio Code .
Перед подключением приложения убедитесь, что у вас есть API для GraphQL в Fabric. Дополнительные сведения см. в статье "Создание API для GraphQL в Fabric" и добавление данных.
API для GraphQL требует, чтобы приложения использовали Microsoft Entra для проверки подлинности. Зарегистрируйте и настройте приложение для выполнения вызовов API в Fabric. Дополнительные сведения см. в статье "Создание приложения Microsoft Entra" в Azure.
Учетные данные, прошедшие проверку подлинности (субъект-пользователь, субъект-служба или управляемое удостоверение), вызывая API, требуют разрешения execute для API GraphQL (параметр "Выполнить запросы и мутации" при добавлении разрешений прямого доступа). При использовании единого входа (SSO) в качестве параметра подключения в API убедитесь, что учетные данные имеют разрешения на чтение или запись в выбранном источнике данных. Дополнительные сведения см. в разделе Подключение к источнику данных и сборка схемы.
Сводка по проверке подлинности и разрешениям
Для доступа к API GraphQL требуется правильная проверка подлинности и авторизация на уровне API и базовом уровне источника данных. Вы можете пройти проверку подлинности с помощью субъекта-пользователя (представляющего отдельного пользователя) или субъекта-службы (представляющего приложение или службу). Для подключения к источнику данных можно использовать единый вход, где удостоверение вызывающего объекта передается в источник данных, или сохраненные учетные данные, в которых используется предварительно настроенное подключение.
В следующей таблице приведены различные поддерживаемые сценарии проверки подлинности и минимальные необходимые разрешения для клиентов, обращаюющихся к API GraphQL:
| Вызывающий API | Подключение к источнику данных | Обязательные разрешения API GraphQL | Необходимые разрешения источника данных | Область приложения Microsoft Entra |
|---|---|---|---|---|
| Субъект-пользователь (UPN) | Единый вход (SSO) | Выполнение запросов и мутаций на уровне API | Соответствующие разрешения на чтение и запись, предоставленные имени участника-пользователя в источнике данных | GraphQLApi.Execute.All |
| Субъект-служба (SPN) | Единый вход (SSO) | Выполнение запросов и мутаций на уровне API | Соответствующие разрешения на чтение и запись, предоставленные имени участника-службы в источнике данных | Не применимо |
| Субъект-пользователь (UPN) | Сохраненные учетные данные | Выполнение запросов и мутаций на уровне API | Соответствующие разрешения на чтение и запись, предоставленные сохраненным учетным данным (подключение) в источнике данных | GraphQLApi.Execute.All |
| Субъект-служба (SPN) | Сохраненные учетные данные | Выполнение запросов и мутаций на уровне API | Соответствующие разрешения на чтение и запись, предоставленные имени участника-службы в источнике данных | Не применимо |
Создание приложения Microsoft Entra
Прежде чем приложение сможет вызвать API GraphQL Fabric, необходимо зарегистрировать его в идентификаторе Microsoft Entra. Эта регистрация создает идентичность для вашего приложения и определяет, какие разрешения ему необходимы. Процесс регистрации создает идентификатор клиента (идентификатор приложения) и устанавливает поток проверки подлинности, который приложение использует для получения маркеров доступа.
Для приложений React вы настраиваете параметры одностраничного приложения (SPA), использующие поток PKCE— безопасный метод проверки подлинности, предназначенный для приложений на основе браузера, в которых секреты клиента не могут безопасно храниться.
Зарегистрируйте приложение, используя шаги, описанные в разделе Быстрый старт: Регистрация приложения на платформе идентификации Microsoft.
Значения идентификатора приложения приложения Microsoft Entra (клиента) и идентификатора каталога (клиента) отображаются в поле сводки. Запишите эти значения, так как они необходимы при настройке приложения React.
Настройте разрешения API, чтобы приложение получите доступ к API GraphQL Fabric. В списке Управление выберите Разрешения API, затем Добавить разрешение.
Добавьте службу PowerBI, выберите делегированные разрешения и выберите разрешения GraphQLApi.Execute.All . Это разрешение позволяет приложению выполнять запросы и изменения от имени пользователя, выполнившего вход. Убедитесь, что согласие администратора не требуется.
Вернитесь в список "Управление", выберите "Добавить>одностраничные приложения>".
Для локальных целей разработки добавьте
http://localhost:3000в URI перенаправления и убедитесь, что приложение включено для потока кода авторизации с ключом проверки подлинности для Exchange (PKCE). Нажмите кнопку "Настройка", чтобы сохранить изменения. Если приложение сталкивается с ошибкой, связанной с запросами между источниками, добавьте платформу мобильных и классических приложений на предыдущем шаге с тем же URI перенаправления.Вернитесь к проверке подлинности, прокрутите вниз до расширенные настройки и, в разделе Разрешить потоки общедоступных клиентов, выберите Да для Включить следующие потоки для мобильных и настольных приложений.
Настройка примера API GraphQL для доступа к приложениям
При регистрации приложения Microsoft Entra вам потребуется API GraphQL в Fabric для запроса. В этом разделе описано, как создать пример API с помощью набора данных для государственных праздников Fabric. Это дает рабочий API для тестирования проверки подлинности и извлечения данных без необходимости настраивать собственные источники данных.
Пример API предоставляет данные праздников из таблицы Lakehouse, которую приложение React запрашивает для отображения государственных праздников.
На домашней странице портала Fabric выберите Инжиниринг данных из списка рабочих нагрузок.
В разделе "Проектирование данных" выберите "Использовать пример" и в разделе Lakehouse выберите общедоступные праздники, чтобы автоматически создать новый Lakehouse с данными о государственных праздниках.
Выполните действия из статьи "Создание API для GraphQL", чтобы создать новый API GraphQL и выбрать созданное приложение Lakehouse. Добавьте таблицу государственных праздников, чтобы клиенты могли получить доступ к этим данным.
Перед созданием приложения React убедитесь, что API работает правильно, проверив его в редакторе API. Используйте следующий запрос — это тот же запрос, который ваше React-приложение выполнит позже.
query { publicholidays (filter: {countryRegionCode: {eq:"US"}, date: {gte: "2024-01-01T00:00:00.000Z", lte: "2024-12-31T00:00:00.000Z"}}) { items { countryOrRegion holidayName date } } }Выберите конечную точку копирования на панели инструментов элемента API.
На экране ссылки "Копировать" нажмите кнопку "Копировать".
Запишите идентификатор клиента и идентификатор клиента из приложения Microsoft Entra и URI конечной точки. Эти значения требуются при настройке приложения React.
Клонирование и настройка приложения React
Теперь, когда у вас есть приложение Microsoft Entra и API GraphQL, вы можете настроить приложение React для подключения к ним. Приложение использует библиотеку проверки подлинности Майкрософт (MSAL) для обработки проверки подлинности и выполнения запросов GraphQL с маркерами носителя.
Клонируйте репозиторий примеров из GitHub:
git clone https://github.com/microsoft/fabric-samples.gitПерейдите в папку приложения React:
cd fabric-samples/docs-samples/data-engineering/GraphQL/ReactПапка содержит полное приложение React. Необходимо изменить
src/authConfig.jsтолько для настройки конкретной конечной точки и учетных данных.Откройте проект в редакторе кода:
code .В вашем редакторе перейдите в папку
srcи откройтеauthConfig.js.Замените следующие значения заполнителей конкретными сведениями:
-
Enter_the_GraphQL_Endpoint_Here— Замена конечной точки API GraphQL из настройки примера API GraphQL для доступа к приложениям -
Enter_the_Application_Id_Here— Замените идентификатором приложения (клиента) из раздела Создание приложения Microsoft Entra -
Enter_the_Tenant_Info_Here— Замените на идентификатор каталога (клиента) из раздела Создание приложения Microsoft Entra
Это важно
В том же файле константа
loginRequestвключает областьhttps://analysis.windows.net/powerbi/api/GraphQLApi.Execute.All. Эта точная область требуется для доступа к GraphQL API Fabric. Не удаляйте и не изменяйте эту область действия; иначе проверка подлинности завершится ошибкой.-
Сохраните файл.
В терминале перейдите в корневую папку проекта и выполните следующую команду:
npm installПри этом устанавливаются все необходимые зависимости.
Тестирование приложения
Настроив приложение, запустите его локально, чтобы убедиться, что все работает правильно:
В терминале выполните следующую команду:
npm startЭта команда запускает сервер разработки и открывает приложение в браузере.
Завершите поток проверки подлинности при загрузке
http://localhost:3000приложения. Следуйте инструкциям по входу, описанным в разделе учебника "Вызов API" из приложения.После успешного входа нажмите кнопку API Query Fabric для GraphQL Data . Это активирует поток проверки подлинности, получает маркер доступа и выполняет запрос GraphQL к API Fabric.
Если все настроено правильно, приложение отображает общедоступные праздники в таблице. Это подтверждает следующее:
- Приложение Microsoft Entra имеет правильные разрешения
- Маркер доступа успешно получен
- API GraphQL прошел проверку подлинности запроса
- Запрос, выполняемый для данных Lakehouse
Другие команды npm
Кроме npm start и npm install вы можете использовать эти распространенные npm команд для различных сценариев разработки:
-
npm run dev— альтернативный способ запуска сервера разработки -
npm run build— создание оптимизированной рабочей сборки приложения -
npm run preview— протестируйте рабочую сборку локально перед развертыванием -
npm test— Выполнение автоматических тестов для проверки правильности работы кода
Связанный контент
Теперь, когда у вас есть рабочее приложение, подключенное к API GraphQL Fabric, изучите эти ресурсы для создания более сложных решений:
- Создание API для GraphQL в Fabric и добавление данных . Узнайте, как предоставлять собственные источники данных
- Запрос нескольких источников данных в API Fabric для GraphQL — объединение данных из разных источников в одном запросе
- API Fabric для редактора GraphQL — тестирование и разработка запросов в интерактивном режиме
- Создание приложения Microsoft Entra в Azure — подробное руководство по регистрации рабочих приложений
- Примеры Microsoft Fabric GraphQL — обзор примеров на нескольких языках