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

Microsoft Entra ID

Вы можете интегрировать Microsoft Entra ID (ранее Azure Active Directory) с Cloudflare One и создавать политики на основе личности пользователя и членства в группах. Пользователи будут проходить аутентификацию в Cloudflare One с помощью учетных данных Entra ID.

Настройте Entra ID как поставщика идентификации

1. Получите настройки Entra ID

Для настройки интеграции требуются следующие значения Entra ID:

Чтобы получить эти значения:

  1. Войдите в Microsoft Entra admin center.

  2. Перейдите в Приложения > Корпоративные приложения.

  3. Выберите Новое приложение, затем выберите Создайте собственное приложение.

  4. Назовите приложение.

  5. Выберите Зарегистрируйте приложение для интеграции с Microsoft Entra ID (приложение, которое вы разрабатываете). Если это будет предложено, не выбирайте ни одно из приложений галереи. Выберите Создание.

  6. В разделе Redirect URI, выберите Веб платформу и введите следующий URL-адрес.

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

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

    Регистрация приложения в Azure
  7. Выберите Регистрация.

  8. Далее вернитесь в Microsoft Entra ID и перейдите в Приложения > Регистрации приложений.

  9. Выберите Все приложения и выберите приложение, которое вы только что создали. Скопируйте Application (client) ID и Directory (tenant) ID. Эти значения понадобятся вам, когда добавление Entra ID в качестве поставщика идентификации на шаге 3.

    Просмотр Application ID и Directory ID в Azure
  10. На той же странице в разделе Учётные данные клиента, перейдите в Добавьте сертификат или секрет. Выберите Новый client secret.

  11. Назовите client secret и выберите срок действия.

  12. После создания секрета клиента скопируйте его Значение поле. Храните client secret в надёжном месте, так как его можно увидеть только сразу после создания. Это значение client secret понадобится вам при добавление Entra ID в качестве поставщика идентификации на шаге 3.

    Расположение client secret в Azure

2. Настройте разрешения API в Entra ID

  1. Перейдите в Регистрации приложений > Все приложения > выберите своё приложение > разрешения API.

  2. Выберите Добавьте разрешение.

  3. Выберите Microsoft Graph.

  4. Выберите Делегированные разрешения и включите следующее разрешения:

    • email
    • offline_access
    • openid
    • profile
    • User.Read
    • Directory.Read.All
    • GroupMember.Read.All
  1. После включения всех семи разрешений выберите Добавление разрешений.

  2. Выберите Предоставить согласие администратора.

    Настроенный список разрешений в Azure

3. Добавьте Entra ID в качестве поставщика идентификации

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Интеграции > Поставщики удостоверений.

  2. В разделе Ваши поставщики идентификации, выберите Добавить нового поставщика идентификации.

  3. Выберите Azure AD.

  4. Введите Application (client) ID, Секрет клиента, а также Directory (tenant) ID полученный от Microsoft Entra ID.

  5. Выберите Save.

  6. Чтобы тест что ваше подключение работает, выберите Тест.

  7. (Необязательно) Настройте следующие параметры:

Сделайте POST запрос к Поставщики идентификации конечная точка:

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Access: Organizations, Identity Providers, and Groups Write
Добавление поставщика идентификации (IdP) для Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Entra ID example",
		"type": "azureAD",
		"config": {
				"client_id": "<your client id>",
				"client_secret": "<your client secret>",
				"directory_id": "<your azure directory uuid>",
				"support_groups": true
		}
	}'
  1. Добавьте следующее разрешение в свой cloudflare_api_token:

    • Access: Organizations, Identity Providers, and Groups Write
  2. Настройте cloudflare_zero_trust_access_identity_provider ресурс:

    resource "cloudflare_zero_trust_access_identity_provider" "microsoft_entra_id" {
    	account_id = var.cloudflare_account_id
    	name       = "Entra ID example"
    	type       = "azureAD"
    	config 		 = {
    		client_id                  = var.entra_id_client_id
    		client_secret              = var.entra_id_client_secret
    		directory_id               = var.entra_id_directory_id
    		support_groups             = true
    		}
    }

UPN and email

Если UPN вашей организации не совпадают с адресами электронной почты пользователей, необходимо добавить пользовательское утверждение для электронной почты. Например, если формат электронной почты в вашей организации [email protected] но UPN: [email protected], вам необходимо создать утверждение email, если вы настраиваете политики на основе email.

По умолчанию Cloudflare сначала ищет уникальное имя claim, которое вы создали и настроили в Cloudflare One для представления адреса электронной почты (например, email_identifier) в id_token Ответ JSON. Если вы не настроили уникальное имя claim, Cloudflare продолжит искать email утверждение. Наконец, если ни одно из утверждений не найдено, Cloudflare ищет утверждение UPN.

Чтобы получать email-утверждение в id_token от Microsoft Entra вы должны:

  1. В Microsoft Entra admin center, перейдите в Приложение > Регистрация приложения > Все приложения и выберите соответствующее приложение.

  2. В разделе Управление, выберите Token configuration.

  3. Добавьте claim для электронной почты.

    Email-claim для Entra

    В приведённом выше примере есть и утверждение UPN, и утверждение email. Поскольку в конфигурации Microsoft Entra было создано утверждение email, Cloudflare будет искать email пара ключ-значение в ответе JSON.

  4. Если вы дали своему email claim имя, отличное от email, вам необходимо обновить конфигурацию в Cloudflare One:

    a. В Панель управления Cloudflare, перейдите в Zero Trust > Интеграции > Поставщики удостоверений > Azure AD > Изменить.

    b. В разделе Необязательные конфигурации > Email-claim, введите имя утверждения, представляющего адреса электронной почты вашей организации.

Object ID

Если вы опасаетесь, что адреса электронной почты или UPN пользователей могут измениться, вы можете передавать идентификатор объекта пользователя (oid) из Microsoft Entra в Cloudflare Access. Чтобы настроить получение object ID в Access, обратитесь к пользовательские утверждения OIDC. Дополнительная настройка в Microsoft Entra не требуется.

Синхронизируйте пользователей и группы

Интеграция Microsoft Entra ID позволяет синхронизировать группы IdP и автоматически деактивировать пользователей с помощью SCIM.

SCIM по-разному влияет на оценку политик Access и Gateway.

Access оценивает личность пользователя и членство в группах на основании утверждения SAML или токена OIDC, возвращённого поставщиком идентификации во время аутентификации. SCIM предоставляет читаемые названия групп в конструкторе политик Access, но Access не использует членство в группах SCIM для оценки входа. Если вы включите Включить отключение учётных записей пользователей, удаление пользователя из приложения SCIM аннулирует его активные сессии Access. Вы также можете настроить SCIM так, чтобы сессии аннулировались после изменения членства в группе. Access оценивает обновлённые данные поставщика идентификации при повторной аутентификации пользователя.

Gateway оценивает политики на основе личности по отношению к User Registry identity. SCIM обновляет эту идентификационную информацию при изменении пользователей или членства в группах, не дожидаясь повторной аутентификации пользователя. Профили устройств Cloudflare One Client используют ту же синхронизированную идентификационную информацию.

Предварительные требования

1. Включите SCIM в Cloudflare One

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Интеграции > Поставщики удостоверений.

  2. Найдите интеграцию Entra ID и выберите Изменить.

  3. Включите Включите SCIM и Группы поддержки.

  4. (Необязательно) Настройте следующие параметры:

  1. Выберите Пересоздать секрет. Скопируйте SCIM Endpoint и SCIM Secret. Эти значения нужно будет ввести в Entra ID.

  2. Выберите Save.

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

2. Настройте SCIM в Entra ID

  1. В меню Microsoft Entra ID перейдите в Корпоративные приложения.

  2. Выберите Новое приложение > Создайте собственное приложение.

  3. Назовите приложение (например, Cloudflare Access SCIM).

  4. Выберите Интегрируйте любое другое приложение, которое не найдено в галерее (Non-gallery). Если это будет предложено, не выбирайте ни одно из приложений галереи. Выберите Создание.

  5. После создания приложения перейдите в Подготовка > выберите Новая конфигурация.

  6. В Tenant URL поле введите SCIM Endpoint полученный из вашей интеграции Entra ID в Cloudflare One на предыдущем шаге.

  7. В Секретный токен поле введите SCIM Secret полученный из вашей интеграции Entra ID в Cloudflare One на предыдущем шаге.

  8. Выберите Test Connection чтобы убедиться, что учётные данные введены верно. Если проверка не пройдена, перейдите к интеграции Entra ID в Cloudflare One и выберите Пересоздать секрет, выберите Save, и введите новый SCIM Secret в Секретный токен поле.

  9. Выберите Создание.

  10. После создания приложения SCIM назначить пользователей и группы приложению.

  1. Перейдите в Подготовка и выберите Начать подготовку.

  2. Для Режим подготовки, режим по умолчанию должен быть установлен Microsoft на Автоматически.

  3. На Обзор странице в Entra ID вы увидите статус синхронизации.

Чтобы проверить, какие пользователи и группы были синхронизированы, выберите Журналы подготовки.

Чтобы проверить, обновились ли идентификационные данные пользователей в Cloudflare One, просмотрите журналы подготовки SCIM.

Чтобы отслеживать обмен данными о личности между Cloudflare Access и Microsoft Entra ID, перейдите в Панель управления Cloudflare > Zero Trust > Insights > Журналы > журналы подготовки SCIM и просмотрите журналы активности SCIM.

Атрибуты подготовки

Атрибуты подготовки определяют свойства пользователей, которые Entra ID будет синхронизировать с Cloudflare Access. Чтобы изменить свои атрибуты подготовки, перейдите в раздел Сопоставление атрибутов и выберите Подготовить пользователей Microsoft Entra ID.

