Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Истории успеха
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Identity Hub
    • Все руководства
    • Разграничение прав доступа для групп пользователей
    • Сервисный аккаунт с профилем OS Login для управления ВМ с помощью Ansible
      • Обзор
      • Grafana OSS
      • 1С:Предприятие
      • Managed Service for OpenSearch
      • OpenSearch
      • Managed Service for GitLab
      • Zabbix
      • Яндекс 360
      • SonarQube
      • OpenVPN Access Server
      • Использование OAuth2 Proxy для приложений, не поддерживающих SSO
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Аудитные логи Audit Trails
  • История изменений
  • История изменений Yandex Identity Hub Sync Agent
  • Обучающие курсы

В этой статье:

  • Создайте и настройте OIDC-приложение в Identity Hub
  • Создайте OIDC-приложение
  • Настройте Redirect URI
  • Добавьте пользователя
  • Подготовьте виртуальную машину с тестовым приложением
  • Подготовьте окружение Yandex Cloud
  • Создайте виртуальную машину
  • Настройте интеграцию
  • Создайте тестовое приложение и настройте nginx
  • Настройте OAuth2 Proxy
  • Убедитесь в корректной работе аутентификации
  1. Практические руководства
  2. Настройка единого входа в приложения (SSO)
  3. Использование OAuth2 Proxy для приложений, не поддерживающих SSO

Использовать OIDC-приложение и OAuth2 Proxy для настройки единого входа в приложения, не поддерживающие SSO

Статья создана
Yandex Cloud
Улучшена
Обновлена 26 января 2026 г.
  • Создайте и настройте OIDC-приложение в Identity Hub
    • Создайте OIDC-приложение
    • Настройте Redirect URI
    • Добавьте пользователя
  • Подготовьте виртуальную машину с тестовым приложением
    • Подготовьте окружение Yandex Cloud
    • Создайте виртуальную машину
  • Настройте интеграцию
    • Создайте тестовое приложение и настройте nginx
    • Настройте OAuth2 Proxy
  • Убедитесь в корректной работе аутентификации

Примечание

Функциональность находится на стадии Preview.

Не в каждом приложении реализована встроенная поддержка технологии единого входа (SSO). При этом иногда возникает потребность в настройке аутентификации пользователей в них с помощью Yandex Identity Hub.

В данном руководстве вы воспользуетесь утилитой OAuth2 Proxy в связке с прокси-сервером, чтобы настроить интеграцию простейшего приложения с Yandex Identity Hub и организовать доступ к этому приложению только для заданных пользователей Identity Hub с помощью технологии единого входа по стандарту OpenID Connect (OIDC).

В качестве прокси-сервера в данном руководстве используется nginx, а в качестве тестового приложения — статическая HTML-страница. Чтобы ваши пользователи Identity Hub могли получить доступ к тестовому приложению, вы создадите и настроите OIDC-приложение. Дополнительно вам потребуется виртуальная машина Yandex Compute Cloud, на которой будут запущены nginx и OAuth2 Proxy, а также размещено тестовое приложение. Кроме этого, для реализации защищенного доступа к тестовому приложению вам понадобятся доменное имя и выпущенный для него SSL-сертификат.

Управлять OIDC-приложениями может пользователь, которому назначена роль organization-manager.oauthApplications.admin или выше.

Чтобы настроить доступ в приложение для ваших пользователей Identity Hub:

  1. Создайте и настройте OIDC-приложение в Identity Hub.
  2. Подготовьте виртуальную машину с тестовым приложением.
  3. Настройте интеграцию.
  4. Убедитесь в корректной работе интеграции.

Создайте и настройте OIDC-приложение в Identity HubСоздайте и настройте OIDC-приложение в Identity Hub

Создайте OIDC-приложениеСоздайте OIDC-приложение

