Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Поставщик сообщает построителю Data API (DAB) не проверять и не валидировать веб-токены JSON (JWT). Каждый запрос выполняется в качестве anonymous роли. В DAB нет исключений.
Замечание
Функции построителя данных 2.0, описанные в этом разделе, находятся в предварительной версии и могут измениться до общедоступной доступности. Дополнительные сведения см. в статье "Новые возможности" версии 2.0.
Используйте этот поставщик, если вы хотите, чтобы DAB обрабатывал каждый запрос как anonymous, даже если другая служба перед DAB выполняет проверку подлинности или применяет политику доступа.
Это важно
Поставщик Unauthenticated никогда не преобразует исходную идентичность в идентичность DAB. Если вам требуется DAB для проверки токенов, активации роли authenticated, использования пользовательских ролей или передачи утверждения пользователей в подчиненные политики, используйте проверяющего провайдера, например EntraId, Custom или AppService.
Поток аутентификации
Unauthenticated При использовании поставщика DAB полностью пропускает валидацию токена и оценивает разрешения следующим образом:anonymous
| Phase | Что происходит |
|---|---|
| Запрос клиента | Клиент отправляет запрос в DAB напрямую или через другую службу. |
| Вышестоящие элементы управления | Фронтенд, шлюз или прокси-сервер может аутентифицировать вызывающего или осуществить грубую проверку доступа перед пересылкой запроса. |
| Перенаправляющий запрос | Запрос достигает DAB |
| Обработка DAB | DAB не проверяет JWTs и всегда обрабатывает запрос как anonymous |
| Авторизация | DAB оценивает разрешения сущности для роли anonymous. |
Когда следует использовать этот поставщик
Используйте Unauthenticated в следующих сценариях:
| Сценарий | Хорошо подходит? | Почему |
|---|---|---|
| Управление API или шлюз сначала проверяет подлинность пользователей | Да | Фронтенд может ограничивать доступ, в то время как DAB по-прежнему авторизует запросы только для роли anonymous |
| Внутренний сервис внутри границы частной сети | Да | Сетевой доступ контролируется вне DAB, и DAB может оставаться anonymous-только |
| Быстрая локальная настройка без настройки проверки JWT | Да | Самый простой способ приступить к работе |
| DAB, являющийся доступным непосредственно браузерам или общедоступным клиентам | Нет | DAB не проверяет токены идентификации |
Требуется authenticated или настраиваемая активация ролей внутри DAB |
Нет | Только anonymous активен с этим поставщиком |
Краткий справочник
| Setting | Ценность |
|---|---|
| Поставщик | Unauthenticated |
| Требуется токен | Нет |
| Активная роль DAB | anonymous |
| Поддерживает проверку JWT | Нет |
Поддерживает authenticated роль |
Нет |
| Поддержка пользовательских ролей | Нет |
Шаг 1. Настройка поставщика
Задайте поставщика проверки подлинности на Unauthenticated.
CLI
dab configure \
--runtime.host.authentication.provider Unauthenticated
Итоговая конфигурация
{
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
}
Замечание
Поставщик Unauthenticated используется по умолчанию для новых конфигураций в DAB 2.0. Выполнение dab init создает рабочую конфигурацию без каких-либо параметров JWT.
Шаг 2. Настройка разрешений сущности для anonymous
Поскольку DAB обрабатывает все запросы с anonymous, ваши сущности должны разрешить доступ к роли anonymous для любой операции, которую вы хотите разрешить.
Пример конфигурации
{
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}
Если сущность предоставляет доступ только к authenticated или пользовательской роли, запросы завершаются ошибкой, так как эти роли никогда не активируются, когда настроен Unauthenticated.
Это важно
Если Unauthenticated активен, authenticated и пользовательские роли, определенные в разрешениях сущностей, никогда не активируются. Если конфигурация содержит эти роли, DAB выдает предупреждение при запуске.
Шаг 3. При необходимости выместите другую службу перед DAB
Другая служба по-прежнему может выполнять проверку подлинности вызывающих абонентов или применять правила доступа с грубой проверкой подлинности, прежде чем запрос достигнет DAB. Это не изменяет поведение DAB:
- Проверка подлинности вызывающего абонента на фронтенде, шлюзе или прокси-сервере.
- Примените туда политику крупнозернистого доступа.
- Переадресация утвержденных запросов в DAB.
- Используйте разрешения сущности DAB для контроля над тем, что может делать роль
anonymous.
Этот шаблон хорошо работает, когда окружающая платформа контролирует, кто может получить доступ к DAB, в то время как DAB намеренно остается anonymous-только.
То, что этот поставщик не делает
Поставщик не:
- Проверка маркеров носителя
- активируйте роль
authenticated - Активировать пользовательские роли из утверждений
- сделать утверждения доступными для политик базы данных
- выполнение авторизации для конкретного пользователя внутри DAB
Если вам нужны эти возможности, используйте поставщика, предоставляющего удостоверение DAB.
Полный пример конфигурации
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
},
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
},
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}