Konfigurieren Sie einen OAuth-OIDC-Provider für die Annahme von Drittanbieter-Token

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 4 Minuten Lesedauer
  • Sie können einen OAuth-OIDC-Anbieter so konfigurieren, dass er Identitätstoken akzeptiert, die von einem OIDC-Drittanbieter mithilfe eingehender API-Aufrufe mit der Option Single Sign-on (Mehrere Anbieter-SSO) generiert wurden.

    Vorbereitungen

    Erforderliche Rolle: admin

    Warum und wann dieser Vorgang ausgeführt wird

    Now Platform unterstützt neben eingehenden API-Aufrufen auch OIDC durch unsere externe Implementierung von Single Sign-On (SSO). Ein Beispiel für eine OIDC-Anbieterkonfiguration finden Sie unter Azure ADeinrichten. Ein SSO-spezifisches Beispiel für eine OIDC-Providerkonfiguration finden Sie unter OpenID Connect-Konfiguration (OIDC) für Single Sign-on (SSO) erstellen.

    Prozedur

    1. Navigieren zu Alle > System-OAuth > Applikationsregistrierungan.
      • Wählen Sie Neu, wählen Sie Konfigurieren Sie einen OIDC-Anbieter, um ID-Token zu verifizieren, und füllen Sie dann das Formular aus.
      • Wählen Sie eine vorhandene Vorlage für einen OIDC-Anbieter (ADFS, Auth0, Azure AD, Google, Okta) aus, und füllen Sie das Formular aus.
        Hinweis:
        OIDC-Provider-Vorlagen sind nach dem Laden von Demodaten mit dem Plugin OAuth 2.0 verfügbar.
      Feld Beschreibung
      Name Ein eindeutiger Name, der die OAuth-OIDC-Entität identifiziert
      Client-ID Die Client-ID der Anwendung, die beim OAuth-OIDC-Server des Drittanbieters registriert ist. Dieser Wert muss mit dem Wert der aud-Anforderung im JWT-Token übereinstimmen.
      OAuth-API-Skript Ein Skript, mit dem Sie Anforderungen und Antworten an einen externen OAuth-Provider anpassen können.
      OAuth-OIDC-Providerkonfiguration Die OIDC-Anbieter (ADFS, Auth0, Azure AD, Google, Okta) können zur Validierung des JWT-Tokens verwendet werden. Wählen Sie den Datensatz Ihrer OIDC -Anbieterkonfiguration aus, um zu überprüfen, ob der Anwenderanspruch und das Anwenderfeld entsprechend eingestellt sind.
      Füllen Sie außerdem folgende Felder aus:
      • JTI-Anspruchzertifizierung aktivieren: Wenn diese Option aktiviert ist,validiert die Validierung des JWT-Tokens ServiceNow auch das vom Anbieter gesendete JTI.
      • OIDC-Metadaten-URL: Details der bekannten Konfiguration des OIDC-Anbieters.
      Hinweis:
      Wenn die Validierung nicht aktiviert ist, kann das JTI nicht validiert werden, unabhängig davon, ob es im JWT-Token vorhanden ist. Der Anspruchsname im Token muss jti lauten.
      Taktversatz Die Anzahl in Sekunden, nach der die Einschränkung als gültig betrachtet werden soll. Der Standardwert ist 300.
      Tokenbeschränkungen erzwingen Wählen Sie diese Option aus, um nur Token für die Verwendung mit APIs zu aktivieren, die zum Aktivieren des Authentifizierungsprofils festgelegt sind. Sie können den Gewährungszugriff mithilfe einer API-Zugriffsrichtlinie festlegen. Weitere Informationen finden Sie unter REST-API-Zugriffsrichtlinie erstellen.

      Standard: Nicht ausgewählt.

      Aktiv Aktivieren Sie das Kontrollkästchen, um die OAuth-Anwendung zu aktivieren.
      Clienttyp Wählen Sie den Clienttyp basierend auf dem Typ Ihres Clients aus. Optionen:
      • iFrame – eingebettet
      • Integration als Anwender
      • Integration als Service
      Weitere Informationen finden Sie unter Konfigurieren Sie den Clienttyp für OAuth- und SSO-Datensätze.
    2. Wählen Sie Absenden.
      Der Datensatz wird in der Tabelle der Anwendungs-Registrys [oauth_entity] gespeichert.
      Wenn Ihre -Instanz Token und Autorisierungscodes ausgibt, erstellt sie in der Tabelle „Anwendungsregistrierungen“ [oauth_entity] einen Datensatz vom Typ Externer OIDC-Anbieter. Weitere Informationen finden Sie unter .
    3. Wahlweise: Wechseln Sie zur zugehörigen Liste im Datensatz „OAuth-Entitätsprofile“, um ein vom System generiertes Standardprofil für den neuen OAuth-Provider ohne Bereich zu validieren.
      Sie können ein OAuth-Provider-Profil ändern oder hinzufügen, einschließlich Name, Erteilungstyp und OAuth-Bereich.
    4. Wahlweise: Wechseln Sie zur zugehörigen Liste im Datensatz „OAuth-Entitätsbereiche“, um alle verfügbaren OAuth-Bereiche für diesen OAuth-Provider zu definieren.
      Die definierten Umfänge können beim Erstellen oder Aktualisieren eines Profils ausgewählt werden. Jeder definierte OAuth-Bereich enthält einen Namen und einen Bereich, die Sie der Anbieterspezifikation entnehmen müssen, z. B. einen Lesebereich oder einen Schreibbereich. Jeder Bereich muss separat definiert werden.
    5. Wahlweise: Wechseln Sie zur zugehörigen Liste im Datensatz Anwenderbereitstellung, um die automatische Anwenderbereitstellung zu aktivieren.
      OptionBezeichnung
      Anwender automatisch bereitstellen Option zum Erzwingen der Authentifizierung für Anwender.
      Bereitstellungsdatenquelle Die Datenquelle, die zum Transformieren eines OIDC-Tokens in einen ServiceNow -Benutzer verwendet werden soll. Verwenden Sie die Liste Nachschlagen, um die vordefinierte Datenquellenvorlage auszuwählen, und öffnen Sie dann den Datensatz, um die Zuordnung der transformierten Tabelle zu konfigurieren. Bei der Konfiguration der Transformationszuordnung stammen die Quellfelder aus der Tabelle JWT token, die Zielfelder aus der Tabelle sys_user.
      Auf bereitgestellte Anwender angewendete Anwenderrollen Die Anwenderrollen, die auf die neu bereitgestellten ServiceNow -Anwender angewendet werden.

    Im Folgenden finden Sie ein Beispiel für eine cURL-Anforderung zum Aufrufen eines REST-API-Aufrufs

    Rufen Sie einen REST-API-Aufruf auf.

    Führen Sie die nachfolgenden Schritte durch:

    • Registrieren Sie die App beim OpenID Connect-Anbieter.
    • Konfigurieren Sie die OAuth-OIDC-Entität.
    • Konfigurieren Sie den OIDC-Provider:
      Tabelle : 1. OIDC-Provider
      OIDC-Provider Name des OIDC-Anbieters.
      OIDC-Metadaten-URL Geben Sie die OIDC-Metadaten-URL an (bekannte Konfigurations-URL). Diese Informationen werden verwendet, um die öffentlichen Schlüssel zum Validieren des Tokens über den JWKS- Endpunkt abzurufen.
      Anwenderanspruch Der Anspruch, der anhand der Anwendertabelle validiert wird.
      Anwenderfeld Anwenderanspruch, der den Anwenderdatensatz identifiziert.
      JTI-Anspruchzertifizierung aktivieren Wenn diese Option aktiviert ist, validiert die Validierung des ServiceNow JWT-Tokens auch die vom Anbieter gesendete JTI.
      Hinweis:
      Wenn die Validierung nicht aktiviert ist, kann das JTI nicht validiert werden, unabhängig davon, ob es im JWT-Token vorhanden ist. Der Anspruchsname im Token muss jti lauten. Diese Informationen werden verwendet, um Replay-Angriffe zu verhindern.
    • Rufen Sie ein JWT-Token ab.
    • Rufen Sie einen REST-API-Aufruf auf.
      • Das ID-Token im Autorisierungsheader für den Zugriff auf die Tabellen-API oder den Scripted Web Service.
        curl -X GET --header "Accept:application/json" https://<instance_name>.service-now.com/api/now/table/incident/897b04f2dbd4a300a135364e9d961952 -k 
        --header "Authorization: Bearer eyJraWQiOiJjNTZtZTlXU0xPVnY3UFMwcTg4Qzl1b0lzNjFQYTdmUG4yZFVFOW9RNUg4IiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiIwMHVnZDg1OD
        VkczI1WXpUSjBoNyIsIm5hbWUiOiJpbXJhbiBhbGkiLCJsb2NhbGUiOiJlbi1VUyIsImVtYWlsIjoiaW1yb241NDNAZ21haWwuY29tIiwidmVyIjoxLCJpc3MiOiJodHRwczovL2Rldi05MzQ
        xMjEub2t0YXByZXZpZXcuY29tIiwiYXVkIjoiMG9hZ2Q4bzk3a2lCT3dwd0IwaDciLCJpYXQiOjE1Mzc5MzMzMjYsImV4cCI6MTUzNzkzNjkyNiwianRpIjoiSUQueThVdXpWNUg2bm16SzRs
        OTI1RFVrQnJoR1o1MmJzVVpGVHRVTEphQjg3ayIsImFtciI6WyJwd2QiXSwiaWRwIjoiMDBvZ2Q4NTgycEFqZDZTemcwaDciLCJub25jZSI6InNub3ciLCJwcmVmZXJyZWRfdXNlcm5hbWUiO
        iJpbXJvbjU0M0BnbWFpbC5jb20iLCJnaXZlbl9uYW1lIjoiaW1yYW4iLCJmYW1pbHlfbmFtZSI6ImFsaSIsInpvbmVpbmZvIjoiQW1lcmljYS9Mb3NfQW5nZWxlcyIsInVwZGF0ZWRfYXQiOj
        E1Mzc5MzAxOTcsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJhdXRoX3RpbWUiOjE1Mzc5Mjk2NjF9.OG87SYxWFgHGlhBYby2H79diRm9rlYZTeEkIINRUatwg-p4739htB8xEY-5_t6yU_6k5w1
        0pdgtt5M5QFZRPXVbQZNoGtY-Bxn0BjaimcFgoWfhY_0ldnGTkzN2RYyIHvrf9-yhxg347zvczmLrgMMa_VwG4rxrtE6rUXaIpIeIK5b-Deq8ADz8UTUTKpF_5RWk4X-oh5xK6BLniFHk4ShO
        Zq2v_mjproXwKk5euJKrVrar2lQ4adZCOSTRuTf3ThMO5WDh0sel-82LngXtLzRJJ51IqxAsXns0kJHLLqLtH1hXNRKfwT1ScQoE_OfWm4t0KryI2j4wSMEanFtLXIw"
      • Wenn der Anwender authentifiziert ist, wird eine gültige Anwendungs-/JSON-Antwort zurückgegeben. Andernfalls wird eine Fehlermeldung für nicht authentifizierten Anwender zurückgegeben.
        User Not Authenticated
        {"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"},"status":"failure"}