Обзор
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" }
{ "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
.
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 }}
Дополнительные материалы
- Интеграция OpenID Connect в документации по JFrog
- Сопоставления удостоверений в документации по JFrog
- OpenID Connect