Обзор
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
http://token.actions.githubusercontent.com
значение , аrepository
также что-то вроде "octo-org/octo-repo". Это обеспечит доступ к платформе JFrog только рабочих процессов Actions из указанного репозитория. Ниже приведен пример JSON утверждений при настройке сопоставлений удостоверений.JSON { "iss": "http://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
{ "iss": "http://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
.
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: $
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: $
username: $
password: $
Дополнительные материалы
- Интеграция OpenID Connect в документации по JFrog
- Сопоставления удостоверений в документации по JFrog
- AUTOTITLE