INTEGRITY Документация

Группы пользователей

Группы пользователей представляют собой набор участники аккаунта которые рассматриваются одинаково с точки зрения контроля доступа. User Groups можно назначать политики прав, при этом каждый участник группы получает все права ролей, назначенных этой User Group. Если у пользователей также есть индивидуально назначенные права, то их эффективные права представляют собой объединение всех индивидуальных прав и прав всех User Groups, участником которых они являются.

Создание User Group вручную

  1. На панели управления Cloudflare перейдите к разделу Участники страницу.

    Перейдите в Участники ↗
  2. Выберите Группы на вкладке.

  3. Выберите Создание группы и введите имя и описание новой группы.

  4. Выберите Создание группы чтобы подтвердить изменения. Участники группы вкладка отображается.

  5. Выберите Добавление участников.

  6. Выберите нужных участников, которых нужно добавить в группу, и выберите Добавление в группу.

Назначьте Permission Policy

После создания группы вы можете добавить Политика разрешений в вашу группу.

  1. В Группы вкладку в Политики разрешений, выберите Добавление политики.
  2. Укажите область действия и разрешения, которые должны применяться к участникам группы.
  3. Выберите Create Policy чтобы применить это к группе.

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

export ADMIN_ROLE='...' # id field from admin or desired role entry from permission_groups API response

Пример запроса
$ cat <<-PAYLOAD | curl -XPUT  -H "Authorization: Bearer $AOT" -H "Content-type: application/json" --data-binary @- https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP  | jq .
{
    "policies": [
        {
            "access": "allow",
            "permission_groups": [{"id": "$ADMIN_ROLE"}],
            "resource_groups": [{
                "scope": {
                    "key": "com.cloudflare.api.account.$ACCT",
                    "objects": [{"key":"*"}]
                }
            }]
        }
    ]
}
PAYLOAD

Сброс политики к пустому состоянию

Если вы допустили ошибку при создании групповой политики или вам нужно сбросить политику до пустого состояния, отправьте ещё один PUT-запрос к group API с пустым массивом policy, чтобы перезаписать её новой политикой.

$ cat <<-PAYLOAD | curl -XPUT  -H "Authorization: Bearer $AOT" -H "Content-type: application/json" --data-binary @- https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP  | jq .
{
    "policies": []
}
PAYLOAD

Создание User Group через SCIM

Клиенты с настроенной интеграцией SCIM могут синхронизировать User Groups из внешнего провайдера идентификации в Cloudflare. Интеграция SCIM в Cloudflare требует одного внешнего приложения на каждую учётную запись.

Чтобы настроить группу пользователей через SCIM, ознакомьтесь с Руководство по подготовке через SCIM.

Настройка разрешений для групп пользователей

После того как группа пользователей создана, вручную в панели управления Cloudflare или через интеграцию SCIM, последним шагом остаётся привязать к ней разрешения.

  1. Перейдите в Управление участниками > Участники > Группы пользователей.
  2. Выберите группу пользователей, которой нужно назначить разрешения.
  3. Выберите Политики разрешений и выберите Добавление политики.
  4. Выберите область действия и роль, которые нужно применить к политике.
  5. Выберите Save чтобы применить политику.

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

1. Получите группы пользователей

Пример запроса
$ curl -X GET -H "Authorization: Bearer $AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups | jq .
Пример ответа
{
    "errors": [],
    "messages": [],
    "result": [
        {
            "created_on": "2025-01-24T15:31:36.759979Z",
            "id": "f234f49f66df4db8864c5189fe78c87f",
            "modified_on": "2025-01-24T15:35:50.151764Z",
            "name": "My Cool Demo Group",
            "status": "V"
        },
        {
            "created_on": "2025-01-16T20:43:01.019311Z",
            "id": "7148c1e4d9f247f5b6dcd3ef20f998f9",
            "modified_on": "2025-01-16T20:44:07.627233Z",
            "name": "My Cool Demo Group, now with policies!",
            "policies": [
                {
                    "access": "allow",
                    "created_on": "2025-01-16T20:44:07.627233Z",
                    "id": "8d82cf8c15c64e07a4bee58e00d80bca",
                    "modified_on": "2025-01-16T20:44:07.627233Z",
                    "permission_groups": [
                        {
                            "created_on": "2023-06-21T18:58:29.907496Z",
                            "id": "a1a099e3256942259bfde18c688b67d5",
                            "meta": {
                                "description": "Grants write access to Page Shield for domain",
                                "editable": "false",
                                "label": "domain_page_shield",
                                "scopes": "com.cloudflare.api.account.zone"
                            },
                            "modified_on": "2023-06-21T18:58:29.907496Z",
                            "name": "Domain Page Shield",
                            "permissions": ["dev note: snipped for length"],
                            "status": "V"
                        }
                    ],
                    "resource_groups": [
                        {
                            "created_on": "2025-01-16T20:44:07.627233Z",
                            "modified_on": "2025-01-16T20:44:07.627233Z",
                            "scope": {
                                "key": "com.cloudflare.api.account.a3324a084cd290080b563ab39c91545a",
                                "objects": [
                                    {
                                        "key": "*"
                                    }
                                ]
                            }
                        }
                    ],
                    "status": "V"
                }
            ],
            "status": "V"
        }
    ],
    "result_info": {
        "count": 2,
        "page": 1,
        "per_page": 100,
        "total_count": 2,
        "total_pages": 1
    },
    "success": true
}

2. Выполните запрос по идентификатору ресурса

Найдите тег группы, переданной из IdP, и используйте его для прямого запроса по её идентификатору ресурса:

export PUSHED_GROUP='...' # Pull this value from the "id" json field in the group list response

Пример запроса
$ curl -XGET -H "Authorization: Bearer $AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP | jq .

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

3. Просмотрите доступные группы разрешений

Прежде чем изменять политики группы, ознакомьтесь с доступными в аккаунте группами разрешений (ролями), запросив их через API аккаунта.

Пример запроса
$ curl -XGET -H "Authorization: Bearer $DEMO_AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/permission_groups | jq .
Пример ответа
{
  "result": [
    {
      "id": "1a0fc8bdeae24387b64d5b8de1ad052a",
      "name": "Administrator Read Only",
      "status": "V",
      "meta": {
        "description": "Can access the full account in read-only mode.",
        "editable": "false",
        "label": "admin_readonly",
        "scopes": "com.cloudflare.api.account"
      },
      "created_on": "2020-07-06T12:19:13.099114Z",
      "modified_on": "2020-10-13T11:18:00.208228Z"
    },
    {
      "id": "ce2c69b09baf4ca38223910a8b7e07a9",
      "name": "Administrator",
      "status": "V",
      "meta": {
        "description": "Can access the full account, except for membership management and billing.",
        "editable": "false",
        "label": "admin",
        "scopes": "com.cloudflare.api.account"
      },
      "created_on": "2020-07-06T12:19:13.099114Z",
      "modified_on": "2020-10-13T11:18:00.208228Z"
    }
  ],
  "success": true,
  "errors": [],
  "messages": []
}

Просмотр участников группы

Чтобы убедиться, что IdP синхронизировал группу и участников пользователей, переданных в операции SCIM, отправьте запрос к Group Members API.

Пример запроса
$ curl -XGET -H "Authorization: Bearer $DEMO_AOT" https://api.cloudflare.com/client/v4/accounts/$ACCT/iam/user_groups/$PUSHED_GROUP/members | jq .
Пример ответа
{
  "result": [
    {
      "id": "a4366a09c43a0b0c4606dc5528472bb6",
      "email": "[email protected]"
    },
    {
      "id": "0329c17f6c13f5202dc38d2036efb1a9",
      "email": "[email protected]"
    }
  ],
  "result_info": {
    "page": 1,
    "per_page": 100,
    "total_pages": 1,
    "count": 2,
    "total_count": 2
  },
  "success": true,
  "errors": [],
  "messages": []
}