Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Конструктор API предоставляет доступ к данным через REST- и GraphQL-эндпоинты. Защита API требует внимания к трем основным областям: проверка подлинности (кто вызывает?), авторизация (что они могут сделать?) и транспортная безопасность (защищается ли подключение?).
Три основных принципа безопасности
| Столп | Вопрос, на который дается ответ | Ключевая концепция |
|---|---|---|
| Аутентификация | Кто звонитель? | Проверка токенов от поставщика удостоверений |
| Авторизация | Что они могут сделать? | Разрешения на основе ролей для сущностей |
| Транспорт | Безопасно ли подключение? | Шифрование TLS для всего трафика |
Выбор поставщика проверки подлинности
Построитель API данных поддерживает несколько поставщиков проверки подлинности. Выберите тот, который соответствует сценарию развертывания:
| Provider | Сценарий использования | Guide |
|---|---|---|
Microsoft Entra ID (EntraID/AzureAD) |
Производственные приложения с использованием идентификации Microsoft | Настройка проверки подлинности Entra |
| Настраиваемый JWT | Сторонние поставщики удостоверений (IdP) (Okta, Auth0, Keycloak) | Настройка пользовательской проверки подлинности JWT |
| Служба приложений | Приложения, работающие через EasyAuth службы приложений Azure (платформенные заголовки) | Настройка проверки подлинности службы приложений |
| Симулятор | Локальная разработка и тестирование | Настройка проверки подлинности симулятора |
| Статические веб-приложения | Приложения, использующие заголовки проверки подлинности SWA | Настройка проверки подлинности службы приложений |
Подсказка
Начните с Simulator в процессе разработки, чтобы тестировать разрешения без настройки поставщика удостоверений. Перед развертыванием перейдите к производственному поставщику.
Аутентификация
Аутентификация проверяет личность вызывающего абонента. Построитель API данных выполняет проверку подлинности запросов путем проверки маркеров носителя JWT (EntraID/AzureAD, Custom) или доверия заголовкам удостоверений, предоставляемым платформой (AppService, StaticWebApps).
Simulator пропускает внешнюю проверку в среде разработки.
Принцип работы
- Для поставщиков JWT клиент получает маркер от поставщика удостоверений.
- Клиент отправляет токен в заголовке
Authorization: Bearer <token>(поставщики JWT) или платформа добавляет заголовки удостоверения (EasyAuth/SWA) - Построитель API данных проверяет заголовок токена или платформы (издатель, аудитория, подпись для поставщиков JWT)
- DAB извлекает роли пользователя из токена или идентификационного заголовка.
Краткий справочник
| Setting | Description |
|---|---|
runtime.host.authentication.provider |
Поставщик проверки подлинности (EntraID/AzureAD, , CustomAppService, ) StaticWebAppsSimulator |
runtime.host.authentication.jwt.audience |
Ожидаемое утверждение аудитории для поставщиков JWT (не используется AppService/StaticWebApps/Simulator) |
runtime.host.authentication.jwt.issuer |
Ожидаемый издатель/орган для поставщиков JWT (не используется в AppService / StaticWebApps / Simulator) |
Для получения подробной информации о настройке см. раздел Настройка аутентификации Microsoft Entra ID.
Авторизация
Авторизация определяет, что может сделать прошедший проверку подлинности (или анонимный) пользователь. Конструктор API данных использует управление доступом на основе ролей (RBAC) для ограничения доступа к действиям и сущностям.
Принцип работы
- DAB назначает роль запросу на основе токена и заголовков.
- DAB ищет права доступа объекта для этой роли
- Если роль имеет разрешение на запрошенное действие, DAB выполняет запрос.
- Если нет, DAB возвращает ответ
403 Forbidden
Системные роли и роли пользователей
| Тип роли | Description |
|---|---|
Anonymous |
Назначается, если аутентифицированное удостоверение отсутствует |
Authenticated |
Назначается при проверке подлинности запроса (заголовок доверенной платформы JWT) и не выбрана определенная роль пользователя. |
| Роли пользователей | Пользовательские роли из утверждения токена roles (или роли платформы), выбранные с помощью X-MS-API-ROLE заголовка |
Безопасность по умолчанию
Сущности по умолчанию не имеют разрешений. Необходимо явно предоставить доступ:
{
"entities": {
"Book": {
"permissions": [
{ "role": "authenticated", "actions": ["read"] }
]
}
}
}
Подробные сведения о конфигурации см. в разделе "Авторизация и роли".
Безопасность на уровне строк и на уровне полей
Перейдите за рамки разрешений уровня сущности с помощью точного управления доступом:
| Функция | Description | Guide |
|---|---|---|
| Политики базы данных (безопасность на уровне строк) | Преобразование выражений политики в предикаты запросов, которые фильтруют строки на основе утверждений или контекста сеанса | Реализация безопасности на уровне строк |
| Безопасность на уровне полей | Включение или исключение определенных столбцов для каждой роли | Доступ к полю |
Безопасность транспорта и конфигурации
Безопасность транспорта
- Использование TLS для всех подключений: шифрование трафика между клиентами и DAB
- Отключение устаревших версий TLS: используйте только TLS 1.2+
- Использование конечных точек HTTPS: никогда не предоставляйте DAB через незашифрованный HTTP в рабочей среде
Дополнительные сведения см. в рекомендациях по обеспечению безопасности.
Безопасность конфигурации
-
Хранение секретов в переменных среды: использование
@env('SECRET_NAME')в конфигурации -
Использование Azure Key Vault: ссылаться на секреты с помощью
@azure('key-vault-uri') -
Никогда не добавляйте секреты: держите
dab-config.jsonсвободным от паролей и строк подключения
{
"data-source": {
"connection-string": "@env('SQL_CONNECTION_STRING')"
}
}
Мониторинг и обновления
- Мониторинг доступа: использование Application Insights для отслеживания запросов и обнаружения аномалий
- Проверка журналов: проверка неудачных попыток проверки подлинности и отказов в разрешении
- Обновление DAB: применение исправлений для системы безопасности путем обновления до последней версии
Краткие руководства по началу работы
| Задача | Guide |
|---|---|
| Настройка проверки подлинности Microsoft Entra ID | Настройка проверки подлинности Entra |
| Используйте Okta или Auth0 | Настройка пользовательской проверки подлинности JWT |
| Запуск службы приложений Azure | Настройка проверки подлинности службы приложений |
| Локальное тестирование разрешений | Настройка проверки подлинности симулятора |
| Ограничение строк пользователем | Реализация безопасности на уровне строк |
| Понимание назначения ролей | Авторизация и роли |