← Cloudflare One / cloudflare-one / access-controls / applications / http-apps / saas-apps
Универсальное приложение OIDC
На этой странице приведены общие инструкции по настройке SaaS-приложения в Cloudflare Access с использованием протокола аутентификации OpenID Connect (OIDC).
Предварительные требования
- Одна поставщик удостоверений настроено в сервисе Cloudflare One
- Доступ администратора к учётной записи приложения SaaS
1. Получите URL-адрес приложения SaaS
В своей учётной записи SaaS-приложения получите Redirect URL (также известный как callback URL). Это конечная точка SaaS, на которую перенаправляются пользователи после аутентификации через Cloudflare Access.
Некоторые SaaS-приложения предоставляют Redirect URL после того, как вы настроить поставщика SSO.
2. Добавьте своё приложение в Access
-
В Панель управления Cloudflare ↗, перейдите в Zero Trust > Контроль доступа > Приложения.
-
Выберите Создать новое приложение.
-
Выберите Приложение SaaS.
-
Выберите свой Приложение из раскрывающегося меню. Если вашего приложения нет в списке, введите произвольное имя в Приложение поле и выберите текстовое поле, которое появится ниже.
-
Выберите OIDC.
-
Выберите Добавить приложение.
-
В Области действия, выберите атрибуты пользователя, которые Access должен отправить в ID-токене. Дополнительную информацию о настройке OIDC scopes и claims см. в утверждения OIDC.
-
В URL-адреса перенаправления, введите URL-адрес обратного вызова, полученный от SaaS-приложения.
-
(Необязательно) Включите Proof of Key Exchange (PKCE) ↗ если протокол поддерживается вашим IdP. PKCE будет выполняться при каждой попытке входа.
-
Скопируйте следующие значения для ввода в своё приложение SaaS. Разным приложениям SaaS могут потребоваться другие наборы входных значений.
Поле Описание Секрет клиента Учётные данные, используемые для авторизации Access в качестве поставщика SSO Client ID Уникальный идентификатор этого приложения Access Конечная точка конфигурации Если это поддерживается вашим SaaS-приложением, можно настроить OIDC через эту конечную точку вместо ручного ввода URL-адресов, перечисленных ниже.
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/.well-known/openid-configurationИздатель Базовый URL для этой интеграции OIDC
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>Token endpoint Возвращает ID-токен пользователя
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/tokenКонечная точка авторизации URL where users authenticate with Access
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/authorizationКлючевая конечная точка Возвращает текущие открытые ключи, используемые для проверить JWT Cloudflare Access
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/jwksКонечная точка сведений о пользователе Возвращает все утверждения пользователя в формате JSON
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<client-id>/userinfo -
В разделе Политики доступа, добавьте существующую политику или создать новую политику чтобы управлять тем, кто может подключаться к вашему приложению. Все приложения Access по умолчанию запрещают доступ: пользователь должен соответствовать политике Allow, прежде чем получить доступ.
-
Настройте, как пользователи будут проходить аутентификацию:
Выберите поставщики идентификации которые вы хотите включить для своего приложения.
(Рекомендуется) Если вы планируете разрешить доступ только через один IdP, включите Применить мгновенную аутентификацию. Конечные пользователи не увидят Страница входа Cloudflare Access. Вместо этого Cloudflare будет перенаправлять пользователей напрямую на событие входа SSO.
- (Необязательно) Включите Аутентификация с помощью Cloudflare One Client чтобы разрешить пользователям аутентифицироваться в приложении с использованием Идентификатор сессии Cloudflare One Client.
-
(Необязательно) Перейдите в Дополнительные настройки чтобы настроить работу с приложением:
- Настройка App Launcher: Настройте, как это приложение отображается пользователям в App Launcher. Если Показать приложение в App Launcher включено, необходимо ввести URL App Launcher. URL-адрес App Launcher предоставляется приложением SaaS. Он может совпадать с базовой частью URL-адреса Redirect URL (
https://<INSTANCE-NAME>.example-app.com) но может быть другим значением. -
Пользовательские страницы блокировки: Выберите, что увидят пользователи при отказе в доступе к приложению.
- Cloudflare по умолчанию: Перезагрузите страница входа и отображает сообщение о блокировке под логотипом Cloudflare Access. Сообщение по умолчанию:
That account does not have access, или вы можете ввести собственное сообщение. - Redirect URL: Перенаправление на указанный веб-сайт.
- Пользовательский шаблон страницы: Отобразите пользовательская страница блокировки размещенный в Cloudflare One.
- Cloudflare по умолчанию: Перезагрузите страница входа и отображает сообщение о блокировке под логотипом Cloudflare Access. Сообщение по умолчанию:
- Настройка App Launcher: Настройте, как это приложение отображается пользователям в App Launcher. Если Показать приложение в App Launcher включено, необходимо ввести URL App Launcher. URL-адрес App Launcher предоставляется приложением SaaS. Он может совпадать с базовой частью URL-адреса Redirect URL (
-
Выберите Создание.
3. Настройте SSO в своём SaaS-приложении
Далее настройте своё SaaS-приложение так, чтобы вход пользователей выполнялся через Cloudflare Access. Обратитесь к документации своего SaaS-приложения за инструкциями по настройке стороннего поставщика SSO по протоколу OIDC.
4. Протестируйте интеграцию
Откройте окно браузера в режиме инкогнито и перейдите по URL-адресу входа в SaaS-приложение. Вы будете перенаправлены на экран входа Cloudflare Access, где вам будет предложено войти через своего провайдера идентификации.
утверждения OIDC
Утверждения OIDC описывают характеристики идентификации пользователя, которые Cloudflare Access передаёт вашему SaaS-приложению OIDC при успешной аутентификации. Область OIDC (scope) определяет набор утверждений OIDC. По умолчанию Cloudflare Access передаёт все стандартные claims ↗ которые включены в openid, email, profile, а также groups scopes (если доступны).
| Область действия | Описание |
|---|---|
openid |
Содержит уникальный идентификатор пользователя (обязательно). |
email |
Содержит адрес электронной почты пользователя. |
profile |
Содержит имя пользователя и все пользовательские утверждения OIDC от IdP. |
groups |
Включите информацию о членстве пользователя в группах IdP. |
В приложении Access можно настроить области действия и утверждения OIDC, которые Access отправляет SaaS-провайдеру. Например, можно удалить groups scope, если вашему SaaS-приложению не нужно получать информацию о группах пользователей.
Фильтруйте группы
В Регулярное выражение фильтра групп, вы можете ввести регулярное выражение, определяющее группы поставщика идентификации, которые нужно включить в groups scope. Например, если вы введёте выражение (^TEAM-Engineering-.$)|(^TEAM-Product-.$), в SaaS-приложение будут переданы только группы с именами вроде TEAM-Engineering-A или TEAM-Product-B.
Добавить claims
Чтобы добавить дополнительные утверждения OIDC в ID-токен, отправляемый вашему SaaS-приложению, настройте следующие поля для каждого утверждения:
- Название: Название утверждения OIDC
- Область действия: Выберите OIDC scope, в который следует включить это утверждение. В большинстве случаев мы рекомендуем выбрать
profileтак как он уже включает другие пользовательские заявки от IdP. - claim IdP: Значение поставщика идентификации, которое должно сопоставляться с этим OIDC claim. Вы можете выбрать любой атрибут SAML или утверждение OIDC который был настроен в интеграции Zero Trust с IdP.
- Обязательный: Если утверждение помечено как обязательное, но не предоставлено IdP, Cloudflare отклонит запрос на аутентификацию и покажет страницу с ошибкой.
- Добавить claim для каждого IdP: (Необязательно) Если для приложения SaaS включено несколько поставщиков идентификации, вы можете выбрать разные сопоставления атрибутов для каждого IdP. Эти значения переопределяют родительские claim IdP.
Расширенные настройки
Время жизни токена доступа
Токен доступа OIDC разрешает пользователям подключаться к приложению SaaS через Cloudflare Access. Вы можете задать Время жизни токена доступа чтобы определить период, в течение которого токен можно использовать для аутентификации в SaaS-приложении: если срок его действия истёк, пользователю потребуется повторно пройти аутентификацию через Cloudflare Access. Чтобы найти баланс между безопасностью и удобством для пользователей, Cloudflare рекомендует задавать короткий срок действия токена Access в сочетании с более длительным Время жизни токена обновления (если это поддерживается вашим приложением). Когда срок действия токена доступа истекает, Cloudflare использует токен обновления, чтобы получить новый токен доступа после проверки личности пользователя по политикам Access. Когда срок действия токена обновления истекает, пользователю потребуется снова войти у поставщика идентификации. Срок действия токена обновления должен быть меньше, чем глобальная длительность сессии, иначе приоритет будет иметь глобальная сессия.
Потоки OIDC
Некоторым SaaS-приложениям требуется, чтобы поставщики SSO передавали токены в браузер без аутентификации на стороне бэкенда. Access for SaaS поддерживает следующие OIDC flows:
- Без дополнительных потоков OIDC: (По умолчанию) Рекомендуется, если только вашему приложению не требуются дополнительные потоки.
- Hybrid flows: Используется приложениями, которым нужны сведения из ID-токена до аутентификации пользователя.
- Implicit flows: (Не рекомендуется) Обычно используется клиентскими приложениями, которые не могут хранить секреты и не поддерживают PKCE без секрета клиента.
Cloudflare позволяет использовать различные response_type значения в запросе авторизации в зависимости от выбранного flow. Например, implicit flow позволяет Cloudflare возвращать ID token, Access token либо и ID token, и Access token одновременно с Authorization Endpoint.
response_type значения |
Поток по умолчанию | Hybrid flow | Implicit flow |
|---|---|---|---|
code |
✅ | ✅ | ❌ |
id_token |
❌ | ✅ | ✅ |
token |
❌ | ✅ | ✅ |
Чтобы включить id_token в запросе авторизации включите Возврат ID Token из Authorization Endpoint. Чтобы включить token, включите Возврат Access Token из Authorization Endpoint