Visão geral
O OpenID Connect (OIDC) permite que seus fluxos de trabalho do GitHub Actions se autentiquem com o JFrog para baixar e publicar artefatos sem armazenar senhas, tokens ou chaves de API do JFrog na GitHub.
Este guia fornece uma visão geral de como configurar o JFrog para confiar no OIDC da GitHub como uma identidade federada e demonstra como usar essa configuração em um fluxo de trabalho de GitHub Actions.
Para obter um exemplo de fluxo de trabalho do GitHub Actions, consulte Exemplo de integração do GitHub Actions na documentação do JFrog.
Para um exemplo de fluxo de trabalho de GitHub Actions usando a CLI do JFrog, consulte build-publish.yml
no repositório jfrog-github-oidc-example
.
Pré-requisitos
-
Para saber os conceitos básicos de como o GitHub usa o OIDC (OpenID Connect), além da arquitetura e dos benefícios, confira Sobre o enrijecimento de segurança com o OpenID Connect.
-
Antes de prosseguir, você deve planejar sua estratégia de segurança para garantir que os tokens de acesso sejam atribuídos apenas de forma previsível. Para controlar como o provedor de nuvem emite os tokens de acesso, você precisa definir, pelo menos, uma condição, para que os repositórios não confiáveis não possam solicitar tokens de acesso aos seus recursos de nuvem. Para saber mais, confira Sobre o enrijecimento de segurança com o OpenID Connect.
-
Para ser seguro, você precisa definir um JSON de declarações no JFrog ao configurar mapeamentos de identidade. Para saber mais, confira AUTOTITLE e Sobre o enrijecimento de segurança com o OpenID Connect.
Por exemplo, você pode definir
iss
comohttps://token.actions.githubusercontent.com
, e orepository
como algo como "octo-org/octo-repo"'. Isso vai garantir que apenas os fluxos de trabalho de Ações do repositório especificado tenham acesso à sua plataforma JFrog. A seguir, um exemplo de JSON de declarações ao configurar mapeamentos de identidade.JSON { "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
{ "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
Adicionando o provedor de identidade ao JFrog
Para usar o OIDC com o JFrog, estabeleça uma relação de confiança entre GitHub Actions e a plataforma JFrog. Para obter mais informações sobre esse processo, consulte Integração do OpenID Connect na documentação do JFrog.
- Inicie sessão na plataforma JFrog.
- Configure a confiança entre o JFrog e seus fluxos de trabalho do GitHub Actions.
- Configurar mapeamentos de identidade.
Atualizar o seu fluxo de trabalho de GitHub Actions
Autenticando com o JFrog usando OIDC
No arquivo de fluxo de trabalho do GitHub Actions, verifique se você está usando o nome do provedor e o público que configurou na Plataforma JFrog.
O exemplo a seguir usa os espaços reservados YOUR_PROVIDER_NAME
e 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/
Dica
Quando a autenticação OIDC é usada, a ação setup-jfrog-cli
fornece automaticamente oidc-user
e oidc-token
como saídas da etapa.
Elas podem ser usadas para outras integrações que exigem a autenticação com o JFrog.
Para fazer referência a essas saídas, verifique se a etapa tem um id
explícito definido (por exemplo, id: setup-jfrog-cli
).
Usando credenciais do OIDC em outras etapas
- name: Sign in to Artifactory Docker registry
uses: docker/login-action@v3
with:
registry: $
username: $
password: $
Leitura adicional
- Integração do OpenID Connect na documentação do JFrog
- Mapeamentos de identidade na documentação do JFrog
- AUTOTITLE