Интерфейс Cloud Center
CLI
  1. Войдите в сервис Yandex Identity Hub.

  2. На панели слева выберите Приложения.

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

    1. Выберите метод единого входа OIDC (OpenID Connect).

    2. В поле Имя задайте имя создаваемого приложения: website-oidc-app.

    3. В поле Каталог выберите каталог, в котором будет создан OAuth-клиент для приложения.

    4. (Опционально) В поле Описание задайте описание приложения.

    5. (Опционально) Добавьте метки:

      1. Нажмите Добавить метку.
      2. Введите метку в формате ключ: значение.
      3. Нажмите Enter.
    6. Нажмите Создать приложение.

  4. В открывшемся окне на вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) скопируйте и сохраните значение параметра ClientID с уникальным идентификатором OAuth-клиента. Это значение понадобится позднее при настройке утилиты OAuth2 Proxy.

  5. Создайте секрет приложения:

    В блоке Секреты приложения нажмите кнопку Добавить секрет и в открывшемся окне:

    1. (Опционально) Добавьте произвольное описание создаваемого секрета.
    2. Нажмите Создать.

    В окне отобразится сгенерированный секрет приложения. Сохраните полученное значение.

    Важно

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

    Если вы закрыли или обновили страницу, не сохранив сгенерированный секрет, используйте кнопку Добавить секрет, чтобы создать новый.

    Чтобы удалить секрет, в списке секретов на странице OIDC-приложения в строке с нужным секретом нажмите значок и выберите Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  1. Создайте OAuth-клиент:

    yc iam oauth-client create \
      --name website-oauth-client \
      --scopes openid,email,profile
    

    Где:

    • --name — имя OAuth-клиента.
    • --scopes — набор атрибутов пользователей, которые будут передаваться в OAuth2 Proxy. Указаны атрибуты:
      • openid — идентификатор пользователя. Обязательный атрибут.
      • email — адрес электронной почты пользователя.
      • profile — дополнительная информация о пользователе, такая как имя, фамилия, аватар.

    Результат:

    id: ajeiu3otac08********
    name: website-oauth-client
    scopes:
      - email
      - openid
      - profile
    folder_id: b1gkd6dks6i1********
    status: ACTIVE
    

    Сохраните ClientID приложения (значение поля id) — оно понадобится для создания секрета и настройки OAuth2 Proxy.

  2. Создайте секрет для OAuth-клиента, указав полученный на предыдущем шаге идентификатор:

    yc iam oauth-client-secret create \
      --oauth-client-id <идентификатор_OAuth-клиента>
    

    Результат:

    oauth_client_secret:
      id: ajeohit7l3t6********
      oauth_client_id: ajeiu3otac08********
      masked_secret: yccs__460c4ca204****
      created_at: "2026-01-22T08:51:27.263668671Z"
    secret_value: yccs__4d2243a25b501220ee2a6f********************************e76e64e797_07911bfb
    

    Сохраните значение поля secret_value, оно понадобится для настройки OAuth2 Proxy.

  3. Создайте OIDC-приложение:

    yc organization-manager idp application oauth application create \
      --organization-id <идентификатор_организации> \
      --name website-oidc-app \
      --description "OIDC-приложение для настройки доступа пользователей Identity Hub к сайту" \
      --client-id <идентификатор_OAuth-клиента> \
      --authorized-scopes openid,email,profile \
      --group-distribution-type none
    

    Где:

    • --organization-id — идентификатор организации, в которой нужно создать OIDC-приложение. Обязательный параметр.
    • --name — имя OIDC-приложения. Обязательный параметр.
    • --description — описание OIDC-приложения. Необязательный параметр.
    • --client-id — идентификатор OAuth-клиента, полученный на втором шаге. Обязательный параметр.
    • --authorized-scopes — укажите те же атрибуты, которые были указаны при создании OAuth-клиента.
    • --group-distribution-type — укажите none, так как группы пользователей не передаются в OAuth2 Proxy.

    Результат:

    done (2s)
    id: ek0odpetc1o4********
    name: website-oidc-app
    organization_id: bpf2c65rqcl8********
    description: OIDC-приложение для настройки доступа пользователей Identity Hub к сайту
    group_claims_settings:
      group_distribution_type: NONE
    client_grant:
      client_id: ajeiu3otac08********
      authorized_scopes:
        - openid
        - email
        - profile
    status: ACTIVE
    created_at: "2026-01-22T08:53:26.873089Z"
    updated_at: "2026-01-22T08:53:27.439690Z"
    

