Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Разграничение прав доступа для групп пользователей
    • Приглашение нового пользователя и назначение ролей
    • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
    • Создание распределенной инфраструктуры с защищенным доступом
    • Централизованная публикация в интернете и защита приложений от DDoS
    • Базовая настройка SWS
    • Экстренная защита сервисов в Application Load Balancer от DDoS на уровне L7
    • Передача логов с виртуальной машины в Cloud Logging
    • Запись логов балансировщика в PostgreSQL
    • Безопасное хранение паролей для GitLab CI в виде секретов Yandex Lockbox
    • Сервисный аккаунт с профилем OS Login для управления ВМ с помощью Ansible
    • Передача логов с Container Optimized Image в Cloud Logging
    • Добавление HTML-страницы для работы SmartCaptcha
    • Настройка алертов и дашбордов в Monitoring
    • Загрузка аудитных логов в SIEM Splunk
    • Загрузка аудитных логов в SIEM ArcSight
    • Шифрование для бакета Object Storage на стороне сервера
    • Шифрование секретов в HashiCorp Terraform
    • Управление ключами KMS с HashiCorp Terraform
    • Auto Unseal в HashiCorp Vault
      • Grafana OSS
      • 1С:Предприятие
      • Zabbix
      • Яндекс 360
      • Яндекс Браузер для организаций
      • Managed Service for OpenSearch
      • OpenSearch
      • Managed Service for GitLab
      • Selectel
      • SonarQube
      • OpenVPN Access Server
      • MWS
      • Harbor
      • Sentry
      • Использование OAuth2 Proxy для приложений, не поддерживающих SSO
    • Передача логов кластера Yandex MPP Analytics for PostgreSQL в Yandex Cloud Logging
    • Получение сведений для запроса на включение ресурса в белый список Минцифры
    • Загрузка объектов в бакет Object Storage с помощью эфемерного ключа доступа

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

  • Создайте приложение
  • Настройте интеграцию
  • Настройте OIDC-приложение на стороне Yandex Identity Hub
  • Настройте Harbor
  • Добавьте пользователя
  • Убедитесь в корректной работе приложения
  1. Безопасность
  2. Настройка единого входа в приложения (SSO)
  3. Harbor

Создать OIDC-приложение в Yandex Identity Hub для интеграции с Harbor

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 4 мая 2026 г.
  • Создайте приложение
  • Настройте интеграцию
    • Настройте OIDC-приложение на стороне Yandex Identity Hub
    • Настройте Harbor
    • Добавьте пользователя
  • Убедитесь в корректной работе приложения

Harbor — open source-реестр артефактов контейнерной разработки: образов контейнеров, Helm-чартов и других типов данных. Harbor поддерживает аутентификацию по OpenID Connect (OIDC), что позволяет использовать внешний поставщик удостоверений для единого входа пользователей.

Чтобы пользователи вашей организации входили в Harbor с помощью OpenID Connect, создайте OIDC-приложение в Yandex Identity Hub и настройте интеграцию на стороне Yandex Identity Hub и Harbor.

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

Чтобы дать пользователям организации доступ к Harbor:

  1. Создайте приложение.
  2. Настройте интеграцию.
  3. Убедитесь в корректной работе приложения.

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

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

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

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

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

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

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

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

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

  1. Посмотрите описание команды CLI для создания OIDC-приложения:

    yc organization-manager idp application oauth application create --help
    
  2. Создайте OAuth-клиент:

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

    Где:

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

    Результат:

    id: ajeqqip130i1********
    name: harbor-oauth-client
    folder_id: b1g500m2195v********
    status: ACTIVE
    

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

  3. Создайте секрет для OAuth-клиента:

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

    Результат:

    oauth_client_secret:
      id: ajeq9jfrmc5t********
      oauth_client_id: ajeqqip130i1********
      masked_secret: yccs__939233b8ac****
      created_at: "2025-10-21T10:14:17.861652377Z"
    secret_value: yccs__939233b8ac********
    

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

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

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

    Где:

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

    Результат:

    id: ek0o663g4rs2********
    name: harbor-oidc-app
    organization_id: bpf2c65rqcl8********
    group_claims_settings:
      group_distribution_type: ASSIGNED_GROUPS
    client_grant:
      client_id: ajeqqip130i1********
      authorized_scopes:
        - openid
        - email
        - profile
        - groups
    status: ACTIVE
    created_at: "2025-10-21T10:51:28.790866Z"
    updated_at: "2025-10-21T12:37:19.274522Z"
    

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

