Skip to main content

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

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

Обзор

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

В этом руководстве представлен обзор того, как настроить JFrog для доверия GitHubOIDC от 's as federated identity, а также демонстрируется, как использовать эту конфигурацию в рабочем 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.

  • Если вы используете это руководство по GHE.com, понять, что необходимо заменить определенные значения в следующей документации. См . раздел AUTOTITLE.

  • Чтобы обеспечить безопасность, необходимо задать 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.

# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.
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 в других шагах

# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.
# Они предоставляются сторонним поставщиком, и на них распространяются
# отдельные условия обслуживания, политика конфиденциальности и поддержка
# документации.
      - 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 }}

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