Настройте Redirect URIНастройте Redirect URI

Интерфейс Cloud Center
CLI
  1. Войдите в сервис Yandex Identity Hub.
  2. На панели слева выберите Приложения и выберите нужное OIDC-приложение.
  3. Справа сверху нажмите Редактировать и в открывшемся окне:
    1. В поле Redirect URI укажите эндпоинт аутентификации для тестового приложения:

      https://<ваш_домен>/oauth2/callback
      

      Где <ваш_домен> — домен вашего тестового приложения, например: example.com.

    2. Нажмите Сохранить.

Обновите OAuth-клиент, указав Redirect URI:

yc iam oauth-client update \
  --id <идентификатор_OAuth-клиента> \
  --redirect-uris "https://<ваш_домен>/oauth2/callback"

Где:

  • <идентификатор_OAuth-клиента> — идентификатор OAuth-клиента, полученный при его создании.
  • --redirect-uris — эндпоинт аутентификации для вашего тестового приложения. Например: https://example.com/oauth2/callback.

Результат:

  id: ajeiu3otac08********
  name: website-oauth-client
  redirect_uris:
    - https://example.com/oauth2/callback
  scopes:
    - email
    - openid
    - profile
  folder_id: b1gkd6dks6i1********
  status: ACTIVE

Добавьте пользователяДобавьте пользователя

Чтобы ваши пользователи Identity Hub могли проходить аутентификацию в тестовом приложении с помощью протокола OIDC, необходимо явно добавить в OIDC-приложение нужных пользователей и/или группы пользователей.

Примечание

Управлять пользователями и группами, добавленными в OIDC-приложение, может пользователь, которому назначена роль organization-manager.oidcApplications.userAdmin или выше.

Добавьте пользователя в приложение:

Интерфейс Cloud Center
CLI
  1. Войдите в сервис Yandex Identity Hub.
  2. На панели слева выберите Приложения и выберите нужное приложение.
  3. Перейдите на вкладку Пользователи и группы.
  4. Нажмите Добавить пользователей.
  5. В открывшемся окне выберите нужного пользователя или группу пользователей.
  6. Нажмите Добавить.
  1. Получите идентификатор пользователя или группы пользователей.

  2. Чтобы добавить в приложение пользователя или группу пользователей, выполните команду:

    yc organization-manager idp application oauth application add-assignments \
      --id <идентификатор_приложения> \
      --subject-id <идентификатор_пользователя_или_группы>
    

    Где:

    • --id — идентификатор OIDC-приложения.
    • --subject-id — идентификатор нужного пользователя или группы пользователей.

    Результат:

    done (2s)
    assignment_deltas:
      - action: ADD
        assignment:
          subject_id: aje0j5mts02t********
    

Подготовьте виртуальную машину с тестовым приложениемПодготовьте виртуальную машину с тестовым приложением

В данном руководстве вы развернете тестовое приложение, а также настроите утилиты nginx и OAuth2 Proxy на виртуальной машине под управлением ОС Ubuntu 24.04.

Важно

Если вы хотите настроить доступ к вашему существующему приложению, выполните аналогичные настройки на том сервере, который принимает запросы от пользователей вашего приложения. В этом случае создавать отдельную виртуальную машину не требуется, и вы можете переходить к настройке nginx и OAuth2 Proxy.

Подготовьте окружение Yandex CloudПодготовьте окружение Yandex Cloud

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

  • Создать облачную сеть
  • Создать подсеть

