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

Универсальный OIDC

В Cloudflare Access есть универсальный коннектор OpenID Connect (OIDC), который поможет интегрировать IdP, ещё не настроенные в Access.

1. Создайте приложение в своём поставщике идентификации

  1. Перейдите к своему поставщику идентификации и создайте клиент/приложение.

  2. При создании клиента или приложения ваш IdP может запросить authorized redirect URI. Введите следующий URL-адрес:

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

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

  3. Скопируйте содержимое этих полей:

    • Client ID
    • Секрет клиента
    • Auth URL: URL-адрес, который authorization_endpoint URL-адрес вашего IdP
    • Token URL: URL-адрес, который token_endpoint URL-адрес вашего IdP
    • URL-адрес сертификата: сертификат jwks_uri конечную точку вашего IdP, чтобы разрешить ключам IdP подписывать токены

    Эти значения вы можете найти у вашего поставщика идентификации в Конечная точка обнаружения OIDC. Некоторые провайдеры называют это «well-known URL».

2. Добавьте поставщика OIDC в Cloudflare One

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

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

  3. Выберите OpenID Connect.

  4. Назовите поставщика идентификации и заполните обязательные поля данными, полученными от вашего поставщика идентификации.

  5. (Необязательно) Включите Proof of Key Exchange (PKCE) если протокол поддерживается вашим IdP. PKCE будет выполняться при каждой попытке входа.

  6. (Необязательно) Чтобы включить SCIM, обратитесь к Синхронизируйте пользователей и группы.

  7. (Необязательно) В разделе Необязательные конфигурации, введите пользовательские утверждения OIDC который вы хотите добавить к идентификации пользователей. Эта информация будет доступна в конечная точка идентификации пользователя.

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

Сделайте 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": "Generic OIDC example",
		"type": "oidc",
		"config": {
				"client_id": "<your client id>",
				"client_secret": "<your client secret>",
				"auth_url": "https://accounts.google.com/o/oauth2/auth",
				"token_url": "https://accounts.google.com/o/oauth2/token",
				"certs_url": "https://www.googleapis.com/oauth2/v3/certs",
				"pkce_enabled": false,
				"email_claim_name": "email",
				"claims": [
						"employeeID",
						"groups"
				],
				"scopes": [
						"openid",
						"email",
						"profile"
				]
		}
	}'
  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" "generic_oidc_example" {
    	account_id = var.cloudflare_account_id
    	name       = "Generic OIDC example"
    	type       = "oidc"
    	config 		 = {
    		client_id = "<your client id>"
    		client_secret = "<your client secret>"
    		auth_url = "https://accounts.google.com/o/oauth2/auth"
    		token_url = "https://accounts.google.com/o/oauth2/token"
    		certs_url = "https://www.googleapis.com/oauth2/v3/certs"
    		pkce_enabled = false
    		email_claim_name = "email"
    		claims = ["employeeID", "groups"]
    		scopes = ["openid", "email", "profile"]
    	}
    }

3. Проверьте подключение

Чтобы проверить, что подключение работает, перейдите в Аутентификация > Login methods и выберите Тест рядом с методом входа, который вы хотите протестировать. В случае успеха отобразится экран подтверждения.

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

Стандартная интеграция OIDC позволяет синхронизировать группы пользователей и автоматически лишать их доступа с помощью SCIM.

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

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

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

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

Ваш поставщик идентификации должен поддерживать версию SCIM 2.0.

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

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

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

  3. Включите Включите SCIM.

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

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

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

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

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

Инструкции по настройке зависят от поставщика идентификации. В своём поставщике идентификации вам нужно будет либо изменить исходное приложение SSO или создать новое приложение SCIM. Подробнее см. в документации вашего поставщика идентификации. Пример инструкций см. в нашей Okta или Jumpcloud руководства.

группы IdP

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

3. Проверьте подготовку через SCIM

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

Необязательные конфигурации

Собственные утверждения OIDC

Все интеграции OIDC IdP поддерживают использование собственных утверждений OIDC. После настройки Access добавит эти утверждения в Access JWT для использования вашими исходными сервисами. Вы можете ссылаться на пользовательские заявки OIDC в Политики доступа и Политики Gateway, предоставляя способ управления доступом пользователей к приложениям на основе пользовательских атрибутов идентификации.

Чтобы добавить пользовательское утверждение OIDC в интеграцию IdP:

  1. У своего поставщика идентификации убедитесь, что пользовательское утверждение включено в ваш OIDC ID-токен.

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

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

  4. В разделе Утверждения OIDC, введите имя вашего пользовательского утверждения (например, oid).

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

  6. Выберите Тест и убедитесь, что пользовательский claim отображается в oidc_fields. Например,

    	"oidc_fields": {
    		"oid": "54eb1ed2-7150-44e6-bbe4-ead24c132fd4"
    	},

Теперь для этого пользовательского claim можно создать политику Access с помощью Утверждение OIDC или IdP OIDC Claim селектор. Также можно использовать пользовательские claims OIDC в качестве селекторы на основе идентификации в политиках Gateway. Пользовательское утверждение будет передано источникам за Access в JWT.

Email-claim

Можно указать пользовательский Email-claim имя, которое Access будет использовать для идентификации адресов электронной почты пользователей. Это полезно, если ваш IdP не возвращает стандартный email утверждение в OIDC ID-токене.

Утверждения OIDC с несколькими записями

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

Cloudflare Access не поддерживает ссылки на частичные значения утверждений OIDC или OIDC scopes.

Поддерживаемые алгоритмы для универсальных токенов OIDC

Cloudflare поддерживает следующие алгоритмы для проверки стандартных токенов OIDC: