Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Поиск с использованием ИИ Azure поддерживает управление доступом на основе ролей через Microsoft Entra ID. Доступ на основе ролей является необязательным, но рекомендуется. Альтернативой является проверка подлинности на основе ключей, которая является стандартной.
При назначении нескольких ролей субъекту безопасности объединяются разрешения. Назначения ролей применяются ко всем средствам и клиентским библиотекам. Вы можете назначать роли с помощью любого поддерживаемого подхода.
В этой статье объясняется, как назначать встроенные роли для администрирования служб, разработки и доступа только для чтения и получения. Он также содержит шаги по созданию пользовательских ролей и тестированию назначений ролей.
Подсказка
- Хотите получить краткий обзор встроенных ролей? См . сводку разрешений.
- Чтобы управлять доступом к результатам поиска на уровне документа, также известному как безопасность на уровне строк, см. раздел Управление доступом на уровне документа в Поиск с использованием ИИ Azure.
Предпосылки
Служба Поиск с использованием ИИ Azure (любой регион и любой уровень) с включенным доступом на основе ролей.
Разрешение на назначение ролей Azure. Любая из перечисленных ниже ролей подходит.
- Owner
- Администратор доступа пользователей
- Администратор ролевого управления доступом
- Пользовательская роль с Microsoft.Authorization/roleAssignments/write разрешениями
Встроенные роли
Роли — это коллекция разрешений, влияющих на плоскость управления или плоскость данных:
Плоскость управления: Операции по предоставлению, настройке и администрированию сервиса. Операции уровня управления включают создание или удаление служб поиска, перечисление ключей API и управление параметрами сети и проверки подлинности. Доступен через интерфейсы REST API Azure Resource Manager, Search Management REST API и эквивалентные клиентские библиотеки Azure SDK.
Плоскость данных: Операции с конечной точкой службы поиска. Операции плоскости данных делятся на две категории: управление объектами и доступ к содержимому. Доступно через REST API-интерфейсы службы Search Service и эквивалентные клиентские библиотеки Azure SDK.
Описания ролей
Следующие встроенные роли предоставляют разрешения для Поиск с использованием ИИ Azure. Роли плоскости управления всегда доступны, а роли плоскости данных требуют, чтобы в вашей службе поиска был включен доступ на основе ролей. Вы можете объединить встроенные роли для более широкого доступа или создать пользовательскую роль с определенными разрешениями.
| Должность | Самолет | Описание |
|---|---|---|
| владелец | Управление |
|
| Сотрудник | Управление |
|
| Читалка | Управление |
|
| Участник службы поиска | Управление и данные |
|
| Участник данных индекса поиска | Данные |
|
| Средство чтения индексов поиска | Данные |
|
Это важно
- Владелец, участник и участник службы поиска может получить ключи администратора, которые предоставляют полный доступ на чтение и запись к плоскости данных. Предоставьте эти роли доверенным пользователям.
- По умолчанию роли плоскости данных применяются ко всем индексам в службе поиска. Чтобы ограничить доступ участника данных индекса поиска или читателя данных индекса поиска к одному индексу, см. раздел Предоставление доступа к одному индексу.
Сводка разрешений
Используйте следующую таблицу, чтобы быстро найти роль, которая предоставляет нужные вам разрешения.
| Разрешения | Владелец или участник | Читатель | Участник службы поиска | Участник данных поискового индекса | Средство чтения данных индекса поиска |
|---|---|---|---|---|---|
| Создание и настройка служб Поиск с использованием ИИ Azure | ✅ | ❌ | ✅ | ❌ | ❌ |
| Доступ к службе на портале Azure | ✅ | ✅ | ✅ | ❌ | ❌ |
| Просмотр свойств службы, метрик и конечной точки | ✅ | ✅ | ✅ | ❌ | ❌ |
| Список всех объектов на службе | ✅ | ✅ | ✅ | ❌ | ❌ |
| Доступ к квотам и статистике услуг | ✅ | ❌ | ✅ | ❌ | ❌ |
| Просмотр, копирование и повторное создание ключей | ✅ | ❌ | ✅ | ❌ | ❌ |
| Настройка параметров проверки подлинности | ✅ | ❌ | ✅ | ❌ | ❌ |
| Просмотр ролей, политик и определений | ✅ | ✅ | ✅ | ❌ | ❌ |
| Настройка безопасности сети и частных подключений | ✅ | ❌ | ✅ | ❌ | ❌ |
| Создание, запуск и управление объектами поиска 1 | ❌ | ❌ | ✅ | ❌ | ❌ |
| Отправка данных для индексирования 2 | ❌ | ❌ | ❌ | ✅ | ❌ |
| Запрос к индексу | ❌ | ❌ | ❌ | ✅ | ✅ |
| Получение из базы знаний | ❌ | ❌ | ❌ | ✅ | ✅ |
| Обход фильтров разрешений с повышенными правами чтения | ❌ | ❌ | ❌ | ✅ | ❌ |
1 Включает индексы, индексаторы, источники данных, наборы навыков, псевдонимы, карты синонимов, сеансы отладки, базы знаний и источники знаний. Индексаторы также поддерживают операции запуска и сброса.
2 Владелец или участник могут запустить мастер импорта данных для создания и загрузки индексов, даже если они не могут отправлять документы в другие клиенты. Аналогичным образом индексаторы могут записывать в любой индекс в службе поиска независимо от назначений ролей на индекс. В обоих случаях служба поиска (а не пользователь) выполняет операции в плоскости данных с помощью своих разрешений Microsoft.Search/searchServices/indexes/documents/*.
Назначьте встроенные роли
В этом разделе вы назначите роли для:
Назначьте роли для администрирования сервиса
Следующие роли позволяют создавать, настраивать и управлять службой поиска. Эти роли являются иерархическими, поэтому выберите одну на основе необходимого уровня доступа.
| Должность | Идентификатор |
|---|---|
| владелец | 8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
| Сотрудник | b24988ac-6180-42a0-ab88-20f7382d2d2c |
| Читалка | acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Перейдите в службу поиска на портале Azure.
В левой области выберите Access control (IAM).
Выберите + Добавить>Добавить назначение роли.
Выберите роль: владелец, участник или читатель.
На вкладке Members выберите идентификатор пользователя или группы Microsoft Entra. Если вы настраиваете разрешения для другой службы Azure, выберите управляемое удостоверение, назначаемое системой или назначаемое пользователем.
На вкладке Проверка и назначение выберите пункт Проверка и назначение, чтобы назначить роль.
Назначение ролей для разработки
Следующие роли позволяют создавать объекты поиска, загружать документы, индексы запросов и извлекать их из баз знаний. Назначьте все три роли, чтобы охватывать полный спектр задач разработки.
| Должность | Идентификатор |
|---|---|
| Участник службы поиска | 7ca78c08-252a-4471-8644-bb5ff32d4ba0 |
| Участник данных индекса поиска | 8ebe5a00-799e-43f5-93ac-243d3dce84a7 |
| Средство чтения индексов поиска | 1407120a-92aa-4202-b7e9-c0e197c71c8f |
Перейдите в службу поиска на портале Azure.
В левой области выберите Access control (IAM).
Выберите + Добавить>Добавить назначение роли.
Выберите соавтора службы поиска.
На вкладке Members выберите идентификатор пользователя или группы Microsoft Entra. Если вы настраиваете разрешения для другой службы Azure, выберите управляемое удостоверение, назначаемое системой или назначаемое пользователем.
На вкладке Проверка и назначение выберите пункт Проверка и назначение, чтобы назначить роль.
Повторите эти действия, чтобы назначить участника индексов поиска и средства чтения данных индексов поиска.
Назначьте роли для доступа только для чтения
Используйте следующую роль для приложений и процессов, которым нужен только доступ на чтение к индексам и базам знаний. Поддерживаемые операции включают поиск, поиск значений, автозавершение и подсказки для индексов, а также получение информации из баз знаний.
| Должность | Идентификатор |
|---|---|
| Средство чтения индексов поиска | 1407120a-92aa-4202-b7e9-c0e197c71c8f |
Перейдите в службу поиска на портале Azure.
В левой области выберите Access control (IAM).
Выберите + Добавить>Добавить назначение роли.
Выберите роль читателя индексов поиска .
На вкладке Members выберите идентификатор пользователя или группы Microsoft Entra. Если вы настраиваете разрешения для другой службы Azure, выберите управляемое удостоверение, назначаемое системой или назначаемое пользователем.
На вкладке Проверка и назначение выберите пункт Проверка и назначение, чтобы назначить роль.
Тестирование назначений ролей
Используйте клиент для тестирования назначений ролей. Помните, что роли имеют накопительный характер. Вы не можете удалить или запретить унаследованные роли, которые находятся на уровне подписки или группы ресурсов на уровне ресурса (службы поиска).
Прежде чем продолжить, настройте приложение для бессерверных подключений и укажите назначения ролей.
Перейдите в службу поиска на портале Azure.
На левой панели выберите Управление поиском>Индексы, чтобы протестировать разрешения, связанные с индексами.
Участники службы поиска могут создавать, изменять и удалять объекты поиска, но не могут загружать документы или выполнять запросы. Чтобы проверить разрешения, создайте индекс поиска.
Участники индекса поиска могут загружать документы. Нет возможности загрузить документы на портале Azure за пределами мастера Import data, но вы можете сбросить и запустить индексатор для подтверждения разрешений на загрузку документов.
Читатели данных поискового индекса могут выполнять запросы к индексам. Чтобы проверить разрешения, используйте обозреватель поиска. Вы должны иметь возможность отправлять запросы и просматривать результаты, но вы не сможете просматривать определения индексов или создавать индексы.
Предоставление доступа к одному индексу
В некоторых сценариях может потребоваться ограничить доступ приложения к одному ресурсу, например индексу.
Портал Azure в настоящее время не поддерживает назначения ролей на этом уровне детализации, но вы можете назначать роли с помощью PowerShell или Azure CLI.
В PowerShell используйте New-AzRoleAssignment, указав имя пользователя или группы Azure и область назначения.
Загрузите модули
AzureиAzureADи подключитесь к учетной записи Azure:Import-Module -Name Az Import-Module -Name AzureAD Connect-AzAccountДобавьте назначение роли в отдельный индекс:
New-AzRoleAssignment -ObjectId <objectId> ` -RoleDefinitionName "Search Index Data Contributor" ` -Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"Справочник:New-AzRoleAssignment
Операции с областью и индексатором для каждого индекса
Назначения ролей по индексу применяются только к операциям API, выполняемым непосредственно, таким как запросы или отправка документов пользователями или приложениями. Индексаторы не ограничиваются разрешениями на индекс, потому что они работают с учетными данными уровня сервиса.
Пользователь с ролью участника службы поиска может создавать индексаторы, записываемые в любой индекс в службе поиска, даже индексы, в которых у этого пользователя нет назначения роли на индекс.
Для строгой изоляции данных между индексами рассмотрим следующие подходы:
- Используйте отдельные службы поиска для команд или пользователей, которым требуется изоляция на уровне индекса.
- Назначайте Search Service Contributor только администраторам, которые управляют индексаторами.
- Используйте управление доступом на уровне документа с фильтрами безопасности, чтобы ограничить результаты запроса в общем индексе.
Создание настраиваемой роли
Если встроенные роли не предоставляют правильное сочетание разрешений, можно создать пользовательскую роль для поддержки необходимых операций.
В следующих примерах клонируйте средство чтения данных индекса поиска и добавьте возможность перечислять индексы по имени. Как правило, перечисление индексов в службе поиска считается административным правом.
Войдите на портал Azure и перейдите в службу поиска.
В левой области выберите Access control (IAM).
На вкладке «Роли» найдите роль «Search Index Data Reader» или другую роль, выберите многоточие (...), затем выберите «Клонировать».
На вкладке Basics введите имя настраиваемой роли, например "Индекс поиска Исследователь данных", а затем выберите Далее.
На вкладке "Разрешения" выберите "Добавить разрешения".
В области разрешений Add выберите плитку Поиск (Майкрософт).
При выборе действий в верхней части задайте следующие разрешения:
- В разделе
Microsoft.Search/operationsвыберите Read: перечисление всех доступных операций. - В разделе
Microsoft.Search/searchServices/indexesвыберите Read : Read Index.
- В разделе
Перейдите на Data Actions вверху и в разделе
Microsoft.Search/searchServices/indexes/documentsвыберите Read: Read Documents.Определение JSON выглядит следующим образом:
{ "properties": { "roleName": "search index data explorer", "description": "", "assignableScopes": [ "/subscriptions/0000000000000000000000000000000/resourceGroups/free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc" ], "permissions": [ { "actions": [ "Microsoft.Search/operations/read", "Microsoft.Search/searchServices/indexes/read" ], "notActions": [], "dataActions": [ "Microsoft.Search/searchServices/indexes/documents/read" ], "notDataActions": [] } ] } }Нажмите кнопку "Добавить ", чтобы закрыть область.
Выберите "Проверить и создать" , чтобы создать роль.
Теперь вы можете назначить пользователей и группы к роли. Дополнительные сведения об этих шагах см. в статье Создание и обновление пользовательских ролей в Azure с помощью портала.
Создание политики условного доступа
Если необходимо применить политики организации, такие как многофакторная проверка подлинности, используйте Условный доступ Microsoft Entra.
Чтобы создать политику условного доступа для Поиск с использованием ИИ Azure, выполните следующие действия.
Войдите на портал Azure.
Найдите Условный доступ Microsoft Entra.
На странице "Обзор" выберите "Создать политику".
В разделе Cloud apps or actions добавьте Поиск с использованием ИИ Azure в качестве облачного приложения в зависимости от способа настройки политики.
Обновите оставшиеся параметры политики. Например, укажите, к каким пользователям и группам применяется политика.
Сохраните политику.
Это важно
Если вашей службе поиска назначено управляемое удостоверение, эта конкретная служба поиска отображается как облачное приложение. Однако выбор конкретной службы поиска не применяет политику. Вместо этого выберите общее Поиск с использованием ИИ Azure облачное приложение, чтобы применить политики условного доступа к службе поиска.
Troubleshooting
При разработке приложений, использующих управление доступом на основе ролей для проверки подлинности, могут возникнуть некоторые распространенные проблемы:
Конфигурация по умолчанию для службы поиска — это проверка подлинности на основе ключей. Если вы не измените этот параметр на Оба или Управление доступом на основе ролей, все запросы, использующие аутентификацию на основе ролей, автоматически отклоняются, независимо от базовых разрешений.
Если запрос включает ключ API вместе с учетными данными на основе ролей, служба проходит проверку подлинности с помощью ключа. Удалите ключ API из заголовков запроса для использования проверки подлинности на основе ролей.
Если маркер авторизации поступает из управляемого удостоверения и вы недавно назначили соответствующие разрешения, может потребоваться несколько часов, чтобы назначения разрешений вступили в силу.
Если запросы с разрешениями на уровне документа не возвращают ожидаемые результаты, используйте роль участника данных поиска или создайте пользовательскую роль с повышенными разрешениями для проведения расследования.
Следующий шаг
В этой статье объясняется, как назначать роли для операций управления и плоскости данных на Поиск с использованием ИИ Azure. Полные инструкции по добавлению доступа на основе ролей к коду приложения: