Использование внешних групп для управления разрешениями на источники данных соединителей Microsoft Graph

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

Для источников данных, использующих Microsoft Entra пользователей и групп, необходимо задать разрешения на внешние элементы, связав список управления доступом (ACL) с идентификатором пользователя и группы Microsoft Entra при создании или обновлении внешних элементов.

Однако для источников данных, которые используют не Azure AD группы или такие конструкции, как Профили Salesforce, Подразделения Dynamics, Группы SharePoint, Локальные группы ServiceNow или Локальные группы Confluence, рекомендуется использовать внешние группы.

Распространенные сценарии внешней группы

Ниже приведены распространенные примеры групп, не относящихся к Azure AD приложениям.

Microsoft Dynamics 365 позволяет клиентам структурировать свои CRM с помощью подразделений и команд. Сведения о членстве в этих подразделениях и командах не хранятся в Microsoft Entra ID.

На следующем рисунке показана структура бизнес-подразделений и команд.


Схема структуры в Dynamics 365. В бизнес-подразделении есть команда и менеджер. У этого руководителя есть другие пользователи.

Salesforce использует профили, роли и наборы разрешений для авторизации. Они относятся к Salesforce, и сведения о членстве недоступны в Microsoft Entra ID.

На следующем рисунке показана структура сведений о членстве в Salesforce.


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

Использование внешних групп в подключении

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

  1. Для каждой группы, не Azure AD, используйте API групп, чтобы создать внешнюю группу в Microsoft Graph.
  2. При необходимости используйте внешнюю группу при определении списка ACL для внешних элементов.
  3. Поддерживайте актуальность и синхронизацию членства во внешних группах.

Создание внешней группы

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

  1. Используйте API групп в Microsoft Graph, как показано в следующем примере.

    Примечание.

    Поля displayName и description являются необязательными.

    POST /external/connections/{connectionId}/groups
    
    { 
      "id": "contosoEscalations", 
      "displayName": "Contoso Escalations", 
      "description": "Tier-1 escalations within Contoso"
    } 
    
  2. Укажите идентификатор или имя в поле идентификатора. Используйте это значение для вызова внешней группы в последующих запросах.

    Примечание.

    Поле Идентификатор позволяет использовать наборы символов Base64, безопасные для URL-адреса и имени файла. Он имеет ограничение в 128 символов.

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

    • Пользователь Microsoft Entra.
    • Группа Microsoft Entra.
    • Другая внешняя группа, включая вложенные внешние группы.
  3. После создания группы в нее можно добавить участников, как показано в следующих примерах.

    POST https://graph.microsoft.com/beta/external/connections/{connectionId}/groups/{groupId}/members
    
    {
      "id": "contosoSupport",
      "type": "group",
      "identitySource": "external"
    }
    
    POST https://graph.microsoft.com/beta/external/connections/{connectionId}/groups/{groupId}/members
    
    {
      "id": "25f143de-be82-4afb-8a57-e032b9315752",
      "type": "user",
      "identitySource": "azureActiveDirectory"
    }
    
    POST https://graph.microsoft.com/beta/external/connections/{connectionId}/groups/{groupId}/members
    
    {
      "id": "99a3b3d6-71ee-4d21-b08b-4b6f22e3ae4b",
      "type": "group",
      "identitySource": "azureActiveDirectory"
    }
    

Использование внешних групп в списке управления доступом

Внешние группы можно использовать при определении списков ACL для внешних элементов, как показано в следующем примере. Помимо Microsoft Entra пользователей и групп, внешний элемент может содержать внешние группы в записях управления доступом.

PUT https://graph.microsoft.com/beta/external/connections/{id}/items/{id} 

Content-type: application/json 
{ 
  "@odata.type": "microsoft.graph.externalItem", 
  "acl": [ 
    { 
      "type": "group", 
      "value": "contosEscalations", 
      "accessType": "grant", 
      "identitySource": "External" 
    }, 
    { 
      "type": "user", 
      "value": "87e9089a-08d5-4d9e-9524-b7bd6be580d5", 
      "accessType": "grant", 
      "identitySource": "azureActiveDirectory" 
    }, 
    { 
      "type": "group", 
      "value": "96fbeb4f-f71c-4405-9f0b-1d6988eda2d2", 
      "accessType": "deny", 
      "identitySource": "azureActiveDirectory" 
    } 
  ], 
  "properties": { 
    "title": "Error in the payment gateway", 
    "priority": 1, 
    "assignee": "john@contoso.com" 
  }, 
  "content": { 
    "value": "<h1>Error in payment gateway</h1><p>Error details...</p>", 
    "type": "html" 
  } 
} 

Примечание.

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

Синхронизация членства во внешних группах

Следите за актуальностью членства в вашей внешней группе в Microsoft Graph. При изменении членства в настраиваемой группе убедитесь, что это изменение отражается во внешней группе в то время, которое соответствует вашим потребностям.

Управление внешними группами и членством

API групп можно использовать для управления внешними группами и членством в группах. Дополнительные сведения см. в разделах externalGroup и externalGroupMember.

Примечание.

Пользователь должен иметь менее 2049 внешних групп безопасности, включая прямое и косвенное членство. При превышении этого ограничения результаты поиска становятся непредсказуемыми. Запросы от пользователей с более чем 10 000 внешних групп безопасности завершатся сбоем с ответом 400 .