Кроме того, в вашей облачной сети создайте группу безопасности, разрешающую входящий TCP-трафик для портов 22, 80 и 443, а также любой исходящий трафик.

Создайте виртуальную машинуСоздайте виртуальную машину

Консоль управления
CLI
  1. В консоли управления выберите каталог, в котором вы создаете инфраструктуру.

  2. В списке сервисов выберите Compute Cloud.

  3. На панели слева выберите Виртуальные машины и нажмите кнопку Создать виртуальную машину.

  4. В блоке Образ загрузочного диска в поле Поиск продукта введите Ubuntu 24.04 LTS и выберите публичный образ Ubuntu 24.04 LTS.

  5. В блоке Расположение выберите зону доступности, соответствующую зоне доступности вашей подсети.

  6. В блоке Вычислительные ресурсы выберите конфигурацию 2 vCPU 4 ГБ RAM.

  7. В блоке Сетевые настройки:

    • В поле Подсеть выберите ваши сеть и подсеть в зоне доступности создаваемой виртуальной машины.
    • В поле Публичный IP-адрес оставьте значение Автоматически, чтобы назначить ВМ случайный публичный IP-адрес из пула Yandex Cloud.
    • В поле Группы безопасности выберите созданную ранее группу безопасности.
  8. В блоке Доступ выберите вариант SSH-ключ и укажите данные для доступа к ВМ:

    • В поле Логин введите имя пользователя, например: yc-user. Не используйте имя root или другие имена, зарезервированные ОС. Для выполнения операций, требующих прав суперпользователя, используйте команду sudo.
    • В поле SSH-ключ выберите SSH-ключ, сохраненный в вашем профиле пользователя организации.

      Если в вашем профиле нет сохраненных SSH-ключей или вы хотите добавить новый ключ:

      1. Нажмите кнопку Добавить ключ.

      2. Задайте имя SSH-ключа.

      3. Выберите вариант:

        • Ввести вручную — вставьте содержимое открытого SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно.

        • Загрузить из файла — загрузите открытую часть SSH-ключа. Пару SSH-ключей необходимо создать самостоятельно.

        • Сгенерировать ключ — автоматическое создание пары SSH-ключей.

          При добавлении сгенерированного SSH-ключа будет создан и загружен архив с парой ключей. В ОС на базе Linux или macOS распакуйте архив в папку /home/<имя_пользователя>/.ssh. В ОС Windows распакуйте архив в папку C:\Users\<имя_пользователя>/.ssh. Дополнительно вводить открытый ключ в консоли управления не требуется.

      4. Нажмите кнопку Добавить.

      SSH-ключ будет добавлен в ваш профиль пользователя организации. Если в организации отключена возможность добавления пользователями SSH-ключей в свои профили, добавленный открытый SSH-ключ будет сохранен только в профиле пользователя внутри создаваемого ресурса.

  9. В блоке Общая информация задайте имя ВМ: my-nginx-vm.

  10. Нажмите кнопку Создать ВМ.

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

  yc compute instance create \
    --name my-nginx-vm \
    --zone <зона_доступности_ВМ> \
    --create-boot-disk image-folder-id=standard-images,image-family=ubuntu-2404-lts,auto-delete=true \
    --ssh-key <путь_к_открытому_SSH-ключу> \
    --network-interface subnet-name=<имя_подсети>,nat-ip-version=ipv4,security-group-ids=<идентификатор_группы_безопасности>

Где:

  • --name — имя ВМ. Требования к имени:

    • длина — от 3 до 63 символов;
    • может содержать строчные буквы латинского алфавита, цифры и дефисы;
    • первый символ — буква, последний — не дефис.
  • --zone — зона доступности, в которой вы создаете виртуальную машину.

  • --ssh-key — путь к файлу с публичным SSH-ключом, например: ~/.ssh/id_ed25519.pub. Для этого ключа на ВМ будет автоматически создан пользователь yc-user.

  • subnet-name — имя подсети в том же каталоге и той же зоне доступности, в которых создается виртуальная машина.

  • <идентификатор_группы_безопасности> — идентификатор группы безопасности, созданной ранее.

