Обзор
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" }{ "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
Добавление поставщика удостоверений в JFrog
Чтобы использовать OIDC с JFrog, установите доверительные отношения между GitHub Actions платформой JFrog. Дополнительные сведения об этом процессе см . в статье "Интеграция OpenID Connect" в документации по JFrog.
- Войдите на платформу JFrog.
- Настройте доверие между JFrog и вашими GitHub Actions рабочими процессами.
- Настройте сопоставления удостоверений.
Обновление вашего 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 }}
Дополнительные материалы
- Интеграция OpenID Connect в документации по JFrog
- Сопоставления удостоверений в документации по JFrog
- OpenID Connect