Проверка подлинности для приложений Fabric

Fabric Apps включает встроенную службу аутентификации, которая выполняет вход пользователей в систему, управляет их сеансами и добавляет сведения об их удостоверении к каждому запросу к данным и хранилищу, который выполняет ваше приложение. В этой статье описываются основные понятия, которые необходимо понять перед настройкой проверки подлинности для проекта.

Дополнительные сведения о реализации см. в статье:

Режимы проверки подлинности

Fabric Apps поддерживает два метода проверки подлинности. Используемый метод зависит от того, где выполняется приложение:

Окружающая среда Поддерживаемый метод Когда его использовать
Местное развитие Электронная почта и пароль Быстро выполняйте итерации, не завися от портала Fabric.
Развернуто в Fabric единый вход в Fabric (Microsoft Entra ID) Вход в продуктивную среду для любого пользователя с доступом к рабочей области Fabric.

Основные понятия:

  • Единый вход в Fabric позволяет пользователю войти через портал Fabric с использованием существующей учетной записи Microsoft Entra ID. Он работает только при открытии приложения из Fabric, поэтому его нельзя использовать во время локальной разработки.
  • Электронная почта и пароль предназначены только для локальной разработки. Он не работает после развертывания.
  • При первом входе подготавливается учетная запись пользователя. При использовании SSO Fabric не требуется отдельный этап регистрации — пользователи автоматически создаются при первом входе в систему.
  • Для развертывания Fabric требуется аутентификация. Установка services.auth.enabled на false приводит к сбою npx rayfin up.

Сеансы и идентификация

После входа пользователя пакет SDK создает сеанс , представляющий пользователя, вошедшего в систему. Сеансы непрозрачны — ваше приложение не должно анализировать лежащие в их основе токены. Вместо этого приложение считывает небольшой набор высокоуровневых свойств:

  • Аутентифицирован ли сеанс в данный момент.
  • Пользователя id и email.
  • Настраиваемые утверждения, которые вы настроили в rayfin.yml.

Тот же экземпляр клиента, который выполняет вход пользователя, автоматически добавляет его учетные данные к каждому вызову к данным и хранилищу. Вам не нужно передавать токены вручную.

Сеансы также вызывают события изменений, поэтому пользовательский интерфейс может реагировать при входе или выходе пользователя без перезагрузки страницы.

Включение проверки подлинности в проекте

Проверка подлинности настроена в rayfin/rayfin.yml. Следующий пример позволяет использовать как Fabric SSO (для развернутых приложений), так и вход по электронной почте и паролю (для локальной разработки):

services:
  auth:
    enabled: true
    allowedRedirectUris:
      - http://localhost:5173
    fabric:
      enabled: true
    password:
      enabled: true  # Local development only

Что контролирует каждый параметр:

  • services.auth.enabled — включает службу проверки подлинности. Требуется для любого развертывания Fabric.
  • allowedRedirectUris — домены-источники, на которые можно перенаправить пользователя после входа в систему. Добавьте url-адрес локальной разработки здесь. npx rayfin up автоматически добавляет origin развернутого приложения.
  • fabric.enabled — включает SSO в Fabric. Требуется для развернутых приложений.
  • password.enabled — включает вход электронной почты и пароля для локальной разработки.

Important

Для развертываний Fabric требуется, чтобы была включена проверка подлинности. npx rayfin up завершается ошибкой, когда для services.auth.enabled задано значение false.

После редактирования rayfin.ymlперезапустите локальную серверную часть или запустите npx rayfin up , чтобы применить это изменение.

Настраиваемые утверждения

Пользовательские утверждения позволяют присоединять метаданные для конкретного приложения к каждому сеансу, например имя клиента, флаг компонента или версию приложения. Они полезны для ролевого управления доступом и включения или ограничения функций без изменения модели данных.

services:
  auth:
    enabled: true
    customClaims:
      tenant: default
      app_version: 1.0.0

Пользовательские утверждения отображаются внутри объекта сессии, и на них можно ссылаться в правилах доступа к данным.

Что предоставляет пакет SDK

При использовании RayfinClient служба проверки подлинности доступна на client.auth. На концептуальном уровне он предоставляет следующие возможности:

  • Регистрация и вход с помощью электронной почты и пароля во время локальной разработки.
  • Вход и регистрация через Fabric SSO для развернутых приложений. Один и тот же вызов обрабатывает как новые, так и возвращающие пользователей.
  • Выход для завершения текущего сеанса.
  • Чтение данных сеанса и подписки, чтобы пользовательский интерфейс оставался синхронизированным с состоянием аутентификации пользователя.

Пример кода, показывающий, как подключить это в рабочем приложении, см. в разделе Настройка аутентификации единого входа Fabric для приложения Fabric.