Результат
done (29s)
id: epdvqa1rtvjj********
folder_id: b1gt6g8ht345********
created_at: "2026-01-22T12:03:52Z"
name: my-nginx-vm
zone_id: ru-central1-b
platform_id: standard-v2
resources:
  memory: "2147483648"
  cores: "2"
  core_fraction: "100"
status: RUNNING
metadata_options:
  gce_http_endpoint: ENABLED
  aws_v1_http_endpoint: ENABLED
  gce_http_token: ENABLED
  aws_v1_http_token: DISABLED
boot_disk:
  mode: READ_WRITE
  device_name: epdbi403v2or********
  auto_delete: true
  disk_id: epdbi403v2or********
network_interfaces:
  - index: "0"
    mac_address: d0:0d:1f:d2:83:be
    subnet_id: e2lqsms4cdl3********
    primary_v4_address:
      address: 192.168.2.31
      one_to_one_nat:
        address: 89.169.***.***
        ip_version: IPV4
    security_group_ids:
      - enp378h7n0cm********
serial_port_settings:
  ssh_authorization: OS_LOGIN
gpu_settings: {}
fqdn: epdvqa1rtvjj********.auto.internal
scheduling_policy: {}
network_settings:
  type: STANDARD
placement_policy: {}
hardware_generation:
  legacy_features:
    pci_topology: PCI_TOPOLOGY_V2
application: {}

Настройте интеграциюНастройте интеграцию

