Управляйте идентификациями, связанными с элементами Fabric (бета-версия)

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

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

Чтобы устранить этот разрыв, Microsoft Fabric вводит идентичности, связанные с элементом. Вместо того чтобы зависеть от владельца, элементы в данной области теперь будут использовать эти связанные идентификаторы.

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

Элементы, поддерживающие ассоциированные идентичности

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

  • Lakehouse
  • Eventstream (за исключением случаев, когда используют Azure или Fabric Events в качестве источника)

Теперь эти элементы опираются на связанный идентификатор, а не на владельца.

Преимущества связанных идентичностей

Использование сопутствующих идентификаторов предоставляет несколько улучшений:

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

Связывание удостоверения с элементом

Удостоверение можно связать с элементом во время создания или после этого.

Во время создания элемента

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

После создания элемента

  • Если элемент был изначально создан пользователем, вы можете обновить его связанное удостоверение до учетной записи службы или управляемой учетной записи.

  • Используйте следующий API для установки идентификации:

    POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/identities/default/assign?beta=true   
    
  • Это будет устанавливать идентификатор элемента и всех его дочерних элементов для вызывающего пользователя.

Замечание

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

  • Дополнительные сведения об API см. здесь.

Пример запроса

POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/identities/default/assign?beta=true
Content-Type: application/json

Пример текста запроса

{
"assignmentType": "Caller"
}

Ответ (принято 202). Операция обрабатывается асинхронно. Проверьте состояние операции с помощью URL-адреса длительной операции, возвращаемого в заголовке location.

Примеры заголовков

API запускает долговременную операцию. Ответ содержит заголовки, такие как:

Location: https://api.fabric.microsoft.com/v1/operations/{operationId}
x-ms-operation-id: {operationId}
Retry-After: 5

Опрос URL-адреса расположения для отслеживания хода выполнения.

Ответ (200 OK в результате длительной операции)

{
"assignmentStatus": [
{
"itemId": "db1b0-3af8-4b17-8e7e-663e61e3257",
"status": "Succeeded"
},

{
"itemId": "8eedb1b0-3af8-4b17-8e7e-663e61e12211",
"parentItemId": "db1b0-3af8-4b17-8e7e-663e61e3257",
"status": "Succeeded"
}
]
}

Это важно

Если назначение дочернего удостоверения завершается ошибкой, операция останавливается. Ответ содержит сведения об ошибке в свойстве errorInfo.

Просмотр идентификатора, связанного с элементом

Чтобы просмотреть идентификатор, связанный с элементом, можно сделать следующее:

  • Как пользователь, вы можете использовать API Get и List Item для просмотра идентификатора, связанного с одним или несколькими элементами.

Пример GET

Ниже показан пример использования API элементов GET

запрос

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}?include=defaultIdentity

Пример ответа

{
"id": "bbbbbbbb-1111-2222-3333-aaaaaaaaaaaa",
"displayName": "Item 1",
"type": "Lakehouse",
"defaultIdentity": {
"id": "aaaabbbb-1111-2222-3333-aaaaaabbbbbb",
"type": "ServicePrincipal",
"displayName": "DefaultIdentityTest",
"servicePrincipalDetails": {
"aadAppId": "bbbbaaaa-1111-2222-3333-bbbbbbaaaaaa"
}
}
}

Пример ответа для получения элемента.

Пример списка

  • Используйте этот API для извлечения всех элементов в рабочей области. При указании include=defaultIdentity каждый элемент включает свою идентичность по умолчанию.

запрос

GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items?include=defaultIdentity

Пример ответа

{
"value": [
{
"id": "cccccccc-1111-3333-2222-bbbbbbbbbbbb",
"displayName": "Lakehouse",
"description": "A lakehouse used by the analytics team.",
"type": "Lakehouse",
"workspaceId": "ccccbbbb-1111-2222-3333-ccccccbbbbbb",
"defaultIdentity": {
"id": "bbbbcccc-3333-2222-1111-bbbbbbcccccc",
"type": "User",
"displayName": "Jane Doe",
"userDetails": {
"userPrincipalName": "jane.doe@contoso.com"
}
}
}
]
}

API GET администратора

API Admin Get item также можно использовать для учета назначений удостоверений в рабочих пространствах.

GET https://api.fabric.microsoft.com/v1/admin/workspaces/{workspaceId}/items/{itemId}

Ограничения

  • Элементы, связанные с управляемым удостоверением Azure, используют токены аутентификации удостоверения. Изменения в сроке действия токена (например, при обновлении учетных данных) могут потребовать повторного установления связи с удостоверением.

Известные проблемы

  • Попытка вызвать API для ассоциации идентификаторов с использованием следующего URL-адреса, включающего тип элемента, может в настоящий момент привести к ошибке.
POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/lakehouses/{lakehouseId}/identities/default/assign?beta={beta}`

Вопросы и ответы

Какие различные типы идентификаций я могу связать с объектом?

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

Со сколькими идентичностями можно ассоциировать предмет?

Вы можете связать одно удостоверение с каждым элементом.

Что будет отображаться в пользовательском интерфейсе?

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