Если это ещё не настроено, Cloudflare рекомендует включить следующие сопоставления атрибутов пользователя:

customappsso Attribute Entra ID Attribute Рекомендация
userName userPrincipalName или mail Обязательно. Должно совпадать с адресом электронной почты пользователя в Cloudflare One.
emails[type eq "work"].value mail Обязательно. Должно совпадать с адресом электронной почты пользователя в Cloudflare One.
name.givenName givenName Рекомендуется
name.familyName surname Рекомендуется

Группы Entra в политиках Zero Trust

Автоматическая запись

Когда Синхронизация SCIM включена, названия групп Entra автоматически появятся в конструкторах политик Access и Gateway.

Если вы создаёте политику Access, выберите Группы Azure селектор. Названия групп Azure, отображаемые в Access Policy Builder

Если вы создаёте политику Gateway, выберите User Group Names селектор.

Ручной ввод

Вы можете создавать политики Access и Gateway для групп, которые не синхронизированы с SCIM. Entra ID предоставляет группы каталога в формате, состоящем из случайных строк, Object Id, который отличается от Name.

  1. Убедитесь, что вы включили Группы поддержки при настройке Microsoft Entra ID в Cloudflare One.

  2. В панели управления Microsoft Entra запишите Object Id для группы Entra. В примере ниже группа с именем Admins имеет идентификатор 61503835-b6fe-4630-af88-de551dd59a2.

    Просмотр ID группы Azure на панели управления Azure
  3. Если вы создаёте политику Access, выберите Группы Azure селектор. При создании политики Gateway выберите User Group IDs селектор.

  4. В Значение поле введите Object Id для группы Entra.

    Ввод ID группы Azure в Cloudflare One

Вложенные группы

Аутентификация

Политики Access и Gateway для группы Entra также будут применяться ко всем вложенные группы. Например, если пользователь входит в группу US devs, а также US devs входит в более широкую группу Devs, доступ пользователя будет разрешён или заблокирован всеми политиками, созданными для Devs.

Подготовка SCIM

Для подготовки пользователей через SCIM, вложенные группы не поддерживаются. Реализация SCIM в Microsoft Entra ID не передаёт Cloudflare сведения о вложенном членстве в группах. Будут подготовлены только пользователи, являющиеся прямыми участниками явно назначенной группы. Чтобы членство в группах синхронизировалось корректно, разверните структуру групп в Entra ID, напрямую назначив пользователей в группы, которые нужно подготовить.

Поскольку запрос SCIM от Microsoft не включает информацию о вложенных группах, ни Cloudflare, ни Microsoft не могут уведомить о том, что вложенные группы не синхронизируются.

Требовать участие пользователя при повторной аутентификации клиента на устройстве

Вы можете потребовать от пользователей повторного ввода учётных данных в Entra ID каждый раз, когда они повторно пройти аутентификацию для своей сессии Cloudflare One Client. Чтобы настроить этот параметр:

  1. Сделайте GET запрос к Конечная точка поставщиков идентификации и скопируйте ответ для поставщика идентификации Entra ID.

    Необходимые разрешения API-токена

    Хотя бы одно из следующих права доступа токена требуется:
    • Access: Organizations, Identity Providers, and Groups Write
    • Access: Organizations, Identity Providers, and Groups Read
    Получение поставщика идентификации Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers/$IDENTITY_PROVIDER_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Обновите поставщика идентификации Entra ID с помощью PUT запрос. В теле запроса укажите все существующие конфигурации и установите prompt параметр в значение login или select_account. Например:

    Необходимые разрешения API-токена

    Хотя бы одно из следующих права доступа токена требуется:
    • Access: Organizations, Identity Providers, and Groups Write
    Обновите поставщика идентификации Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers/$IDENTITY_PROVIDER_ID" \
    	--request PUT \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    		"type": "azureAD",
    		"uid": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    		"name": "Entra ID",
    		"version": "31e74e9b4f033e16b604552091a72295",
    		"config": {
    				"azure_cloud": "default",
    				"client_id": "<CLIENT_ID>",
    				"conditional_access_enabled": false,
    				"directory_id": "<AZURE_DIRECTORY_ID>",
    				"redirect_url": "https://<TEAM_NAME>.cloudflareaccess.com/cdn-cgi/access/callback",
    				"prompt": "login",
    				"support_groups": true
    		},
    		"scim_config": {
    				"enabled": true,
    				"user_deprovision": true,
    				"seat_deprovision": false,
    				"group_member_deprovision": false,
    				"identity_update_behavior": "automatic"
    		},
    		"scim_base_url": "https://<TEAM_NAME>.cloudflareaccess.com/populations/f174e90a-fafe-4643-bbbc-4a0ed4fc8415/scim/v2"
    	}'