Создайте тестовое приложение и настройте nginxСоздайте тестовое приложение и настройте nginx

  1. Убедитесь, что для вашего домена создана ресурсная A-запись, указывающая на публичный IP-адрес созданной виртуальной машины. Если такой ресурсной записи нет, создайте ее.

    Примечание

    Если управление вашим доменом делегировано сервису Yandex Cloud DNS, для создания ресурсной записи воспользуйтесь инструкцией Создать ресурсную запись. Если доменом управляет сторонний провайдер, воспользуйтесь документацией этого провайдера или обратитесь в его службу поддержки.

  2. Подключитесь по SSH к созданной виртуальной машине.

  3. Установите nginx:

    sudo apt update && sudo apt upgrade -y
    sudo apt install nginx -y
    
  4. Создайте файлы тестового приложения:

    1. Сохраните имя вашего домена в переменную окружения:

      export MY_DOMAIN="<имя_домена>"
      

      Где <имя_домена> — имя вашего домена, для которого создана ресурсная запись, указывающая на публичный IP-адрес текущей виртуальной машины. Например: example.com.

    2. Создайте директорию и основную HTML-страницу тестового приложения:

      sudo mkdir /var/www/$MY_DOMAIN
      sudo touch /var/www/$MY_DOMAIN/index.html \
        && echo "<h1>Your Web application that is available to your Identity Hub users only</h1>" | sudo tee -a /var/www/$MY_DOMAIN/index.html
      
  5. Создайте самоподписанный SSL-сертификат для вашего домена. Для этого выполните команду и введите значения, следуя инструкциям на экране:

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/my-private.key -out /etc/ssl/certs/my-certificate.crt
    

    В результате будет создан самоподписанный SSL-сертификат, которого достаточно для тестирования предлагаемого решения.

    Совет

    Чтобы при использовании приложения браузер не выдавал предупреждение о проблемах с безопасностью, используйте SSL-сертификат, выданный удостоверяющим центром.

    Например, чтобы создать сертификат от Let's Encrypt и сохранить его и закрытый ключ на свой компьютер, воспользуйтесь инструкциями Добавить сертификат от Let's Encrypt® и Получить содержимое сертификата от Let's Encrypt.

  6. Задайте настройки nginx:

    1. С помощью текстового редактора nano откройте файл конфигурации nginx:

      sudo nano /etc/nginx/conf.d/default.conf
      
    2. Замените содержимое открытого файла следующим:

      server {
          listen 80;
          listen [::]:80;
          server_name <имя_домена>;
      
          return 301 https://$server_name$request_uri;
      }
      
      server {
          listen 443 ssl;
          listen [::]:443 ssl;
          server_name <имя_домена>;
      
          location /oauth2/ {
              proxy_pass       http://127.0.0.1:4180;
              proxy_set_header Host                    $host;
              proxy_set_header X-Real-IP               $remote_addr;
              proxy_set_header X-Auth-Request-Redirect $request_uri;
              # or, if you are handling multiple domains:
              # proxy_set_header X-Auth-Request-Redirect $scheme://$host$request_uri;
          }
        
          location = /oauth2/auth {
              proxy_pass       http://127.0.0.1:4180;
              proxy_set_header Host             $host;
              proxy_set_header X-Real-IP        $remote_addr;
              proxy_set_header X-Forwarded-Uri  $request_uri;
              # nginx auth_request includes headers but not body
              proxy_set_header Content-Length   "";
              proxy_pass_request_body           off;
          }
      
          # Пути к вашим сертификату и ключу
          ssl_certificate /etc/ssl/certs/my-certificate.crt;
          ssl_certificate_key /etc/ssl/private/my-private.key;
      
          # Рекомендуемые настройки безопасности
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
          ssl_prefer_server_ciphers on;
      
          access_log /var/log/nginx/$server_name.access.log;
          error_log /var/log/nginx/$server_name.error.log;
      
          location / {
      
              auth_request /oauth2/auth;
              error_page 401 =403 /oauth2/sign_in;
      
              # pass information via X-User and X-Email headers to backend,
              # requires running with --set-xauthrequest flag
              auth_request_set $user   $upstream_http_x_auth_request_user;
              auth_request_set $email  $upstream_http_x_auth_request_email;
              proxy_set_header X-User  $user;
              proxy_set_header X-Email $email;
      
              root /var/www/$server_name/;
              index index.html;
      
              try_files $uri $uri/ =404;
          }
      
      }
      

      Где <имя_домена> — имя вашего домена, для которого создана ресурсная запись, указывающая на публичный IP-адрес текущей виртуальной машины. Например: example.com.

      Важно

      Если вы используете SSL-сертификат, выданный удостоверяющим центром, скопируйте файлы сертификата и закрытого ключа на виртуальную машину и укажите локальные пути к этим файлам соответственно в полях ssl_certificate и ssl_certificate_key файла конфигурации.

  7. Примените обновленные настройки nginx:

    sudo nginx -s reload
    

