Información general
OpenID Connect (OIDC) permite que los flujos de trabajo de GitHub Actions se autentiquen con JFrog para descargar y publicar artefactos sin necesidad de almacenar contraseñas, tokens o claves de API de JFrog en GitHub.
En esta guía se proporciona información general sobre cómo configurar JFrog para confiar en el OIDC de GitHub como identidad federada y se muestra cómo usar esta configuración en un flujo de trabajo de GitHub Actions.
Para obtener un ejemplo de flujo de trabajo de GitHub Actions, consulta Integración de ejemplo de GitHub Actions en la documentación de JFrog.
Para obtener un flujo de trabajo de ejemplo de GitHub Actions mediante la CLI de JFrog, consulta build-publish.yml
en el repositorio jfrog-github-oidc-example
.
Requisitos previos
-
Para conocer los conceptos básicos de cómo GitHub usa OpenID Connect (OIDC) y su arquitectura y ventajas, consulta Acerca del fortalecimiento de seguridad con OpenID Connect.
-
Antes de proceder, debes planear tu estrategia de seguridad para garantizar que los tokens de acceso solo se asignen de forma predecible. Para controlar la forma en que el proveedor de servicios en la nube emite tokens de acceso, tendrá que definir al menos una condición, para que los repositorios no confiables no puedan solicitar tokens de acceso para los recursos en la nube. Para más información, consulta Acerca del fortalecimiento de seguridad con OpenID Connect.
-
Si sigues esta guía en GHE.com, comprende que debes sustituir determinados valores en la siguiente documentación. Consulta Acerca del fortalecimiento de seguridad con OpenID Connect.
-
Para estar protegido, debes establecer un JSON de notificaciones en JFrog al configurar asignaciones de identidad. Para más información, consulta AUTOTITLE y Acerca del fortalecimiento de seguridad con OpenID Connect.
Por ejemplo, puedes establecer
iss
enhttps://token.actions.githubusercontent.com
, yrepository
en algo parecido a "octo-org/octo-repo"'. Esto garantizará que solo los flujos de trabajo de Acciones del repositorio especificado tengan acceso a la plataforma JFrog. A continuación se muestra un ejemplo de JSON de notificaciones al configurar asignaciones de identidad.JSON { "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
{ "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
Incorporación del proveedor de identidades a JFrog
Para usar OIDC con JFrog, establece una relación de confianza entre GitHub Actions y la plataforma JFrog. Para obtener más información sobre este proceso, consulta Integración de OpenID Connect en la documentación de JFrog.
- Inicia sesión en la plataforma JFrog.
- Configura la confianza entre JFrog y los flujos de trabajo de GitHub Actions.
- Configura asignaciones de identidad.
Actualizar tu flujo de trabajo de GitHub Actions
Autenticación con JFrog mediante OIDC
En el archivo de flujo de trabajo de GitHub Actions, asegúrate de que usas el nombre del proveedor y el público que configuraste en la plataforma JFrog.
En el ejemplo siguiente se usan los marcadores de posición YOUR_PROVIDER_NAME
y 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/
Sugerencia
Cuando se usa la autenticación OIDC, la acción setup-jfrog-cli
proporciona automáticamente oidc-user
y oidc-token
como salidas de paso.
Se pueden usar para otras integraciones que requieren autenticación con JFrog.
Para hacer referencia a estas salidas, asegúrate de que el paso tiene definido explícitamente id
(por ejemplo, id: setup-jfrog-cli
).
Uso de credenciales de OIDC en otros pasos
- name: Sign in to Artifactory Docker registry
uses: docker/login-action@v3
with:
registry: $
username: $
password: $
Información adicional
- Integración de OpenID Connect en la documentación de JFrog
- Asignaciones de identidades en la documentación de JFrog
- Acerca del fortalecimiento de seguridad con OpenID Connect