Чтобы настроить интеграцию Harbor с созданным OIDC-приложением в Yandex Identity Hub, выполните действия на стороне Yandex Identity Hub и Harbor.

Проверьте, что URL Harbor (портал и реестр) доступен по HTTPS с доверенным сертификатом: это требуется для корректных OIDC-перенаправлений.

Настройте OIDC-приложение на стороне Yandex Identity HubНастройте OIDC-приложение на стороне Yandex Identity Hub

Получите учетные данные приложенияПолучите учетные данные приложения

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

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

  3. На вкладке Обзор в блоке Конфигурация поставщика удостоверений (IdP) разверните секцию Дополнительные атрибуты и скопируйте значения параметров, которые необходимо задать на стороне Harbor:

    • ClientID — уникальный идентификатор приложения.
    • OpenID Configuration — URL с конфигурацией всех необходимых для настройки интеграции параметров.
  4. В блоке Секреты приложения нажмите кнопку Добавить секрет и в открывшемся окне:

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

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

    Важно

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

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

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

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

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

  1. Получите информацию о созданном OIDC-приложении:

    yc organization-manager idp application oauth application get <идентификатор_приложения>
    

    Где <идентификатор_приложения> — это ID OIDC-приложения, полученный при создании.

    В результате вы получите информацию о приложении, включая:

    id: ek0o663g4rs2********
    name: harbor-oidc-app
    organization_id: bpf2c65rqcl8********
    client_grant:
      client_id: ajeqqip130i1********
      authorized_scopes:
        - openid
        - email
        - profile
        - groups
    

    Сохраните значение client_id — это Client ID для настройки Harbor.

  2. Получите URL с конфигурацией OpenID Connect Discovery:

    yc organization-manager idp application oauth application get <идентификатор_приложения> \
      --format json | jq -r '.client_grant.issuer_uri'
    

    Результат будет выглядеть так:

    https://kz.auth.yandex.cloud/oauth/<идентификатор_OAuth-клиента>
    

    Сохраните этот URL для проверки доступности OpenID Connect Discovery. В поле OIDC Provider Endpoint в Harbor укажите базовый адрес провайдера: https://kz.auth.yandex.cloud (без суффикса /.well-known/openid-configuration).

  3. Используйте секрет OAuth-клиента, который был сохранен при создании приложения на предыдущем шаге. Если вы не сохранили секрет, создайте новый:

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

    Сохраните значение secret_value из результата команды — это Client Secret для настройки Harbor.

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

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

      https://<домен_Harbor>/c/oidc/callback
      
    2. В поле Scopes отметьте атрибут groups (группы пользователя в организации) и выберите Только назначенные группы.

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

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

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

Где:

  • <идентификатор_OAuth-клиента> — идентификатор OAuth-клиента, полученный при его создании.
  • --redirect-uris — эндпоинт callback Harbor, например https://reg.example.com/c/oidc/callback.

Результат:

id: ajeiu3otac08********
name: harbor-oauth-client
redirect_uris:
  - https://reg.example.com/c/oidc/callback
scopes:
  - openid
  - email
  - profile
  - groups
folder_id: b1gkd6dks6i1********
status: ACTIVE

Настройте HarborНастройте Harbor

Выполняйте действия на стороне Harbor под учетной записью системного администратора.

Установите HarborУстановите Harbor

  1. Если у вас еще нет реестра Harbor, установите его на виртуальной машине: заранее установите Docker Engine версии 20.10.10 или выше и плагин docker compose. Инструкции по установке Docker для Ubuntu см. в официальной документации Docker.

  2. Подключитесь к VM по SSH, перейдите в каталог распакованного установщика Harbor и убедитесь, что Docker и docker compose доступны:

    docker --version
    docker compose version
    
  3. Создайте файл конфигурации из шаблона:

    cp harbor.yml.tmpl harbor.yml
    
  4. Откройте harbor.yml и задайте обязательные параметры:

    • hostname — FQDN VM, по которому будет доступен Harbor. Для OIDC рекомендуется использовать именно доменное имя.
    • harbor_admin_password — пароль администратора Harbor.
    • database.password — пароль локальной БД Harbor.
    • параметры секции https (port, certificate, private_key) — укажите пути к сертификату и ключу для доступа к Harbor по TLS.

    Подробнее о параметрах файла см. в руководстве Harbor: Configure the Harbor YML File.

  5. Настройте внешний TLS для Harbor:

    Укажите путь к сертификату в harbor.yml. Подробная инструкция: Configure HTTPS Access to Harbor.

  6. (Опционально) Включите внутренний TLS между компонентами Harbor через секцию internal_tls в harbor.yml.

    Этот шаг рекомендуется для продуктивных установок с повышенными требованиями к защите внутреннего трафика. Подробнее: Configure Internal TLS communication between Harbor Component.

  7. Запустите установку Harbor из каталога установщика:

    sudo ./install.sh
    

    Подробнее: Run the Installer Script.

  8. Войдите в веб-интерфейс Harbor под учетной записью администратора.

