OAuth 2,0-Anmeldeinformationen für GitHub Apps: JWT

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 7 Minuten Lesedauer
  • Führen Sie die folgenden Schritte aus, um Ihre GitHub-Apps mit dem JWT-Bearer-Token zu integrieren.

    Bevor Sie beginnen

    Erforderliche Rolle:

    • oauth_admin in DevOps Change-Geschwindigkeit.
    • Administratoraccount in GitHub.
      Hinweis:
      Der OAuth 2,0-JWT-Gewährungstyp wird für GitHub und GitHub Enterprise mit MID-Server unterstützt.

    Konfigurieren Sie GitHub App in Ihrem GitHub Account (JWT)

    Erstellen Sie eine anwenderdefinierte GitHub App aus Ihrem GitHub Account zum Aktivieren der OAuth 2,0-Authentifizierung mit Ihrem ServiceNow Instanz.

    Vorbereitungen

    GitHub Anforderung: GitHub App für die Integration mit konfiguriert ServiceNow

    Erforderliche Rolle: Keine Instanzrolle erforderlich

    Warum und wann dieser Vorgang ausgeführt wird

    Führen Sie diese Schritte aus Ihrem aus GitHub Account. Siehe Gebäude GitHub Apps Auf der GitHub Entwickler-Website für Anweisungen zum Erstellen und Konfigurieren anwenderdefinierter Anwendungen.

    Prozedur

    1. Von Ihrem GitHub Account erstellen Sie Ihren GitHub App, indem Sie zu navigieren Entwicklereinstellungen > GitHub-Appsan.
    2. In Homepage-URL Feld eingeben https://<instance-name>.service-now.com .
    3. In Rückruf-URL der Anwenderautorisierung Feld eingeben https://<instance-name>.service-now.com/oauth_redirect.do .
    4. In Identifizieren und Autorisieren von Anwendern Deaktivieren Sie den Abschnitt Anwenderautorisierungstoken ablaufen lassen Feld.
    5. In Webhook Wählen Sie den Abschnitt aus Aktiv Feld.
    6. In Webhook-URL Feld eingeben https://<instance-name>.service-now.com/api/sn_devops/v2/devops/tool/apps?toolId=<Tool ID> , Wobei die Tool-ID Ihre ist GitHub Tool-ID (sys_ID) von DevOps Change-Geschwindigkeit.
      Hinweis:
      Wenn Sie das Tool neu erstellen und nicht über die Tool-ID verfügen, können Sie die Webhook-URL ohne Tool-ID eingeben und später konfigurieren. So konfigurieren Sie später:
      1. Navigieren Sie zur Tooldatensatzseite des verbundenen Tools.
      2. Wählen Sie Aus Konfigurieren Sie die GitHub-App , Und wählen Sie dann aus Automatische Konfiguration mit vorhandenem Token .

        Automatische Konfiguration mit vorhandenem Token.

      Dadurch wird die Webhook-URL der GitHub-App automatisch konfiguriert.
      Sie können die Tool-ID auf eine der folgenden Arten abrufen:
      • Beim Herstellen der Verbindung mit dem Tool in DevOps Change-Geschwindigkeit, Die Tool-ID ist in der Seiten-URL verfügbar. Beispiel: https://<instance-name>.service-now.com/.../sn_devops_tool/<Tool ID>/... .
      • Sie können die Webhook-URL aus kopieren GitHub Tooldatensatzseite in DevOps Change-Geschwindigkeit, Von Konfigurieren > Manuell konfigurieren > Webhook-URLan.
    7. Lassen Sie die verbleibenden Felder leer (Standard).
    8. In Repository-Berechtigungen Konfigurieren Sie die folgenden Einstellungen.
      Aktion Schreibgeschützt
      Überprüfungen Schreibgeschützt
      Inhalte Schreibgeschützt
      Bereitstellungen Lesen und schreiben
      Umgebungen Schreibgeschützt
      Metadaten Schreibgeschützt
      Abrufanforderungen Schreibgeschützt
      Geheimnisse Schreibgeschützt
      Webhooks Lesen und schreiben
      Hinweis:
      Lese- und Schreibberechtigungen sind erforderlich, um Webhooks von zu konfigurieren ServiceNow.
      Hinweis:
      Wenn Sie bereits eine GitHub-App verwenden und eine der Berechtigungen aktualisieren, müssen Sie diese Berechtigungen für Ihre GitHub-App überprüfen und akzeptieren. Sie können zu Ihrer App navigieren und auswählen Konfigurieren > Anforderung überprüfen > neue Berechtigungen akzeptieren .
    9. Belassen Sie die verbleibenden Berechtigungen als Kein Zugriff (Standard).
    10. In Abonnieren Sie Ereignisse Wählen Sie den Abschnitt aus Bereitstellungsschutzregel Option.
    11. Speichern Sie die Änderungen.
    12. Nach dem Erstellen von GitHub App generieren Sie einen neuen privaten Schlüssel, und speichern Sie ihn auf Ihrem Computer.
    13. Installieren Sie neu erstellte GitHub App in den Accounts Ihrer Wahl.
      1. Wählen Sie auf der Seite „GitHub-Apps-Einstellungen“ Ihre App aus.
      2. Wählen Sie in der linken Sidebar aus Installieren Sie Die App .
      3. Wählen Sie Aus Installieren Neben der Organisation oder dem persönlichen Account, das das richtige Repository enthält.
      4. Installieren Sie die App auf allen Repositorys, oder wählen Sie Repositorys aus.
        Weitere Informationen finden Sie unter GitHub-Apps werden installiert .

    Fügen Sie der DevOps-Eigenschaft eine Client-ID hinzu

    Nach der Konfiguration Ihrer GitHub-App müssen Sie sicherstellen, dass das Client-ID-Präfix (die ersten 3 oder mehr Zeichen der ID) der DevOps-Eigenschaft hinzugefügt wird: Client-ID-Bezeichner für GitHub-App .

    Vorbereitungen

    Erforderliche Rolle: sn_devops.admin

    Prozedur

    1. Navigieren zu Arbeitsbereiche > DevOps – Change-Arbeitsbereich > Administration > Systemkonfiguration > Eigenschaftenan.
    2. Ändern Sie den Anwendungsbereich in DevOps-Datenmodell.
    3. Suchen Sie nach der Eigenschaft: Client-ID-Bezeichner für GitHub-App [sn_devops.github_oauth_Client_ID_Specifier].
    4. Geben Sie das Client-ID-Präfix (die ersten 3 oder mehr Zeichen der ID) Ihrer GitHub-App für die Eigenschaft ein.
    5. Wählen Sie Speichern.

    Generieren Sie das Java-Schlüsselspeicher-Zertifikat für GitHub

    Generieren Sie ein Java Keystore-(JKS-)Zertifikat für die JWT-Authentifizierung.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Prozedur

    1. Erstellen Sie ein VON CA signiertes Zertifikat mit GitHub Privater App-Schlüssel:
      openssl req -new -x509 -key <file-name>.pem -out <certificate-name>.pem -days 1095
    2. Geben Sie die erforderlichen Details ein.
    3. Erstellen Sie die PKCS 12-Datei mit GitHub Privater App-Schlüssel und VON CA signiertes Zertifikat:
      openssl pkcs12 -export -in <certificate-name>.pem -inkey <file-name>.pem -certfile <certificate-name>.pem -out <PKCS-12-file-name>.p12 
    4. Geben Sie das Exportpasswort an.
    5. JKS-Datei erstellen:
      keytool -importkeystore -srckeystore <PKCS-12-file-name>.p12 -srcstoretype pkcs12 -destkeystore <JKS-certificate-filename>.jks -deststoretype JKS
    6. Geben Sie die Passwörter des Ziel- und Quellschlüsselspeichers an.

    Hängen Sie an GitHub Java-Schlüsselspeicher-Zertifikat für Ihre Instanz

    Aktivieren Sie die JWT Bearer-Token-Authentifizierung, indem Sie das gültige GitHub Java Keystore (JKS)-Zertifikat an Ihre ServiceNow-Instanz anhängen.

    Vorbereitungen

    Stellen Sie die Verfügbarkeit eines gültigen Java-Schlüsselspeicher-Zertifikats sicher.

    Erforderliche Rolle: Administrator

    Prozedur

    1. Navigieren zu Alle > Systemdefinition > Zertifikatean.
    2. Wählen Sie Neu.
    3. Füllen Sie im Formular die Felder aus.
      Tabelle : 1. X.509-Zertifikatformularfelder
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des Datensatzes. Beispiel: Mein GitHub-App-Zertifikat .
      Benachrichtigung bei Ablauf Option zum Festlegen der Anwender, die benachrichtigt werden sollen, wenn das Zertifikat abläuft.
      Tage vor Ablauf benachrichtigen Anzahl der Tage, die eine Benachrichtigung gesendet werden soll, bevor das Zertifikat abläuft.
      Aktiv Option zum Aktivieren des Zertifikats.
      Typ Option zum Auswählen des Zertifikattyps. Wählen Sie Aus Java-Schlüsselspeicher .
      Läuft in Tagen ab Anzahl der Tage, bis das Zertifikat abläuft.
      Schlüsselspeicher-Passwort Passwort, das dem Zertifikat zugeordnet ist (Hinweis: Das zuvor erstellte Zielschlüsselspeicher-Passwort).
      Kurzbeschreibung Zusammenfassung des Zertifikats.
    4. Wählen Sie das Anhangssymbol ( Symbol „Anhänge“) Und hängen Sie ein JKS-Zertifikat an.
    5. Wählen Sie Aus Validiert Speicher/Zertifikate .

    Erstellen Sie einen JWT-Signaturschlüssel für GitHub JKS-Zertifikat

    Erstellen Sie einen JSON-Webtoken-Signaturschlüssel (JWT), der Ihrem zugewiesen werden soll GitHub Java-Schlüsselspeicher-Zertifikat.

    Vorbereitungen

    Erforderliche Rolle: admin, sn_devops.admin

    Prozedur

    1. Navigieren zu Alle > System-OAuth > JWT-Schlüsselan.
    2. Wählen Sie Neu.
    3. Füllen Sie im Formular die Felder aus.
      Tabelle : 2. JWT-Schlüssel-Formularfelder
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des JWT-Signaturschlüssels. Beispiel: Mein GitHub-App-JWT-Schlüssel .
      Signatur-Schlüsselspeicher Gültiges JKS-Zertifikat, das an die vorherige Aufgabe angehängt wurde. Beispiel: Mein GitHub-App-Zertifikat .
      Schlüssel-ID Eindeutige ID zur Identifizierung des Schlüssels, der verwendet wird, wenn mehrere Schlüssel zum Signieren von Token verwendet werden.
      Signaturalgorithmus Algorithmus zum Signieren mit dem JWT-Schlüssel (Tipp: RSA 256).
      Signaturschlüssel-Passwort Passwort, das dem Signaturschlüssel zugeordnet ist (Hinweis: Das zuvor erstellte Quellschlüsselspeicher-Passwort).
      Aktiv Option zum Aktivieren des Schlüssels.
    4. Wählen Sie Absenden.

    Erstellen Sie einen JWT-Provider für Ihren GitHub Signaturschlüssel

    Fügen Sie Ihrem einen JSON-Webtoken-Anbieter (JWT) hinzu ServiceNow Instanz für GitHub.

    Vorbereitungen

    Erforderliche Rolle: admin, sn_devops.admin

    Prozedur

    1. Navigieren zu Alle > System-OAuth > JWT-Anbieteran.
    2. Wählen Sie Neu.
    3. Füllen Sie im Formular die Felder aus.
      Tabelle : 3. Formularfelder des JWT-Anbieters
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des JWT-Providers. Beispiel: Mein GitHub-App-JWT-Provider .
      Ablaufintervall (Sek.) Anzahl in Sekunden zum Festlegen der Lebensdauer von JWT-Provider-Token (Hinweis: Sie können sie als Standard belassen).
      Signierkonfiguration Gültiger JWT-Signaturschlüssel wurde zuvor erstellt. Beispiel: Mein GitHub-App-JWT-Schlüssel .
    4. Klicken Sie mit der rechten Maustaste auf den Formularheader, und wählen Sie aus Speichern .
    5. Geben Sie ein GitHub App App-ID (Verfügbar in Über Abschnitt von GitHub App-Konfiguration in GitHub) Als Wert von iss Anspruch in der zugehörigen Liste Standardansprüche.
    6. Verlassen aud Und Untergeordnet Werte leer (Standard).

    Registrieren GitHub Als OAuth-Provider (JWT)

    Verwenden Sie die während generierten Informationen GitHub Zu registrierende App-Account-Konfiguration GitHub Als OAuth-Provider und zulassen, dass die Instanz OAuth 2,0-Token anfordert.

    Vorbereitungen

    Erforderliche Rolle: admin, sn_devops.admin

    Prozedur

    1. Navigieren zu Alle > System-OAuth > Applikationsregistrierungan.
    2. Wählen Sie Neu.
      Die Welche Art von OAuth-Anwendung? Nachricht wird angezeigt.
    3. Wählen Sie Verbindung zu einem fremden OAuth-Provider herstellen aus.
    4. Füllen Sie im Formular die Felder aus.
      Tabelle : 4. Formularfelder „Anwendungsregistrierung“
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des Datensatzes. Geben Sie beispielsweise ein Mein GitHub-App-Anbieter .
      Client-ID Client-ID von GitHub App (Tipp: Verfügbar in Über Abschnitt von GitHub App-Konfiguration in GitHub).
      Geheimer Clientschlüssel Geheimer Clientschlüssel von GitHub App (Tipp: Verfügbar in Über Abschnitt von GitHub App-Konfiguration in GitHub).
      OAuth-API-Skript Option, mit der Sie auf eine geänderte OAuthUtil-Skripteinbindung verweisen können. Wählen Sie Aus OAuthDevOpsGitHubJWTHandler .
      Standardgewährungstyp Typ der Gewährung, die der Anwendungsregistrierung zugeordnet ist. Wählen Sie Aus JWT-Bearer .
      Token-URL Die Position des Tokenendpunkts, den die Instanz zum Abrufen und Aktualisieren von Token verwendet.

      Geben Sie für die Cloud-Version Folgendes ein: https://api.github.com/app/installations/<installation_id>/Access_Token .

      Geben Sie für Enterprise-Version Folgendes ein: https://<HOST_URL>/api/v3/App/Installations/<installation_id>/Access_Token .

      Um die Installations-ID zu erhalten, wechseln Sie in Ihrer GitHub-App-Konfiguration in GitHub zum Abschnitt App installieren, und wählen Sie das Zahnradsymbol aus, um Ihre App zu konfigurieren. Die Installations-ID befindet sich in der URL der Webseite. Beispiel: https://github.com/settings/installations/<installation_id>.

    5. Belassen Sie die restlichen Formularfelder als Standard.
      Formular „Anwendungsregistrierung“
    6. Klicken Sie mit der rechten Maustaste auf den Formularheader, und wählen Sie aus Speichern .
    7. Öffnen Sie das in erstellte Standardprofil OAuth-Entitätsprofile Zugehörige Liste.
    8. Füllen Sie aus JWT-Anbieter Feld mit dem zuvor erstellten JWT-Provider, und speichern Sie das Formular.
    9. Navigieren Sie zu Schlüsselverwaltung > Modulzugriffsrichtlinien > Alle .
    10. Wählen Sie die Richtlinie aus, die hat Com_snc_Platform_Security_oauth_Glideencrypter Als Krypto-Modul Feldwert und Skripteinbindung: OAuthDevOpsGitHubJWTHandler Als Zielskript Feldwert.
    11. Stellen Sie sicher, dass Ergebnis Feld ist auf festgelegt Nachverfolgen Und speichern Sie die Änderungen.
      Formular, das anzeigt, dass das Ergebnisfeld auf Nachverfolgung festgelegt ist.

    Erstellen Sie einen Anmeldeinformationsdatensatz für GitHub App-Provider (JWT)

    Erstellen Sie einen Anmeldeinformationsdatensatz für GitHub App-Anbieter, der zuvor zum Autorisieren von Aktionen erstellt wurde.

    Vorbereitungen

    Erforderliche Rolle: admin, sn_devops.admin

    Prozedur

    1. Navigieren zu Alle > Verbindungen und Anmeldeinformationen > Anmeldeinformationenan.
    2. Wählen Sie Neu.
      Die Welche Art von Anmeldeinformationen möchten Sie erstellen? Nachricht wird angezeigt.
    3. Wählen Sie OAuth 2.0-Anmeldeinformationen aus.
    4. Füllen Sie im Formular die Felder aus.
      Tabelle : 5. Formularfelder für OAuth 2,0-Anmeldeinformationen
      Feld Wert erforderlich
      Name Name zur eindeutigen Identifizierung des Datensatzes. Geben Sie beispielsweise ein Meine GitHub-App-Anmeldeinformationen .
      Aktiv Option zum Aktivieren des Datensatzes.
      OAuth-Einheitenprofil Standard-OAuth-Entitätsprofil, das in der Anwendungsregistrierung erstellt wurde.
    5. Speichern Sie den Datensatz.
    6. Wählen Sie aus OAuth-Token abrufen Zugehöriger Link zum Generieren des OAuth-Tokens.