Поделиться через


Руководство по использованию REST API для управления доступом на основе ролей в коллекциях #REF!

Примечание.

Каталог данных #REF! (классическая) и Аналитика работоспособности данных (классическая) больше не берут на себя новых клиентов, и эти службы, ранее #REF! Purview, теперь находятся в режиме поддержки клиентов.

В августе 2021 г. управление доступом в #REF! переместилось из #REF! identity & Access Management (IAM) (уровень управления) в коллекции #REF! (плоскость данных). Это изменение предоставляет кураторам и администраторам корпоративных данных более точный и детализированный контроль доступа к источникам данных, сканируемым с помощью #REF!. Это изменение также позволяет организациям проводить аудит правильного доступа и правильного использования своих данных.

В этом руководстве описано пошаговое использование API-интерфейсов политики метаданных #REF!, которые помогут вам добавлять пользователей, группы или субъекты-службы в коллекцию, а также управлять их ролями или удалять их в этой коллекции. REST API — это альтернативный метод использования портал #REF! или портала управления #REF! для обеспечения того же детального управления доступом на основе ролей.

Дополнительные сведения о встроенных ролях в #REF! см. в руководстве по разрешениям #REF!. В этом руководстве роли сопоставляются с уровнем разрешений на доступ, предоставляемых пользователям.

Справочник по API политики метаданных

В следующей таблице приведен обзор справочника по API политики метаданных #REF!.

Примечание.

Замените {pv-acc-name} именем учетной записи #REF! перед запуском этих API. Например, если имя учетной записи #REF! — FabrikamPurviewAccount, конечные точки API станут FabrikamPurviewAccount.purview.azure.com. Параметр api-version может быть изменен. Последняя версия api и подпись API см. в документации по rest API политики метаданных #REF! .

Функция API Метод REST Конечная точка API Описание
Чтение всех ролей метаданных GET https://{pv-acc-name}.purview.azure.com /policystore/metadataroles?&api-version=2021-07-01 Считывает все роли метаданных из учетной записи #REF!.
Чтение политики метаданных по имени коллекции GET https://{pv-acc-name}.purview.azure.com /policystore/collections/{collectionName}/metadataPolicy?&api-version=2021-07-01 Считывает политику метаданных, используя указанное имя коллекции (случайное имя из шести символов, созданное #REF! при создании политики).
Чтение политики метаданных по идентификатору политики GET https://{pv-acc-name}.purview.azure.com /policystore/metadataPolicies/{policyId}?&api-version=2021-07-01 Считывает политику метаданных с помощью указанного идентификатора политики. Идентификатор политики имеет формат GUID.
Чтение всех политик метаданных GET https://{pv-acc-name}.purview.azure.com /policystore/metadataPolicies?&api-version=2021-07-01 Считывает все политики метаданных из учетной записи #REF!. Вы можете выбрать определенную политику для работы из списка выходных данных JSON, созданного этим API.
Политика метаданных update/PUT PUT https://{pv-acc-name}.purview.azure.com /policystore/metadataPolicies/{policyId}?&api-version=2021-07-01 Обновления политику метаданных с помощью указанного идентификатора политики. Идентификатор политики имеет формат GUID.

Справочник по API коллекций каталогов #REF!

В следующей таблице приведен обзор API коллекций #REF!. Для получения полной документации по каждому API выберите операцию API в левом столбце.

Операция Описание
Создание или обновление коллекции Создает или обновляет сущность коллекции.
Удаление коллекции Удаляет сущность коллекции.
Получение коллекции Возвращает коллекцию.
Получение пути к коллекции Возвращает родительское имя и цепочки отображаемых имен, представляющие путь к коллекции.
Вывод списка имен дочерних коллекций Перечисляет имена дочерних коллекций в коллекции.
Перечисление коллекций Выводит список коллекций в учетной записи.
  • Если вы используете API, субъекту-службе, пользователю или группе, которая выполняет API, должна быть назначена роль Администратор коллекции в #REF! для успешного выполнения этого API.

  • Для всех API #REF!, которым требуется {collectionName}, необходимо использовать "name" (а не "friendlyName"). Замените {collectionName} фактическим шестизначным буквенно-цифровым именем коллекции.

    Примечание.

    Это имя отличается от понятного отображаемого имени, указанного при создании коллекции. Если у вас нет {collectionName} под рукой, используйте API списков коллекций , чтобы выбрать имя коллекции из шести символов из выходных данных JSON.

Ниже приведен пример JSON-файла:

{
    "name": "74dhe7", 
    "friendlyName": "Friendly Name",
    "parentCollection": {
        "type": "CollectionReference",
        "referenceName": "{your_purview_account_name}"
    },
    "systemData": {
        "createdBy": "{guid}",
        "createdByType": "Application",
        "createdAt": "2021-08-26T21:21:51.2646627Z",
        "lastModifiedBy": "7f8d47e2-330c-42f0-8744-fcfb1ecb3ea0",
        "lastModifiedByType": "Application",
        "lastModifiedAt": "2021-08-26T21:21:51.2646628Z"
    },
    "collectionProvisioningState": "Succeeded"
}

Описание json политики

Ниже приведены некоторые важные идентификаторы в выходных данных JSON, полученных из API коллекции:

Имя: имя политики.

Идентификатор: уникальный идентификатор политики.

Версия: номер последней версии политики.

Важно!

Номер версии увеличивается при каждом вызове API Update-Metadata-Policy. Не забудьте получить последнюю копию политики, вызвав API Get-Policy-by-Policy-ID. Выполняйте это обновление каждый раз перед вызовом API политики обновления (PUT), чтобы всегда иметь последнюю версию JSON-файла.

DecisionRules: перечисление правил и последствий этой политики. Для политик метаданных результат всегда имеет значение "Разрешить".

Добавление или удаление пользователей из коллекции или роли

Используйте ИНТЕРФЕЙСы REST API #REF!, чтобы добавить или удалить пользователя, группу или субъект-службу из коллекции или роли. Подробное использование API предоставляется вместе с примерами выходных данных JSON. Настоятельно рекомендуется последовательно следовать инструкциям в следующих разделах, чтобы лучше понять API политики метаданных #REF!.

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

Чтобы получить список всех доступных ролей разрешений на доступ к метаданным, выполните одну из следующих команд в зависимости от используемого портала:

Классический портал управления #REF!:

GET https://{your_purview_account_name}.purview.azure.com/policystore/metadataroles?api-version=2021-07-01

Новый портал #REF!:

GET https://api.purview-service.microsoft.com/policystore/metadataroles?api-version=2021-07-01

Выходные данные JSON описывают роли и связанные с ними разрешения в этом формате.

Роли метаданных по умолчанию перечислены в следующей таблице:

Идентификатор роли Разрешения Описание роли
purviewmetadatarole_builtin_data-source-administrator Microsoft.Purview/accounts/scan/read Microsoft.Purview/accounts/scan/write Microsoft.Purview/accounts/collection/read Предоставляет другим пользователям доступ для чтения, записи сбора, регистрации источников данных и активации проверок.
администратор purviewmetadatarole_builtin_collection Microsoft.Purview/accounts/collection/read Microsoft.Purview/accounts/collection/write Полный доступ на уровне администратора ко всей коллекции, включая добавление или удаление пользователей и имен субъектов-служб (SPN) из коллекции, права управления, а также предоставление или отзыв доступа. В некоторых случаях администратор коллекции может отличаться от создателя коллекции.
purviewmetadatarole_builtin_purview-читатель Microsoft.Purview/accounts/data/read Microsoft.Purview/accounts/collection/read Предоставляет доступ только на чтение к обработке данных и всем метаданным, включая классификации, метки конфиденциальности, аналитические сведения и ресурсы чтения в коллекции, за исключением привязок сканирования.
purviewmetadatarole_builtin_data-куратор Microsoft.Purview/accounts/data/read Microsoft.Purview/accounts/data/write Microsoft.Purview/accounts/collection/read Предоставляет полный доступ к обработке данных и всем метаданным, включая классификации, метки конфиденциальности, аналитические сведения и ресурсы чтения в коллекции, за исключением привязок сканирования.
purviewmetadatarole_builtin_data-share-участник Microsoft.Purview/accounts/share/read Microsoft.Purview/accounts/share/write Предоставляет доступ к общим ресурсам данных в качестве участник.
{
  "values": [
    {
      "id": "purviewmetadatarole_builtin_data-curator",
      "name": "data-curator",
      "type": "Microsoft.Purview/role",
      "properties": {
        "provisioningState": "Provisioned",
        "roleType": "BuiltIn",
        "friendlyName": "Data Curator",
        "cnfCondition": [
          [
            {
              "attributeName": "request.azure.dataAction",
              "attributeValueIncludedIn": [
                "Microsoft.Purview/accounts/data/read",
                "Microsoft.Purview/accounts/data/write",
                "Microsoft.Purview/accounts/collection/read"
              ]
            }
          ]
        ],
        "version": 1
      }
    },
    {
      "id": "purviewmetadatarole_builtin_data-source-administrator",
      "name": "data-source-administrator",
      "type": "Microsoft.Purview/role",
      "properties": {
        "provisioningState": "Provisioned",
        "roleType": "BuiltIn",
        "friendlyName": "Data Source Administrator",
        "cnfCondition": [
          [
            {
              "attributeName": "request.azure.dataAction",
              "attributeValueIncludedIn": [
                "Microsoft.Purview/accounts/scan/read",
                "Microsoft.Purview/accounts/scan/write",
                "Microsoft.Purview/accounts/collection/read"
              ]
            }
          ]
        ],
        "version": 1
      }
    },
    {
      "id": "purviewmetadatarole_builtin_collection-administrator",
      "name": "collection-administrator",
      "type": "Microsoft.Purview/role",
      "properties": {
        "provisioningState": "Provisioned",
        "roleType": "BuiltIn",
        "friendlyName": "Collection Administrator",
        "cnfCondition": [
          [
            {
              "attributeName": "request.azure.dataAction",
              "attributeValueIncludedIn": [
                "Microsoft.Purview/accounts/collection/read",
                "Microsoft.Purview/accounts/collection/write"
              ]
            }
          ]
        ],
        "version": 1
      }
    },
    {
      "id": "purviewmetadatarole_builtin_purview-reader",
      "name": "purview-reader",
      "type": "Microsoft.Purview/role",
      "properties": {
        "provisioningState": "Provisioned",
        "roleType": "BuiltIn",
        "friendlyName": "Microsoft Purview Reader",
        "cnfCondition": [
          [
            {
              "attributeName": "request.azure.dataAction",
              "attributeValueIncludedIn": [
                "Microsoft.Purview/accounts/data/read",
                "Microsoft.Purview/accounts/collection/read"
              ]
            }
          ]
        ],
        "version": 1
      }
    },
    {
      "id": "purviewmetadatarole_builtin_data-share-contributor",
      "name": "data-share-contributor",
      "type": "Microsoft.Purview/role",
      "properties": {
        "provisioningState": "Provisioned",
        "roleType": "BuiltIn",
        "friendlyName": "Data share contributor",
        "cnfCondition": [
          [
            {
              "attributeName": "request.azure.dataAction",
              "attributeValueIncludedIn": [
                "Microsoft.Purview/accounts/share/read",
                "Microsoft.Purview/accounts/share/write"
              ]
            }
          ]
        ],
        "version": 1
      }
    }
  ]
}

Получение всех политик метаданных

Классический портал управления #REF!:

GET https://{your_purview_account_name}.purview.azure.com/policystore/metadataPolicies?api-version=2021-07-01

Новый портал #REF!:

GET https://api.purview-service.microsoft.com/policystore/metadataPolicies?api-version=2021-07-01

Предыдущая команда перечисляет все доступные политики метаданных во всей иерархии коллекций в формате дерева, от корневой коллекции в верхней части до всех ее дочерних политик. Каждая дочерняя коллекция содержит каждый из дочерних элементов следующего уровня.

Пример:

{
  "values": [
    {
      "name": "policy_FabrikamPurview",
      "id": "9b2f1cb9-584c-4a16-811e-9232884b5cac",
      "version": 30,
      "properties": {
        "description": "",
        "decisionRules": [
          {
            "kind": "decisionrule",
            "effect": "Permit",
            "dnfCondition": [
              [
                {
                  "attributeName": "resource.purview.collection",
                  "attributeValueIncludes": "fabrikampurview"
                },
                {
                  "fromRule": "permission:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:fabrikampurview"
                }
              ]
            ]
          }
        ],
        "attributeRules": [
          {
            "kind": "attributerule",
            "id": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview",
            "name": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview",
            "dnfCondition": [
              [
                {
                  "attributeName": "principal.microsoft.id",
                  "attributeValueIncludedIn": [
                    "2f656762-e440-4b62-9eb6-a991d17d64b0",
                    "04314867-60a4-4e5a-ae16-8e5856f415d9",
                    "8988fe5c-5736-4179-9435-0a64c273b90b",
                    "6d563253-1d5b-48f2-baaa-5489f22ddce9",
                    "26f98046-5b02-4fa9-b709-e0519c658891",
                    "73fc02dc-becd-468b-a2a3-82238e722dae"
                  ]
                },
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
                },
                {
                  "attributeName": "principal.microsoft.groups",
                  "attributeValueIncludedIn": [
                    "ffd851fa-86ec-431b-95ea-8b84d5012383",
                    "cf84b126-4384-4952-91f1-7f705b25e569",
                    "5046aba1-5b81-411c-8fec-b84600f3f08b",
                    "b055a5c6-a04e-4d1a-8524-001ad81bfb28",
                    "cc194892-92fa-4ce3-96ae-1f98bef8211c"
                  ]
                }
              ]
            ]
          },
          {
            "kind": "attributerule",
            "id": "purviewmetadatarole_builtin_data-curator:fabrikampurview",
            "name": "purviewmetadatarole_builtin_data-curator:fabrikampurview",
            "dnfCondition": [
              [
                {
                  "attributeName": "principal.microsoft.id",
                  "attributeValueIncludedIn": [
                    "2f656762-e440-4b62-9eb6-a991d17d64b0",
                    "649f56ab-2dd2-40de-a731-3d3f28e7af92",
                    "c29a5809-f9ec-49fd-b762-2d4d64abb93e",
                    "04314867-60a4-4e5a-ae16-8e5856f415d9",
                    "73fc02dc-becd-468b-a2a3-82238e722dae",
                    "517a27d2-39ba-4c91-a032-dd9ecf8ad6f1",
                    "6d563253-1d5b-48f2-baaa-5489f22ddce9"
                  ]
                },
                {
                  "fromRule": "purviewmetadatarole_builtin_data-curator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_data-curator"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_data-curator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_data-curator"
                },
                {
                  "attributeName": "principal.microsoft.groups",
                  "attributeValueIncludedIn": [
                    "b055a5c6-a04e-4d1a-8524-001ad81bfb28",
                    "cc194892-92fa-4ce3-96ae-1f98bef8211c",
                    "5046aba1-5b81-411c-8fec-b84600f3f08b"
                  ]
                }
              ]
            ]
          },
          {
            "kind": "attributerule",
            "id": "purviewmetadatarole_builtin_data-source-administrator:fabrikampurview",
            "name": "purviewmetadatarole_builtin_data-source-administrator:fabrikampurview",
            "dnfCondition": [
              [
                {
                  "attributeName": "principal.microsoft.id",
                  "attributeValueIncludedIn": [
                    "2f656762-e440-4b62-9eb6-a991d17d64b0",
                    "04314867-60a4-4e5a-ae16-8e5856f415d9",
                    "517a27d2-39ba-4c91-a032-dd9ecf8ad6f1",
                    "6d563253-1d5b-48f2-baaa-5489f22ddce9"
                  ]
                },
                {
                  "fromRule": "purviewmetadatarole_builtin_data-source-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_data-source-administrator"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_data-source-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_data-source-administrator"
                },
                {
                  "attributeName": "principal.microsoft.groups",
                  "attributeValueIncludedIn": [
                    "b055a5c6-a04e-4d1a-8524-001ad81bfb28",
                    "cc194892-92fa-4ce3-96ae-1f98bef8211c",
                    "d34eb741-be5e-4098-90d7-eca8d4a5153f",
                    "664ec992-9af0-4773-88f2-dc39edc46f6f",
                    "5046aba1-5b81-411c-8fec-b84600f3f08b"
                  ]
                }
              ]
            ]
          },
          {
            "kind": "attributerule",
            "id": "permission:fabrikampurview",
            "name": "permission:fabrikampurview",
            "dnfCondition": [
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_purview-reader:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_purview-reader:fabrikampurview"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_data-curator:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_data-curator:fabrikampurview"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_data-source-administrator:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_data-source-administrator:fabrikampurview"
                }
              ]
            ]
          }
        ],
        "collection": {
          "type": "CollectionReference",
          "referenceName": "fabrikampurview"
        }
      }
    },
    {
      "name": "policy_b2zpf1",
      "id": "12b0bb28-2acc-413e-8fe1-179ff9cc54c3",
      "version": 0,
      "properties": {
        "description": "",
        "decisionRules": [
          {
            "kind": "decisionrule",
            "effect": "Permit",
            "dnfCondition": [
              [
                {
                  "attributeName": "resource.purview.collection",
                  "attributeValueIncludes": "b2zpf1"
                },
                {
                  "fromRule": "permission:b2zpf1",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:b2zpf1"
                }
              ]
            ]
          }
        ],
        "attributeRules": [
          {
            "kind": "attributerule",
            "id": "purviewmetadatarole_builtin_collection-administrator:b2zpf1",
            "name": "purviewmetadatarole_builtin_collection-administrator:b2zpf1",
            "dnfCondition": [
              [
                {
                  "attributeName": "principal.microsoft.id",
                  "attributeValueIncludedIn": [
                    "2f656762-e440-4b62-9eb6-a991d17d64b0"
                  ]
                },
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:ukx7pq",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:ukx7pq"
                }
              ]
            ]
          },
          {
            "kind": "attributerule",
            "id": "permission:b2zpf1",
            "name": "permission:b2zpf1",
            "dnfCondition": [
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:b2zpf1",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:b2zpf1"
                }
              ],
              [
                {
                  "fromRule": "permission:ukx7pq",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:ukx7pq"
                }
              ]
            ]
          }
        ],
        "collection": {
          "type": "CollectionReference",
          "referenceName": "b2zpf1"
        },
        "parentCollectionName": "ukx7pq"
      }
    },
    {
      "name": "policy_7wte2n",
      "id": "a72084e4-ccab-4aec-a364-08ab001e4999",
      "version": 0,
      "properties": {
        "description": "",
        "decisionRules": [
          {
            "kind": "decisionrule",
            "effect": "Permit",
            "dnfCondition": [
              [
                {
                  "attributeName": "resource.purview.collection",
                  "attributeValueIncludes": "7wte2n"
                },
                {
                  "fromRule": "permission:7wte2n",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:7wte2n"
                }
              ]
            ]
          }
        ],
        "attributeRules": [
          {
            "kind": "attributerule",
            "id": "purviewmetadatarole_builtin_collection-administrator:7wte2n",
            "name": "purviewmetadatarole_builtin_collection-administrator:7wte2n",
            "dnfCondition": [
              [
                {
                  "attributeName": "principal.microsoft.id",
                  "attributeValueIncludedIn": [
                    "2f656762-e440-4b62-9eb6-a991d17d64b0"
                  ]
                },
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:ukx7pq",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:ukx7pq"
                }
              ]
            ]
          },
          {
            "kind": "attributerule",
            "id": "permission:7wte2n",
            "name": "permission:7wte2n",
            "dnfCondition": [
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:7wte2n",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:7wte2n"
                }
              ],
              [
                {
                  "fromRule": "permission:ukx7pq",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:ukx7pq"
                }
              ]
            ]
          }
        ],
        "collection": {
          "type": "CollectionReference",
          "referenceName": "7wte2n"
        },
        "parentCollectionName": "ukx7pq"
      }
    }
  ]
}

Получение выбранной политики метаданных

Вы можете использовать любой из двух API для получения структуры JSON политики метаданных определенной коллекции, указав {collectionName} или {PolicyID}.

Как описано в следующих двух разделах, оба API служат одной и той же цели, и выходные данные JSON для обоих являются совершенно одинаковыми.

Получение политики метаданных коллекции с помощью имени коллекции

Классический портал управления #REF!:

GET https://{your_purview_account_name}.purview.azure.com/policystore/collections/{collectionName}/metadataPolicy?api-version=2021-07-01

Новый портал #REF!:

GET https://api.purview-service.microsoft.com/policystore/collections/{collectionName}/metadataPolicy?api-version=2021-07-01
  1. Имя учетной записи #REF! — {your_purview_account_name}. Замените его именем учетной записи #REF!.

  2. В выходных данных JSON предыдущего API "Получить все политики метаданных" найдите следующий раздел:

    { "type": "CollectionReference", "referenceName": "7xkdg2"}

  3. Замените "{collectionName}" в URL-адресе API значением referenceName: "{6-char-collection-name}". Например, если имя коллекции из шести символов — "7xkdg2", URL-адрес API будет отформатирован следующим образом:

    https://{your_purview_account_name}.purview.azure.com/policystore/collections/7xkdg2/metadataPolicy?api-version=2021-07-01

  4. Выполните следующий API:

    {
      "name": "policy_qu45fs",
      "id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "version": 0,
      "properties": {
        "description": "",
        "decisionRules": [
          {
            "kind": "decisionrule",
            "effect": "Permit",
            "dnfCondition": [
              [
                {
                  "attributeName": "resource.purview.collection",
                  "attributeValueIncludes": "qu45fs"
                },
                {
                  "fromRule": "permission:qu45fs",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:qu45fs"
                }
              ]
            ]
          }
        ],
        "attributeRules": [
          {
            "kind": "attributerule",
            "id": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
            "name": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
            "dnfCondition": [
              [
                {
                  "attributeName": "principal.microsoft.id",
                  "attributeValueIncludedIn": [
                    "2f656762-e440-4b62-9eb6-a991d17d64b0"
                  ]
                },
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator",
                  "attributeName": "derived.purview.role",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
                }
              ],
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview"
                }
              ]
            ]
          },
          {
            "kind": "attributerule",
            "id": "permission:qu45fs",
            "name": "permission:qu45fs",
            "dnfCondition": [
              [
                {
                  "fromRule": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:qu45fs"
                }
              ],
              [
                {
                  "fromRule": "permission:fabrikampurview",
                  "attributeName": "derived.purview.permission",
                  "attributeValueIncludes": "permission:fabrikampurview"
                }
              ]
            ]
          }
        ],
        "collection": {
          "type": "CollectionReference",
          "referenceName": "qu45fs"
        },
        "parentCollectionName": "fabrikampurview"
      }
    }
    

Получение политики метаданных коллекции с помощью идентификатора политики

Классический портал управления #REF!:

GET https://{your_purview_account_name}.purview.azure.com/policystore/metadataPolicies/{policyId}?api-version=2021-07-01

Новый портал #REF!:

GET https://api.purview-service.microsoft.com/policystore/metadataPolicies/{policyId}?api-version=2021-07-01
  1. Имя учетной записи #REF! — {your_purview_account_name}. Замените его именем учетной записи #REF!.

  2. В выходных данных JSON предыдущего API "Получить все политики метаданных" найдите следующий раздел:

    {.... "name": "policy_qu45fs", "id": "{policy-guid}", "version": N ....}

  3. Замените "{policyId}" в URL-адресе API значением "id". Например, если "{policy-guid}" имеет значение "aaaabbbb-0000-cccc-1111-dddd22222ee", URL-адрес API будет форматироваться следующим образом:

    https://{your_purview_account_name}.purview.azure.com/policystore/metadataPolicies/aaaabbbb-0000-cccc-1111-dddd2222eeee?api-version=2021-07-01

  4. Теперь выполните следующий API:

    Примечание.

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

{
  "name": "policy_qu45fs",
  "id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
  "version": 0,
  "properties": {
    "description": "",
    "decisionRules": [
      {
        "kind": "decisionrule",
        "effect": "Permit",
        "dnfCondition": [
          [
            {
              "attributeName": "resource.purview.collection",
              "attributeValueIncludes": "qu45fs"
            },
            {
              "fromRule": "permission:qu45fs",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "permission:qu45fs"
            }
          ]
        ]
      }
    ],
    "attributeRules": [
      {
        "kind": "attributerule",
        "id": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
        "name": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
        "dnfCondition": [
          [
            {
              "attributeName": "principal.microsoft.id",
              "attributeValueIncludedIn": [
                "2f656762-e440-4b62-9eb6-a991d17d64b0"
              ]
            },
            {
              "fromRule": "purviewmetadatarole_builtin_collection-administrator",
              "attributeName": "derived.purview.role",
              "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
            }
          ],
          [
            {
              "fromRule": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview"
            }
          ]
        ]
      },
      {
        "kind": "attributerule",
        "id": "permission:qu45fs",
        "name": "permission:qu45fs",
        "dnfCondition": [
          [
            {
              "fromRule": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:qu45fs"
            }
          ],
          [
            {
              "fromRule": "permission:fabrikampurview",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "permission:fabrikampurview"
            }
          ]
        ]
      }
    ],
    "collection": {
      "type": "CollectionReference",
      "referenceName": "qu45fs"
    },
    "parentCollectionName": "fabrikampurview"
  }
}

Обновление политики сбора

PUT https://{your_purview_account_name}.purview.azure.com/policystore/metadataPolicies/{policyId}?api-version=2021-07-01

В этом разделе вы обновите json политики, полученный на предыдущем шаге, добавив или удалив пользователя, группу или субъект-службу из коллекции. Затем вы отправляете его в службу #REF! с помощью метода REST PUT.

Независимо от того, добавляете или удаляете пользователя, группу или субъект-службу, вы будете следовать тому же процессу API.

  1. Укажите идентификатор объекта пользователя, группы или субъекта-службы {guid} в массиве attributeValueIncludedIn json.

  2. Выполните поиск в выходных данных JSON API Get-Policy-by-ID для массива attributeValueIncludedIn на предыдущем шаге и добавьте или удалите идентификатор объекта пользователя, группы или субъекта-службы в массиве. Если вы не знаете, как получить идентификатор объекта пользователя, группы или субъекта-службы, см. раздел Get-MgUser.

  3. Существует несколько разделов в сопоставлении JSON для каждой из четырех ролей. Для роли "Разрешения администратора коллекции" используйте раздел с идентификатором "purviewmetadatarole_builtin_collection-administrator". Аналогичным образом используйте соответствующий раздел для других ролей.

  4. Чтобы лучше понять операцию добавления и удаления, внимательно изучите разницу между выходными данными JSON из предыдущего API и следующими выходными данными. В приведенных ниже выходных данных JSON мы добавили идентификатор пользователя bbcccc-1111-dddd-2222-eeee3333ffff в качестве администратора коллекции.

{
  "name": "policy_qu45fs",
  "id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
  "version": 0,
  "properties": {
    "description": "",
    "decisionRules": [
      {
        "kind": "decisionrule",
        "effect": "Permit",
        "dnfCondition": [
          [
            {
              "attributeName": "resource.purview.collection",
              "attributeValueIncludes": "qu45fs"
            },
            {
              "fromRule": "permission:qu45fs",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "permission:qu45fs"
            }
          ]
        ]
      }
    ],
    "attributeRules": [
      {
        "kind": "attributerule",
        "id": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
        "name": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
        "dnfCondition": [
          [
            {
              "attributeName": "principal.microsoft.id",
              "attributeValueIncludedIn": [
                "2f656762-e440-4b62-9eb6-a991d17d64b0",
                "bbbbcccc-1111-dddd-2222-eeee3333ffff"
              ]
            },
            {
              "fromRule": "purviewmetadatarole_builtin_collection-administrator",
              "attributeName": "derived.purview.role",
              "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator"
            }
          ],
          [
            {
              "fromRule": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:fabrikampurview"
            }
          ]
        ]
      },
      {
        "kind": "attributerule",
        "id": "permission:qu45fs",
        "name": "permission:qu45fs",
        "dnfCondition": [
          [
            {
              "fromRule": "purviewmetadatarole_builtin_collection-administrator:qu45fs",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "purviewmetadatarole_builtin_collection-administrator:qu45fs"
            }
          ],
          [
            {
              "fromRule": "permission:fabrikampurview",
              "attributeName": "derived.purview.permission",
              "attributeValueIncludes": "permission:fabrikampurview"
            }
          ]
        ]
      }
    ],
    "collection": {
      "type": "CollectionReference",
      "referenceName": "qu45fs"
    },
    "parentCollectionName": "fabrikampurview"
  }
}

Добавление роли администратора корневой коллекции

По умолчанию пользователь, создавший учетную запись #REF!, является администратором корневой коллекции (то есть администратором верхнего уровня иерархии коллекции). Однако в некоторых случаях организации может потребоваться изменить администратора корневой коллекции с помощью API.

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Purview/accounts/{accountName}/addRootCollectionAdmin?api-version=2021-07-01

Чтобы выполнить предыдущую команду, необходимо только передать идентификатор объекта нового администратора корневой коллекции. Как мы уже упоминали ранее, идентификатором объекта может быть любой пользователь, группа или субъект-служба.

{"objectId": "{guid}"}

Примечание.

Пользователи, которые вызывают этот API, должны иметь разрешения владельца или учетной записи пользователя и проверки подлинности (UAA) в учетной записи #REF! для выполнения действия записи в учетной записи.

Дополнительные ресурсы

Вы можете выполнить REST API #REF! с помощью служебной программы PowerShell. Его можно легко установить из коллекция PowerShell. С помощью этой программы можно выполнять все те же команды, но из #REF! PowerShell.

Дальнейшие действия