Skip to main content

Configuration d’OpenID Connect dans JFrog

Utilisez OpenID Connect dans vos flux de travail pour vous authentifier auprès de JFrog.

Vue d’ensemble

OpenID Connect (OIDC) permet à vos flux de travail GitHub Actions de s’authentifier auprès de JFrog pour télécharger et publier des artefacts sans stocker les mots de passe, jetons ou clés API de JFrog dans GitHub.

Ce guide donne une vue d’ensemble de la manière de configurer JFrog pour qu’il fasse confiance à OIDC de GitHub en tant qu’identité fédérée. Il montre également comment utiliser cette configuration dans un flux de travail GitHub Actions.

Pour un exemple de flux de travail GitHub Actions, consultez Exemple d’intégration GitHub Actions dans la documentation JFrog.

Pour un exemple de flux de travail GitHub Actions utilisant la CLI de JFrog, consultez build-publish.yml dans le référentiel jfrog-github-oidc-example.

Prérequis

  • Pour en savoir plus sur les concepts de base décrivant la façon dont GitHub utilise OIDC (OpenID Connect) ainsi que sur son architecture et ses avantages, consultez À propos du renforcement de la sécurité avec OpenID Connect.

  • Avant de continuer, vous devez planifier votre stratégie de sécurité pour veiller à ce que les jetons d’accès soient uniquement alloués de manière prévisible. Pour contrôler la façon dont votre fournisseur de cloud émet des jetons d’accès, vous devez définir au moins une condition, afin que les dépôts non approuvés ne puissent pas demander de jetons d’accès à vos ressources cloud. Pour plus d’informations, consultez « À propos du renforcement de la sécurité avec OpenID Connect ».

  • Pour être sécurisé, vous devez définir un JSON de revendications dans JFrog lors de la configuration des mappages d’identité. Pour plus d’informations, consultez « AUTOTITLE » et « À propos du renforcement de la sécurité avec OpenID Connect ».

    Par exemple, vous pouvez définir iss sur http://token.actions.githubusercontent.com, et le repository sur quelque chose comme « octo-org/octo-repo. »` Vous serez ainsi assuré que seuls les flux de travail Actions du référentiel spécifié auront accès à votre plateforme JFrog. Voici un exemple de JSON de revendications lors de la configuration des mappages d’identité.

    JSON
    {
        "iss": "http://token.actions.githubusercontent.com",
        "repository": "octo-org/octo-repo"
    }
    

Ajout du fournisseur d’identité à JFrog

Pour utiliser OIDC avec JFrog, établissez une relation d’approbation entre GitHub Actions et la plateforme JFrog. Pour plus d’informations sur ce processus, consultez OpenID Connect Integration dans la documentation JFrog.

  1. Connectez-vous à votre plateforme JFrog.
  2. Configurez l’approbation entre JFrog et vos flux de travail GitHub Actions.
  3. Configurer les mappages d'identité.

Mise à jour de votre workflow GitHub Actions

Authentification avec JFrog à l’aide d’OIDC

Dans votre fichier de flux de travail GitHub Actions, assurez-vous que vous utilisez le nom du fournisseur et l’audience que vous avez configurés dans la plateforme JFrog.

L’exemple suivant utilise les espaces réservés YOUR_PROVIDER_NAME et 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/

Conseil

Lorsque l’authentification OIDC est utilisée, l’action setup-jfrog-cli fournit automatiquement oidc-user et oidc-token comme sorties d’étape. Celles-ci peuvent être utilisées pour d’autres intégrations nécessitant une authentification avec JFrog. Pour référencer ces sorties, vérifiez que l’étape dispose d’un id explicite défini (par exemple id: setup-jfrog-cli).

Utilisation des informations d’identification OIDC dans d’autres étapes

      - name: Sign in to Artifactory Docker registry
        uses: docker/login-action@v3
        with:
          registry: $
          username: $
          password: $

Pour aller plus loin