Настройте аутентификациюНастройте аутентификацию

Примечание

Чтобы переключить Harbor на режим OIDC, в базе Harbor не должно быть учетных записей пользователей, кроме встроенной учетной записи администратора (после первого входа администратора это правило продолжает действовать: достаточно отсутствия прочих локальных пользователей). Подробнее см. документацию Harbor по режиму OIDC.

Перед настройкой OIDC убедитесь, что веб-интерфейс доступен по HTTPS. Это обязательное условие: Harbor использует callback URL вида https://<домен_Harbor>/c/oidc/callback.

  1. Откройте раздел Administration и перейдите в Configuration.

  2. Откройте вкладку Authentication.

  3. В поле Auth Mode выберите OIDC.

  4. Заполните поля провайдера OIDC:

    • OIDC Provider Name — произвольное имя кнопки входа, например Yandex Identity Hub.
    • OIDC Provider Endpoint — базовый адрес провайдера OIDC: https://kz.auth.yandex.cloud. Если вы копируете значение из поля OpenID Configuration, удалите из него суффикс /.well-known/openid-configuration.
    • OIDC Client ID — значение ClientID.
    • OIDC Client Secret — сохраненный ранее секрет OAuth-клиента.
    • OIDC Scope — укажите через запятую: openid,profile,email,groups.
    • Verify Certificate — оставьте включенным, если сертификат поставщика удостоверений доверенный для Harbor.
  5. Если вы планируете передавать группы из Yandex Identity Hub в Harbor:

    • В поле Group Claim Name укажите groups.
    • При необходимости задайте OIDC Admin Group и OIDC Group Filter в соответствии с документацией Harbor.
  6. (Опционально) Включите Automatic onboarding, если не хотите вручную задавать имя пользователя Harbor при первом входе. В поле Username Claim укажите утверждение из ID-токена, которое будет использоваться как логин (рекомендуется preferred_username; при необходимости можно использовать email. Согласуйте выбранное значение с атрибутами, которые выдает Yandex Identity Hub).

  7. Убедитесь, что значение Redirect URI внизу страницы совпадает с тем, что вы указали в OIDC-приложении в Yandex Identity Hub (https://<домен_Harbor>/c/oidc/callback).

  8. Нажмите Test OIDC Server и убедитесь, что проверка проходит без ошибок.

  9. Нажмите Save.

Подробнее о полях и ограничениях режима OIDC см. официальное руководство Harbor.

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

Чтобы пользователи организации входили в Harbor через OIDC-приложение Yandex Identity Hub, явно добавьте в приложение нужных пользователей и/или группы пользователей.

Примечание

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

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

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

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

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

  1. Получите идентификатор пользователя или группы пользователей.

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

    1. Посмотрите описание команды CLI для добавления пользователей в приложение:

      yc organization-manager idp application oauth application add-assignments --help
      
    2. Выполните команду:

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

      Где:

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

      Результат:

      assignment_deltas:
        - action: ADD
          assignment:
            subject_id: ajetvnq2mil8********
      

Убедитесь в корректной работе приложенияУбедитесь в корректной работе приложения

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

Для этого:

  1. В браузере перейдите по адресу вашего экземпляра Harbor (например, https://<домен_Harbor>).
  2. Если вы уже авторизованы в Harbor, выйдите из учетной записи.
  3. На странице входа нажмите кнопку входа через OIDC (текст соответствует значению поля OIDC Provider Name в Harbor).
  4. На странице аутентификации Yandex Cloud укажите email и пароль пользователя. Пользователь должен быть добавлен в приложение или состоять в группе, добавленной в приложение.
  5. Убедитесь, что вы успешно вошли в Harbor.
  6. При необходимости откройте профиль пользователя в Harbor и проверьте членство в группах, если вы настроили передачу групп.

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

Предыдущая
MWS
Следующая
SAML
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»