Облачная платформаEvolution

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


Сервис Repo поддерживает аутентификацию пользователей при работе с репозиториями в Git и моделями и датасетами в IDE.

Repo поддерживает два способа аутентификации для доступа к репозиториям по протоколу HTTPS:

  • по персональным ключам доступа;

  • по API-ключам для сервисного аккаунта.

Получите персональные ключи доступа, если планируете управлять репозиторием самостоятельно. Или создайте сервисный аккаунт и получите API-ключ к нему, если планируете организовать командную работу.

API-ключ также используется при работе с моделями и датасетами с помощью IDE.

Перед началом работы

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

Подготовка среды для аутентификации по персональным ключам

Для поддержки этого вида аутентификации необходимо развернуть приложение repo-auth-helper из репозитория Cloud.ru.

  1. Установите приложение repo-auth-helper.

    1. Скачайте repo-auth-helper:

      curl -LO https://github.com/cloud-ru/evo-repo-auth-helper/releases/download/
    2. Распакуйте архив:

      tar -xzf
    3. Скопируйте бинарный файл в системную папку:

      Для Mac OS/Linux:

      Выполните последовательность команд:

      sudo cp /repo-auth-helper /usr/local/bin/repo-auth-helper
      sudo chmod +x /usr/local/bin/repo-auth-helper

      Для Windows:

      Скопируйте файл repo-auth-helper.exe в системную папку, указанную в PATH.

  2. Добавьте в .gitconfig фрагмент кода:

    Для Mac OS/Linux:

    [credential "repo.cloud.ru"]
    helper = /usr/local/bin/repo-auth-helper

    Для Windows:

    [credential "repo.cloud.ru"]
    helper = <path to repo-auth-helper.exe>

    Где <path to repo-auth-helper.exe> — путь к приложению в вашей локальной конфигурации Git.

  3. (Опционально) Если возникает конфликт менеджеров аутентификации и repo-auth-helper.exe не запускается, отключите стандартное приложение Git Credential Manager для repo.cloud.ru:

    [credential "repo.cloud.ru"]
    helper = "" # disabling standard tools for this host
    helper = /usr/local/bin/repo-auth-helper

Приложение запросит Key ID (логин) и Key Secret (пароль) ключа доступа при первом обращении к репозиторию.

Подготовка среды для аутентификации по API-ключу для сервисного аккаунта для работы с Git

Для поддержки этого вида аутентификации необходимо стандартное приложение Git Credential Manager.

  1. При создании сервисного аккаунта в разделе Роли для платформ и сервисов в подразделе Evolution → Evolution Repo укажите роль. Для изменения репозитория выберите роль repo-developer или repo-maintainer.

  2. Создайте API-ключ для сервисного аккаунта.

    При создании в списке Сервисы выберите Evolution Repo.

  3. (Опционально) Используйте в качестве клиента Git Credential Manager. Для этого добавьте в .gitconfig фрагмент кода:

    [credential "repo.cloud.ru"]
    helper = manager

Менеджер аутентификации будет использовать API-ключ для аутентификации при первом обращении к репозиторию.

Подготовка среды для аутентификации по API-ключу для работы с моделями и датасетами в среде разработки

  1. При создании сервисного аккаунта в разделе Роли для платформ и сервисов в подразделе Evolution → Evolution Repo укажите роль. Для изменения репозитория выберите роль repo-developer или repo-maintainer.

  2. Создайте API-ключ для сервисного аккаунта.

    При создании в списке Сервисы выберите Evolution Repo.

Используйте API-ключ в качестве токена при действиях в IDE.

Аутентификация по персональным ключам при работе с репозиторием

С персональными ключами доступа используется Bearer-аутентификация. В качестве клиента используется приложение repo-auth-helper. Приложение запрашивает у пользователя Key ID (логин) и Key Secret (пароль) ключа доступа и обращается к IAM-серверу для получения уникального JWT-токена. Затем приложение использует полученный JWT-токен для аутентификации.

Этот метод более безопасен за счет ограниченного срока жизни токена и возможности отозвать персональные ключи в любой момент. Рекомендуется использовать его для долгосрочной интеграции.

Чтобы выполнить аутентификацию по персональным ключам:

При первом обращении к репозиторию по HTTPS repo-auth-helper.exe запросит Key ID (логин) и Key Secret (пароль) ключа доступа.

Введите ваши персональные ключи для получения токена доступа.

В дальнейшем ключи запрашиваются по истечении срока жизни JWT-токена.

Аутентификация по API-ключам для сервисного аккаунта при работе с репозиторием

Аутентификация по API-ключам для сервисного аккаунта выполняется с помощью Git Credential Manager (GCM). В данном способе используется Basic-аутентификация.

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

Чтобы выполнить аутентификацию по API-ключам для сервисного аккаунта:

При первом обращении к репозиторию по HTTPS менеджер аутентификации запросит логин и пароль.

Укажите ваши учетные данные:

  • В качестве логина (Username) укажите свое имя пользователя или адрес электронной почты.

  • В качестве пароля (Password) введите ваш API-ключ.

Хранение ключей

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

Удаление ключей

Выполните команду:

Для Mac OS:

security delete-generic-password -s "repo.cloud.ru"

Для Window:

cmdkey /delete:repo.cloud.ru

Для Linux:

secret-tool clear repo.cloud.ru credentials

Замена ключей

При следующем обращении к сервису будут запрошены новые.