Настройте OAuth2 ProxyНастройте OAuth2 Proxy

  1. Подключитесь по SSH к созданной виртуальной машине.

  2. Установите актуальную версию утилиты OAuth2 Proxy удобным вам способом.

    В приведенном примере используется установка путем скачивания архива с исполняемым файлом. На момент написания настоящего руководства актуальной являлась версия v7.14.2:

    sudo wget https://github.com/oauth2-proxy/oauth2-proxy/releases/download/v7.14.2/oauth2-proxy-v7.14.2.linux-amd64.tar.gz
    sudo tar -xvf oauth2-proxy-v7.14.2.linux-amd64.tar.gz -C /usr/bin/
    sudo chmod +x /usr/bin/oauth2-proxy-v7.14.2.linux-amd64/oauth2-proxy
    sudo rm oauth2-proxy-v7.14.2.linux-amd64.tar.gz
    
  3. Задайте настройки OAuth2 Proxy:

    1. Сгенерируйте секрет cookie, который потребуется при настройке утилиты:

      dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64 | tr -d -- '\n' | tr -- '+/' '-_' ; echo
      

      Сохраните полученное значение — оно понадобится позднее.

    2. С помощью текстового редактора nano откройте файл конфигурации oauth2-proxy.cfg:

      sudo nano /usr/bin/oauth2-proxy-v7.14.2.linux-amd64/oauth2-proxy.cfg
      
    3. Вставьте в файл oauth2-proxy.cfg следующую конфигурацию, подставив в нее необходимые значения:

      provider = "oidc"  # Тип провайдера
      provider_display_name = "Yandex Identity Hub" # Имя провайдера на кнопке
      reverse_proxy = true # Включение режима работы за nginx
      client_id = "<идентификатор_ClientID>" # ClientID OIDC приложения 
      client_secret = "<секрет_OIDC_приложения>" # Секрет OIDC приложения
      oidc_issuer_url = "https://auth.yandex.cloud"
      cookie_name = "_oauth2_proxy" # Имя cookie
      cookie_secret = "<секрет_cookie>"  # Сгенерированный ранее ключ cookie
      email_domains = [ "<домен_1>","<домен_2>",...,"<домен_n>" ]  # Домены, для которых разрешена аутентификация
      upstreams = [ "<адрес_вашего_приложения>" ]  # Адрес бэкенд-приложения
      http_address = "127.0.0.1:4180"  # Адрес и порт, на которых слушает oauth2-proxy
      redirect_url = "<redirect_URI>"  # URL для обратного вызова
      

      Где:

      • client_id — значение ClientID OAuth-клиента, полученное ранее при создании OIDC-приложения.

      • client_secret — значение секрета, сгенерированного в OIDC-приложении.

      • cookie_secret — секрет cookie, сгенерированный и сохраненный ранее.

      • email_domains — список доменов в адресе электронной почты, для которых будет разрешена аутентификация пользователя Identity Hub в тестовом приложении.

        Утилита OAuth2 Proxy проверяет домен электронной почты, указанной в поле Электронная почта настроек пользователя в Identity Hub (атрибут email).

        В поле email_domains укажите домен электронной почты того пользователя, которого вы добавили ранее в ваше OIDC-приложение. Если в OIDC-приложение вы добавляли группу пользователей, укажите домен электронной почты того пользователя группы, от имени которого вы будете тестировать аутентификацию. Вы можете указать несколько доменов через запятую.

        Совет

        Чтобы в тестовом приложении могли аутентифицироваться пользователи с аккаунтом на Яндексе, добавьте в список email_domains значение yandex.ru.

      • upstreams — адрес вашего приложения. Например: https://example.com/.

      • redirect_url — значение Redirect URI, которое вы задали при настройке OIDC-приложения.

  4. Запустите OAuth2 Proxy:

    sudo /usr/bin/oauth2-proxy-v7.14.2.linux-amd64/oauth2-proxy \
      --config /usr/bin/oauth2-proxy-v7.14.2.linux-amd64/oauth2-proxy.cfg
    

    Совет

    Вы также можете запустить OAuth2 Proxy в фоновом режиме, например, с помощью утилиты nohup.

Убедитесь в корректной работе аутентификацииУбедитесь в корректной работе аутентификации

Чтобы убедиться в корректной работе аутентификации в тестовом приложении с помощью OIDC-приложения:

  1. В браузере введите адрес вашего тестового приложения (например, https://example.com).

    Если все было настроено правильно, в браузере откроется окно аутентификации OAuth2 Proxy.

  2. Нажмите кнопку Sign in with Yandex Identity Hub.

  3. Пройдите аутентификацию от имени того пользователя, которого вы ранее добавили в OIDC-приложение. Если в OIDC-приложение вы добавляли группу пользователей, пройдите аутентификацию от имени пользователя, который входит в эту группу.

    Если все было настроено правильно, в браузере откроется страница с вашим тестовым приложением.

  4. При попытке аутентифицироваться от имени пользователя, не добавленного в OIDC-приложение, или имеющего адрес электронной почты с доменом, отличным от разрешенных в настройках OAuth2 Proxy, ваше приложение выдаст сообщение об ошибке доступа.

Была ли статья полезна?

Предыдущая
OpenVPN Access Server
Следующая
Организация
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»