Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Субъект-служба Azure (SPN) — это удостоверение безопасности, используемое приложениями или средствами автоматизации для доступа к определенным ресурсам Azure. В отличие от удостоверений пользователей, субъекты-службы являются неинтерактивными удостоверениями на основе приложений, которые могут быть назначены точными разрешениями, что делает их идеальными для автоматизированных процессов или фоновых служб. Дополнительные сведения о субъектах-службах см. в разделе "Объекты приложения и субъекта-службы" в идентификаторе Microsoft Entra.
Microsoft Fabric поддерживает два распространенных сценария использования семантической связи с проверкой подлинности субъекта-службы:
- Запускаемые субъектом-службой записные книжки: используйте субъект-службу для проверки подлинности автоматических или запланированных заданий записной книжки, вызывающих семантику, позволяя выполнять неинтерактивное выполнение без входа пользователя.
- Аутентификация семантической связи вручную с помощью субъекта-службы. Укажите учетные данные субъекта-службы при вызове семантической связи во время интерактивных или нерегламентированных рабочих процессов.
Выберите сценарий, соответствующий рабочему процессу, и перейдите к инструкциям по настройке.
Замечание
Для поддержки субъекта-службы требуется семантическая ссылка версии 0.12.0 или более поздней. Образ среды выполнения по умолчанию может включать более раннюю версию. Обновите пакет в среде записной книжки следующим образом:
%pip install -U semantic-link
После установки перезапустите ядро (или повторно запустите задание), чтобы получить обновленный пакет. Проверьте установленную версию:
import sempy
print(sempy.__version__)
Если вы запускаете записные книжки в конвейерах или через API планировщика заданий, убедитесь, что среда выполнения устанавливает обновленный пакет в рамках установки задания.
Использование семантической ссылки в запущенной записной книжке субъекта-службы
Запущенная с помощью субъекта-службы записная книжка ссылается на неинтерактивные выполнения записных книжек, прошедших проверку подлинности с помощью субъекта-службы. Существует два сценария:
- Конвейеры Fabric: записные книжки, вызываемые как часть конвейера с помощью проверки подлинности субъекта-службы.
- API планировщика заданий: записные книжки, активированные через общедоступный API Fabric с помощью проверки подлинности субъекта-службы.
По умолчанию запуски записной книжки с активацией субъекта-службы не требуют дополнительных изменений конфигурации или кода. Служба маркеров по умолчанию автоматически обрабатывает базовую проверку подлинности для семантического канала. Однако этот поток по умолчанию имеет функциональные ограничения и поддерживает только подмножество функций семантической связи, см. поддерживаемые функции семантики. Чтобы использовать другие возможности, рекомендуется вручную пройти проверку подлинности семантической связи с помощью субъекта-службы.
Поддерживаемые функции семантической связи
Следующие функции семантической связи поддерживаются для запуска записной книжки субъекта-службы по умолчанию с помощью службы маркеров по умолчанию:
Замечание
Проверка подлинности субъекта-службы блокирует доступ к личной рабочей области "Моя рабочая область". Все вызовы, предназначенные для "Моя рабочая область", завершались сбоем, включая функции в этом поддерживаемом списке.
sempy.fabric.FabricRestClientsempy.fabric.create_foldersempy.fabric.create_lakehousesempy.fabric.create_notebooksempy.fabric.delete_foldersempy.fabric.delete_itemsempy.fabric.list_itemssempy.fabric.list_folderssempy.fabric.list_datsets(..., mode='rest', endpoint='fabric')sempy.fabric.list_dataflows(..., endpoint='fabric')sempy.fabric.list_reports(..., endpoint='fabric')sempy.fabric.list_workspaces(..., endpoint='fabric')sempy.fabric.move_foldersempy.fabric.rename_foldersempy.fabric.resolve_workspace_idsempy.fabric.resolve_workspace_namesempy.fabric.resolve_workspace_name_and_idsempy.fabric.resolve_dataset_idsempy.fabric.resolve_dataset_namesempy.fabric.resolve_dataset_name_and_idsempy.fabric.resolve_folder_idsempy.fabric.resolve_folder_pathsempy.fabric.resolve_item_idsempy.fabric.resolve_item_namesempy.fabric.run_notebook_jobsempy.fabric.get_lakehouse_idsempy.fabric.get_workspace_idsempy.fabric.get_artifact_idsempy.fabric.get_notebook_workspace_id
Проверка подлинности семантической связи вручную с помощью субъекта-службы
Субъект-служба для интерактивной записной книжки выполняется двумя способами:
- Используйте sempy
set_service_principalв качестве диспетчера контекста. Это более простой вариант с меньшим количеством кода и встроенной поддержкой простых значений или ссылок Key Vault— см. раздел " Использование семантического набора ссылок субъекта-службы ". - Используйте пакет SDK Azure для повышения контроля и взаимодействия с другими библиотеками Azure. См. раздел "Использование учетных данных маркера пакета SDK
TokenCredentialAzure".
Предпосылки
Создайте субъект-службу, назначьте роли и создайте секрет с помощью Azure.
Убедитесь, что пользователь с ролью рабочей области администратора может предоставить доступ для имени участника-службы через управление доступом в рабочей области.
Использование семантической связи set_service_principal
Вы можете задать проверку подлинности субъекта-службы с помощью простых значений:
import sempy.fabric as fabric
from sempy.fabric import set_service_principal
dataset = "<replace-with-your-dataset-name>"
workspace = "<replace-with-your-workspace-id>"
tenant_id = "<replace-with-your-tenant-id>"
client_id = "<replace-with-your-client-id>"
client_secret = "<replace-with-your-client-secret>"
with set_service_principal(tenant_id, client_id, client_secret=client_secret):
fabric.run_model_bpa(dataset, workspace=workspace)
Если вы предпочитаете не внедрять секреты в записную книжку, укажите ссылки set_service_principalна Key Vault.
set_service_principal принимает кортежи формы (vault_url, secret_name) для секретов или сертификатов и разрешает их во время выполнения, сохраняя учетные данные вне кода и сохраненные артефакты. Убедитесь, что субъект-служба, на котором запущена записная книжка, имеет разрешение "получить" key Vault для секретов и сертификатов.
Пример:
tenant_kv = ("<replace-with-your-tenant-vault-url>", "<replace-with-your-tenant-secret-name>")
client_kv = ("<replace-with-your-client-vault-url>", "<replace-with-your-client-secret-name>")
client_cert_kv = ("<replace-with-your-client-certification-vault-url>", "<replace-with-your-client-certification-secret-name>")
with set_service_principal(tenant_kv, client_kv, client_certificate=client_cert_kv):
fabric.run_model_bpa(dataset, workspace=workspace)
Использование учетных данных маркера azure SDK
Вы можете использовать токен Azure SDKCredential для повышения контроля и взаимодействия с другими библиотеками Azure. Создайте объект учетных данных и передайте его в функции sempy или задайте его в качестве значения по умолчанию в пакете SDK для Аналитики Fabric.
Примеры.
Создайте tokenCredential и передайте его в функции sempy:
from azure.identity import ClientSecretCredential
tenant_id = "your-tenant-id"
client_id = "your-client-id"
client_secret = "your-client-secret"
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
fabric.run_model_bpa(dataset, workspace=workspace, credential=credential)
Или задайте tokenCredential в качестве проверки подлинности по умолчанию из пакета SDK для Аналитики Fabric:
from fabric.analytics.environment.credentials import SetFabricAnalyticsDefaultTokenCredentials
with SetFabricAnalyticsDefaultTokenCredentials(credential):
fabric.run_model_bpa(dataset, workspace=workspace)
Замечание
- Не фиксируйте секреты в системе управления версиями. Используйте переменные среды или ссылки Key Vault.
- Убедитесь, что субъект-служба имеет необходимые роли и доступ к рабочей области.
- Проверка подлинности субъекта-службы по-прежнему не может получить доступ к "Моя рабочая область".
Ограничения
При проверке подлинности семантической связи вручную с помощью субъекта-службы следует учитывать следующие ограничения:
- Доступ к личной рабочей области запрещен. Все вызовы, предназначенные для него, завершались сбоем.
- Следующие функции не поддерживаются при проверке подлинности субъекта-службы.
sempy.fabric.list_appssempy.fabric.list_dataflow_storage_accountssempy.fabric.evaluate_measuresempy.fabric.read_table(..., mode='rest')sempy.fabric.execute_tmsl