Skip to main content

Настройка OpenID Connect в JFrog

Используйте OpenID Connect в рабочих процессах для проверки подлинности с помощью JFrog.

Обзор

OpenID Connect (OIDC) позволяет рабочим процессам GitHub Actions проходить проверку подлинности с помощью JFrog, чтобы скачать и опубликовать артефакты без хранения паролей JFrog , маркеров или ключей API в GitHub.

В этом руководстве представлен обзор настройки JFrog для доверия GitHub%}в качестве федеративного удостоверения и демонстрируется использование этой конфигурации в рабочем процессе GitHub Actions.

Пример рабочего процесса GitHub Actions см . в примере интеграции GitHub Actions в документации по JFrog.

Пример рабочего процесса GitHub Actions с помощью JFrog CLI смbuild-publish.yml. в репозитории.jfrog-github-oidc-example

Необходимые компоненты

  • Основные понятия о том, как GitHub использует OpenID Connect (OIDC) и его архитектуру и преимущества, см. в разделе OpenID Connect.

  • Прежде чем продолжить, необходимо спланировать стратегию безопасности, чтобы обеспечить выдачу маркеров доступа только предсказуемым способом. Чтобы управлять тем, как поставщик облачных служб выдает маркеры доступа, необходимо определить по крайней ме��е одно условие, запретив недоверенным репозиториям запрашивать маркеры доступа к облачным ресурсам. Дополнительные сведения см. в разделе OpenID Connect.

  • Чтобы обеспечить безопасность, необходимо задать JSON утверждений в JFrog при настройке сопоставлений удостоверений. Дополнительные сведения см. в разделе [AUTOTITLE и AUTOTITLE](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#customizing-the-token-claims).

    Например, можно задать iss https://token.actions.githubusercontent.comзначение , а repository также что-то вроде "octo-org/octo-repo". Это обеспечит доступ к платформе JFrog только рабочих процессов Actions из указанного репозитория. Ниже приведен пример JSON утверждений при настройке сопоставлений удостоверений.

    JSON
    {
        "iss": "https://token.actions.githubusercontent.com",
        "repository": "octo-org/octo-repo"
    }
    

Добавление поставщика удостоверений в JFrog

Чтобы использовать OIDC с JFrog, установите отношение доверия между GitHub Actions и платформой JFrog. Дополнительные сведения об этом процессе см . в статье "Интеграция OpenID Connect" в документации по JFrog.

  1. Войдите на платформу JFrog.
  2. Настройте доверие между JFrog и рабочими процессами GitHub Actions.
  3. Настройте сопоставления удостоверений.

Обновление рабочего процесса GitHub Actions

Проверка подлинности с помощью JFrog с помощью OIDC

В файле рабочего процесса GitHub Actions убедитесь, что вы используете имя поставщика и аудиторию, настроенную на платформе JFrog.

В следующем примере используются заполнители YOUR_PROVIDER_NAME и YOUR_AUDIENCE.

permissions:
  id-token: write
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Set up JFrog CLI with OIDC
        id: setup-jfrog-cli
        uses: jfrog/setup-jfrog-cli@29fa5190a4123350e81e2a2e8d803b2a27fed15e
        with:
          JF_URL: ${{ env.JF_URL }}
          oidc-provider-name: 'YOUR_PROVIDER_NAME'
          oidc-audience: 'YOUR_AUDIENCE' # This is optional

      - name: Upload artifact
        run: jf rt upload "dist/*.zip" my-repo/

Совет

При использовании setup-jfrog-cli проверки подлинности OIDC действие автоматически предоставляет oidc-user и oidc-token в качестве выходных данных шага. Их можно использовать для других интеграции, требующих проверки подлинности с помощью JFrog. Чтобы ссылаться на эти выходные данные, убедитесь, что на шаге определен явный id (например id: setup-jfrog-cli).

Использование учетных данных OIDC в других шагах

      - name: Sign in to Artifactory Docker registry
        uses: docker/login-action@v3
        with:
          registry: ${{ env.JF_URL }}
          username: ${{ steps.setup-jfrog-cli.outputs.oidc-user }}
          password: ${{ steps.setup-jfrog-cli.outputs.oidc-token }}

Дополнительные материалы