Erstellen von OAuth 2.0-Anmeldeinformationen für GitHub Apps – JWT für GitHub-Anwendungsschwachstellen-Integration

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 9 Minuten Lesedauer
  • Führen Sie die folgenden Schritte aus, um Ihre GitHub -Apps mit dem JWT-Bearer-Token für GitHub-Anwendungsschwachstellen-Integrationzu integrieren.

    Erforderliche Rollen:
    • sn_vul.app_sec_manager und admin für Datensätze in Ihrem Now Platform.
    • Für Aufgaben in Ihrem Account GitHub ist keine Instanzrolle erforderlich.
    • Weitere Informationen zum Kontext der Schritte für dieses Setup finden Sie unter OAuth 2.0-Protokoll.

    App GitHub für GitHub-Anwendungsschwachstellen-Integrationerstellen und konfigurieren

    Erstellen Sie eine anwenderdefinierte GitHub App von Ihrem Konto GitHub, um die OAuth 2.0-Authentifizierung mit Ihrem GitHub-Anwendungsschwachstellen-Integration in Ihrer -Instanz zu aktivieren.

    Vorbereitungen

    Erforderliche Rolle: Keine Instanzrolle erforderlich

    Warum und wann dieser Vorgang ausgeführt wird

    Führen Sie diese Schritte in Ihrem Konto GitHub aus. Siehe Gebäude GitHub Apps Auf der Developer Site GitHub finden Sie Anweisungen zum Erstellen und Konfigurieren benutzerdefinierter Anwendungen.

    Prozedur

    1. Erstellen Sie in Ihrem Konto GitHub Ihre App GitHub, indem Sie zu navigieren Entwicklereinstellungen > GitHub-Apps.
    2. Geben Sie im Feld Homepage-URLden Wert https://ein.<instance-name> .service-now.com .
    3. Geben Sie im Feld Rückruf-URL für Anwenderautorisierungden Wert https://ein.<instance-name> .service-now.com/oauth_redirect.do
    4. Deaktivieren Sie im Abschnitt „Identifizieren und Autorisieren von Anwendern“ das Feld Anwenderautorisierungstoken ablaufen lassen.
    5. Wählen Sie im Abschnitt „Webhook“ das Feld Aktiv aus.
    6. Geben Sie im Feld Webhook-URLhttps://instanzname>.service-now.com/ein.
    7. Lassen Sie die verbleibenden Felder leer (Standard).
    8. Konfigurieren Sie im Abschnitt Repository-Berechtigungen die folgenden Einstellungen.
      Scannen von Code Schreibgeschützt
      Inhalt Schreibgeschützt
      Anwenderdefinierte Eigenschaften Schreibgeschützt
      Dependabot-Warnungen Schreibgeschützt
      Metadaten Schreibgeschützt
      Geheime Scan-Warnungen Schreibgeschützt
      Hinweis:
      Wenn Sie bereits eine GitHub-App verwenden und Berechtigungen aktualisieren, müssen Sie diese Berechtigungen für Ihre GitHub-App überprüfen und akzeptieren. Sie können zu Ihrer App navigieren und „Konfigurieren > Anforderung überprüfen > Neue Berechtigungen akzeptieren“auswählen.
    9. Belassen Sie die verbleibenden Berechtigungen als Kein Zugriff (Standard).
    10. Wählen Sie im Abschnitt „Ereignisse abonnieren“ die Option Bereitstellungsschutzregel aus.
    11. Klicken Sie mit der rechten Maustaste in den Header, um die Änderungen zu speichern.
    12. Installieren Sie die neu erstellte App GitHub auf den Konten Ihrer Wahl.
      1. Wählen Sie auf der Einstellungsseite für GitHub-Apps Ihre App aus.
      2. Wählen Sie in der linken Sidebar App installierenaus.
      3. Wählen Sie Installieren neben der Organisation oder dem persönlichen Account, die das richtige Repository enthält.
      4. Installieren Sie die App in allen Repositorys oder wählen Sie Repositorys aus.
        Weitere Informationen finden Sie unter GitHub-Apps installieren.
    13. Wählen Sie nach der Installation die Einstellungen (Zahnradsymbol) für Ihre App aus, und notieren Sie die folgenden Informationen.

      Diese Details sind erforderlich, wenn Sie die Anwendungsregistrierung in Ihrer Instanz Now Platform erstellen.

      • App-ID
      • Client-ID
      • Geheimer Clientschlüssel.
      • Beachten Sie das Token in der URL. Dies ist die Token-ID, die Sie in der Token-URL in Ihrer Instanz eingeben.
    14. Scrollen Sie auf der Seite nach unten, generieren Sie einen neuen privaten Schlüssel, und speichern Sie ihn auf Ihrem Computer.

    Generieren Sie das JKS-Zertifikat für das GitHub-Anwendungsschwachstellen-Integration

    Generieren Sie ein JKS-Zertifikat für die JWT-Authentifizierung für GitHub-Anwendungsschwachstellen-Integration.

    Vorbereitungen

    Sie müssen sich das Passwort merken, das Sie zum Generieren der .jks-Datei (KeyStore-Passwort) verwenden.

    Erforderliche Rolle: sn_vul.app_sec_manager

    Prozedur

    1. Erstellen Sie ein CA-signiertes Zertifikat mit dem privaten Schlüssel der App GitHub :
      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 dem privaten App-Schlüssel GitHub und dem CA-signierten 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. Erstellen Sie die JKS-Datei:
      keytool -importkeystore -srckeystore <PKCS-12-file-name>.p12 -srcstoretype pkcs12 -destkeystore <JKS-certificate-filename>.jks -deststoretype JKS
    6. Geben Sie die Passwörter für Ziel- und Quell-Schlüsselspeicher an.

    Fügen Sie Ihrer Instanz das Java-Schlüsselspeicher-Zertifikat GitHub für GitHub-Anwendungsschwachstellen-Integrationhinzu.

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

    Vorbereitungen

    Ein gültiges Java KeyStore-Zertifikat

    Erforderliche Rolle: sn_vul.app_sec_manager

    Prozedur

    1. Navigieren zu Alle > Systemdefinition > Zertifikate.
    2. Wählen Sie Neu.
    3. Füllen Sie die Felder des Formulars aus.
      Tabelle : 1. Formularfelder „X.509-Zertifikat“.
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des Datensatzes. Beispiel: My GitHub App Certificate for AVR (Mein GitHub-App-Zertifikat für AVR).
      Benachrichtigung bei Ablauf Option zum Festlegen der Benutzer, die benachrichtigt werden sollen, wenn das Zertifikat abläuft.
      Tage vor Ablauf benachrichtigen Anzahl der Tage zum Senden einer Benachrichtigung, bevor das Zertifikat abläuft.
      Aktiv Option zum Aktivieren des -Zertifikats.
      Typ Option zum Auswählen des Zertifikattyps. Wählen Sie Java Key Storeaus.
      Läuft in Tagen ab Anzahl der Tage, bis das Zertifikat abläuft.
      Schlüsselspeicher-Passwort Dem Zertifikat zugeordnetes Passwort (Hinweis: das zuvor erstellte Ziel-KeyStore-Passwort).
      Kurzbeschreibung Zusammenfassung des Zertifikats.
    4. Wählen Sie das Anhangsymbol, und hängen Sie ein JKS-Zertifikat an.
    5. Wählen Sie Speicher/Zertifikate validieren aus.
      Für gültige Zertifikatdateien wird die Meldung Valid key_store (Gültiger Schlüsselspeicher) angezeigt.

    Einen JWT-Signaturschlüssel für das JKS-Zertifikat GitHub für das GitHub-Anwendungsschwachstellen-Integrationerstellen

    Erstellen Sie einen JSON-Web-Token-Signaturschlüssel (JWT), um ihn Ihrem GitHub Java KeyStore-Zertifikat zuzuweisen.

    Vorbereitungen

    Erforderliche Rollen:
    • Administrator
    • sn_vul.app_sec_manager

    Prozedur

    1. Navigieren zu Alle > System-OAuth > JWT-Schlüssel.
    2. Wählen Sie Neu.
    3. Füllen Sie die Felder des Formulars aus.
      Tabelle : 2. Formularfelder „JWT-Schlüssel“.
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des JWT-Signaturschlüssels. Beispiel: Mein GitHub-App-JWT-Schlüssel für AVR.
      Signatur-Schlüsselspeicher Wählen Sie das Gültige JKS-Zertifikat aus, das Sie in der vorherigen Aufgabe angehängt haben.
      Schlüssel-ID Lassen Sie dieses Feld leer.
      Signaturalgorithmus Behalten Sie diesen Wert als RSA 256 bei.
      Signaturschlüssel-Passwort Passwort, das dem Signaturschlüssel zugeordnet ist. Dies ist das Passwort, das Sie zum Generieren der JKS-Datei verwendet haben.
      Aktiv Option zum Aktivieren des Schlüssels.
    4. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im grauen Header der Seite, und wählen Sie Speichernaus.

    Einen JWT-Provider für Ihren GitHub -Signaturschlüssel für GitHub-Anwendungsschwachstellen-Integrationerstellen

    Fügen Sie Ihrer -Instanz ServiceNow für GitHubeinen JSON-Web-Token-Provider (JWT) hinzu.

    Vorbereitungen

    Erforderliche Rollen:
    • Administrator
    • sn_vul.app_sec_manager

    Prozedur

    1. Navigieren zu Alle > System-OAuth > JWT-Anbieter.
    2. Wählen Sie Neu.
    3. Füllen Sie die Felder des Formulars aus.
      Tabelle : 3. Formularfelder des JWT-Providers
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des JWT-Anbieters. Beispiel: Mein GitHub-App-JWT-Provider für AVR.
      Ablaufintervall (Sek.) Anzahl in Sekunden zum Festlegen der Lebensdauer von JWT-Anbieter-Token. Sie können diese Einstellung auf Standard belassen.
      Signierkonfiguration Wählen Sie den JWT-Schlüssel aus, den Sie in den vorherigen Schritten erstellt haben.
    4. Klicken Sie mit der rechten Maustaste auf den Header des Formulars, und wählen Sie Speichernaus.
    5. Geben Sie Ihre GitHub App- App-ID für den Wert des iss -Anspruchs in der zugehörigen Liste „Standardansprüche“ ein.
      Dies ist die App-ID der App GitHub in Ihrer GitHub -Konsole, die Sie in den vorherigen Schritten erstellt haben.
    6. Aud- und Sub- Werte leer lassen (Standard).
    7. Klicken Sie mit der rechten Maustaste auf den Header des Formulars, und wählen Sie Speichernaus.

    Registrieren Sie GitHub als OAuth-Provider (JWT) für den GitHub-Anwendungsschwachstellen-Integration

    Verwenden Sie die Informationen, die während der Konfiguration des App-Accounts GitHub von generiert wurden, um GitHub als OAuth-Anbieter zu registrieren und der Instanz die Anforderung von OAuth 2.0-Token zu gestatten.

    Vorbereitungen

    Erforderliche Rollen:
    • Administrator
    • sn_vul.app_sec_manager

    Prozedur

    1. Navigieren zu Alle > System-OAuth > Applikationsregistrierung.
    2. Wählen Sie Neu.
      Die Frage Welche Art von OAuth-Anwendung? Meldung wird angezeigt.
    3. Wählen Sie Verbindung zu einem fremden OAuth-Provider herstellen aus.
    4. Füllen Sie die Felder des Formulars aus.
      Tabelle : 4. Formularfelder „Anwendungsregistrierung“.
      Feld Beschreibung
      Name Name zur eindeutigen Identifizierung des Datensatzes. Geben Sie beispielsweise My GitHub App Provider for AVRein.
      Client-ID Client-ID Ihrer GitHub -App. Die Client-ID stammt aus der Anwendung GitHub in Ihrer Konsole GitHub, die Sie in den vorherigen Schritten erstellt haben. Diese ID ist im Abschnitt „Info“ Ihrer GitHub App-Konfiguration in GitHubverfügbar.
      Zugänglich Behalten Sie den aktuellen Wert für diese Einstellung bei.
      Geheimer Clientschlüssel Geheimer Clientschlüssel Ihrer App GitHub. Der geheime Clientschlüssel stammt aus der Anwendung GitHub in Ihrer GitHub -Konsole, die Sie in den vorherigen Schritten erstellt haben. Diese ID ist im Abschnitt „Info“ Ihrer GitHub App-Konfiguration in GitHubverfügbar.
      Aktiv Option zum Aktivieren des Schlüssels. Lassen Sie dies ausgewählt.
      Autorisierungs-URL Diese URL wird automatisch generiert.
      Token-URL Die Position des Tokenendpunkts, den die Instanz zum Abrufen und Aktualisieren von Token verwendet. Geben Sie das Token aus der URL in Ihrer App GitHub ein. Dies ist das Token, das in der URL angezeigt wird, nachdem Ihre App in GitHubinstalliert wurde. Wählen Sie im Abschnitt „App installieren“ in Ihrer GitHub-App-Konfiguration in GitHubdas Zahnrad aus. Das Token wird in der Webseiten-URL angezeigt.
      OAuth-API-Skript Option, mit der Sie auf eine geänderte OAuthUtil-Skripteinbindung verweisen können. Wählen Sie OAuthGitHubJWTHandleraus.
      Standardgewährungstyp Typ der Erteilung, die der Anwendungsregistrierung zugeordnet ist. Wählen Sie JWT Beareraus.
    5. Behalten Sie für die restlichen Formularfelder den Standardwert bei.
    6. Klicken Sie mit der rechten Maustaste auf den Header des Formulars, und wählen Sie Speichernaus.
    7. Scrollen Sie zur zugehörigen Liste OAuth-Entitätsprofile, wählen Sie sie aus, und öffnen Sie das Standardprofil, das in der Liste erstellt wurde.
    8. Füllen Sie das Feld JWT-Provider mit dem zuvor erstellten JWT-Provider aus, und speichern Sie das Formular.
    9. Kehren Sie zur Anwendungsregistrierungsdatei zurück, und speichern Sie sie.
    10. Navigieren zu Schlüsselverwaltung > Modulzugriffsrichtlinien > Alle.
    11. Wählen Sie die Richtlinie so aus, dass „com_snc_platform_security_oauth_glideencrypter“ als Modulfeldwert Krypto und „OAuthGitHubJWTHandler“ als Skripteinbindung im Skriptfeld „Ziel“ angezeigt wird.

      In der folgenden Abbildung wird com_snc_platform_security_oauth_glideencrypter als Wert für das Feld Krypto-Modul ausgewählt. Das Feld Skripttabelle zeigt die Tabelle „Skripteinbindung“ [sys_script_include] an, und der Wert des Skriptfelds „Ziel“ ist OAuthGitHubJWTHandler.

      Krypto-Modulfeld mit Skripteinbindung „OAuthGitHubJWTHandler“.

    12. Wählen Sie Aktualisieren.

      Typ: Skript und Ergebnis: Nachverfolgung

      Wie in der vorherigen Abbildung gezeigt, ändert sich der Wert im Feld Richtlinienname, und die Felder Skripttabelle und Zielskript werden nicht mehr angezeigt.
    13. Stellen Sie sicher, dass das Feld Ergebnis auf Nachverfolgen festgelegt ist, und speichern Sie Ihre Änderungen.

    Erstellen Sie Anmeldeinformationen und Verbindungen für die GitHub-Anwendungsschwachstellen-Integration

    Erstellen Sie einen Anmeldeinformationsdatensatz für den zuvor erstellten App-Anbieter GitHub, um Aktionen zu autorisieren.

    Vorbereitungen

    Erforderliche Rollen:
    • Administrator
    • sn_vul.app_sec_manager

    Prozedur

    1. Navigieren zu Anmeldeinformationen und Verbindungen > Anmeldeinformationen.
    2. Wählen Sie Neu.
    3. Wählen Sie OAuth 2.0-Anmeldeinformationen aus.
    4. Wählen Sie Neu und füllen Sie die Felder aus.
      FeldBeschreibung
      Name Eindeutiger Name für den Datensatz.
      Betrifft Wählen Sie die OAuth 2.0-Anmeldeinformationen aus der Liste aus.
      OAuth-Einheitenprofil Wählen Sie das Suchsymbol, und suchen Sie das Entitätsprofil, das Sie in den vorherigen Schritten erstellt haben.
      Weitere Felder Belassen Sie diese Felder in ihren Standardeinstellungen.
    5. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im Header der Seite, und wählen Sie Speichernaus.
      Die Liste der Anmeldeinformationen wird angezeigt.
    6. Öffnen Sie den soeben erstellten Datensatz, und wählen Sie den zugehörigen Link OAuth-Token abrufen aus.
      Es wird eine Meldung angezeigt, dass das OAuth-Token erfolgreich importiert wurde.
    7. Navigieren zu Anmeldeinformationen und Verbindungen > Verbindungen.
    8. Wählen Sie Neu.
    9. Wählen Sie HTTP(s)-Verbindungaus.
    10. Wählen Sie Neu und füllen Sie die Felder aus.
      FeldBeschreibung
      Name Name für den Datensatz.
      Anwendung Schreibgeschützt.
      Übergeordneter Alias (optional) Wählen Sie das Suchsymbol und anschließend eines aus der Liste aus.
      Typ Verbindung und Anmeldeinformationen
      Verbindungstyp HTTP
      Unterstützt mehrere aktive Verbindungen (optional) Deaktiviert.
      Standard-Wiederholungsrichtlinie Standardmäßige HTTP-Wiederholungsrichtlinie
      Konfigurationsvorlage Leer lassen.
    11. Wählen Sie Absenden.
      Die Liste der Aliasse für Verbindungen und Anmeldeinformationen wird angezeigt.
    12. Öffnen Sie Ihren Datensatz, und wählen Sie auf der Registerkarte der zugehörigen Liste „Verbindungen“ Neu, und füllen Sie die Felder im Datensatz HTTP-Verbindung aus.
      FeldBeschreibung
      Name Name für den Datensatz.
      Aktiv Aktiviert
      Referenz Wählen Sie den Anmeldeinformationsdatensatz aus, den Sie in den vorherigen Schritten erstellt haben.
      Verbindungsalias Ihr Datensatz wird angezeigt.
      URL-Builder Deaktiviert.
      Verbindungs-URL

      Dies ist die Basis-URL: https://api.github.com für Enterprise. Die lokale ist Ihre GitHub-Endpunkt-URL.

      MID-Server verwenden (optional) MID-Server ist für lokal erforderlich. Für Enterprise ist dies optional.
      Verbindungszeitüberschreitung Geben Sie einen Wert ein.
    13. Wählen Sie Absenden.
      Die Liste der Aliasse für Verbindungen und Anmeldeinformationen wird angezeigt. Sie können jetzt die Schritte für Konfigurieren Sie die Eigenschaften GitHub-Anwendungsschwachstellen-Integrationausführen. Im Feld Verbindung geben Sie die Anmeldeinformationen ein, die Sie in den vorherigen Schritten erstellt haben.