Übersicht
OpenID Connect (OIDC) ermöglicht es Ihren GitHub Actions-Workflows, sich bei JFrog zu authentifizieren, um Artefakte herunterzuladen und zu veröffentlichen, ohne JFrog-Passwörter, Token oder API-Schlüssel in GitHub zu speichern.
In diesem Handbuch finden Sie eine Übersicht darüber, wie Sie JFrog so konfigurieren, dass das OIDC von GitHub als Verbundidentität als vertrauenswürdig angesehen wird. Außerdem erfahren Sie, wie Sie diese Konfiguration in einem GitHub Actions-Workflow nutzen können.
Ein Beispiel für einen GitHub Actions-Workflow finden Sie unter Beispiel für GitHub Actions-Integration in der JFrog-Dokumentation.
Ein Beispiel für einen GitHub Actions-Workflow mit Nutzung der JFrog CLI finden Sie unter build-publish.yml
im jfrog-github-oidc-example
-Repository.
Voraussetzungen
-
Informationen zu den grundlegenden Konzepten, nach denen GitHub OpenID Connect (OIDC) sowie die Architektur und Vorteile des Protokolls verwendet, findest du unter Informationen zur Sicherheitshärtung mit OpenID Connect.
-
Bevor du fortfährst, musst du deine Sicherheitsstrategie planen, um sicherzustellen, dass Zugriffs-Token nur auf vorhersehbare Weise zugewiesen werden. Zur Steuerung, wie dein Cloud-Anbieter Zugriffs-Token ausgibt, musst du mindestens eine Bedingung definieren, damit nicht vertrauenswürdige Repositorys keine Zugriffs-Token für deine Cloud-Ressourcen anfordern können. Weitere Informationen finden Sie unter Informationen zur Sicherheitshärtung mit OpenID Connect.
-
Beachte, dass du bestimmte Werte in der folgenden Dokumentation ersetzen musst, wenn du den Leitfaden auf GHE.com verwendest. Weitere Informationen findest du unter Informationen zur Sicherheitshärtung mit OpenID Connect.
-
Um sicher zu sein, müssen Sie beim Konfigurieren von Identitätszuordnungen ein „Claims JSON“ in JFrog festlegen. Weitere Informationen findest du unter AUTOTITLE und Informationen zur Sicherheitshärtung mit OpenID Connect.
Sie können z. B.
iss
aufhttps://token.actions.githubusercontent.com
undrepository
auf etwas in der Art von „octo-org/octo-repo“ festlegen. Dadurch wird gewährleistet, dass nur Aktionen-Workflows aus dem angegebenen Repository Zugriff auf Ihre JFrog-Plattform haben. Im Folgenden finden Sie ein Beispiel für „Claims JSON“ beim Konfigurieren von Identitätszuordnungen.JSON { "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
{ "iss": "https://token.actions.githubusercontent.com", "repository": "octo-org/octo-repo" }
Hinzufügen des Identitätsanbieters zu JFrog
Um OIDC mit JFrog zu verwenden, richten Sie eine Vertrauensstellung zwischen GitHub Actions und der JFrog-Plattform ein. Weitere Informationen zu diesem Prozess finden Sie unter Integration von OpenID Connect in der JFrog-Dokumentation.
- Melden Sie sich bei Ihrer JFrog-Plattform an.
- Konfigurieren Sie die Vertrauensstellung zwischen JFrog und Ihren GitHub Actions-Workflows.
- Konfigurieren von Identitätszuordnungen
Aktualisieren deines GitHub Actions-Workflows
Authentifizieren bei JFrog mit OIDC
Achten Sie bei Ihrer GitHub Actions-Workflowdatei darauf, den Anbieternamen und die Zielgruppe zu verwenden, die Sie in der JFrog-Plattform konfiguriert haben.
Im folgenden Beispiel werden die Platzhalter YOUR_PROVIDER_NAME
und YOUR_AUDIENCE
verwendet.
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/
Tipp
Wenn die OIDC-Authentifizierung verwendet wird, gibt die setup-jfrog-cli
-Aktion automatisch oidc-user
und oidc-token
als Schrittausgabe zurück.
Diese können für andere Integrationen verwendet werden, die eine Authentifizierung mit JFrog erfordern.
Um auf diese Ausgaben zu verweisen, stelle sicher, dass für den Schritt explizit ein id
-Wert definiert ist (z. B. id: setup-jfrog-cli
).
Verwenden von OIDC-Anmeldeinformationen in anderen Schritten
- name: Sign in to Artifactory Docker registry
uses: docker/login-action@v3
with:
registry: $
username: $
password: $
Weitere Informationen
- OpenID Connect Integration in der JFrog-Dokumentation
- Identity Mappings in der JFrog-Dokumentation
- AUTOTITLE