Konfigurieren Sie einen OAuth-OIDC-Anbieter für die Annahme eines Drittpartei-Tokens

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 4 Minuten Lesedauer
  • Sie können einen OAuth-OIDC-Anbieter so konfigurieren, dass Identitätstoken akzeptiert werden, die von einem externen OIDC-Anbieter mithilfe eingehender API-Aufrufe mit der Option „Single Sign-on“ (Multi-Provider-SSO) generiert wurden.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Warum und wann dieser Vorgang ausgeführt wird

    Die Now PlatformUnterstützt OIDC über unsere externe Single Sign-on-Implementierung (SSO) zusätzlich zu eingehenden API-Aufrufen. Ein Beispiel für eine OIDC-Anbieterkonfiguration finden Sie unter Azure AD wird eingerichtet . Ein SSO-spezifisches Beispiel für eine OIDC-Anbieterkonfiguration 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 Aus Neu , Auswählen 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 aus (ADFS, Auth0, Azure AD, Google, Okta), und füllen Sie dann das Formular aus.
        Hinweis:
        OIDC-Anbietervorlagen sind nach dem Laden von Demodaten mit dem OAuth 2,0-Plugin verfügbar.
      Feld Beschreibung
      Name Ein eindeutiger Name, der die OAuth-OIDC-Entität identifiziert.
      Client-ID Die Client-ID der Anwendung, die auf dem OAuth-OIDC-Server des Drittanbieters registriert ist. Dieser Wert muss mit dem Wert von übereinstimmen aud Anspruch im JWT-Token.
      OAuth-API-Skript Ein Skript, das Sie verwenden können, um Anforderungen und Antworten an einen externen OAuth-Anbieter anzupassen.
      OAuth-OIDC-Providerkonfiguration Die OIDC-Anbieter (ADFS, Auth0, Azure AD, Google, Okta) können zum Validieren des JWT-Tokens verwendet werden. Wählen Sie den Datensatz Ihrer OIDC-Anbieterkonfiguration aus, um zu validieren Anwenderanspruch Und Anwenderfeld Sind entsprechend festgelegt.
      Stellen Sie außerdem sicher, dass Sie die folgenden Felder ausfüllen:
      • Aktivieren Sie die JTI-Anspruchsverifizierung : Wenn aktiviert,die ServiceNowDie JWT-Tokenvalidierung validiert auch die vom Anbieter gesendete JTI.
      • OIDC-Metadaten-URL : Details der bekannten Konfiguration des OIDC-Providers.
      Hinweis:
      Wenn die Validierung nicht aktiviert ist, wird jti Kann nicht validiert werden, unabhängig davon, ob es im JWT-Token vorhanden ist. Der Anspruchsname im Token muss sein jti .
      Taktversatz Die Zahl in Sekunden, für die die Einschränkung als gültig gilt. 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 festgelegt sind, um das Authentifizierungsprofil zu aktivieren. Sie können Zugriffsgewährung mithilfe einer API-Zugriffsrichtlinie festlegen. Weitere Informationen finden Sie unter Erstellen Sie EINE REST-API-Zugriffsrichtlinie .

      Standard: Nicht Ausgewählt.

      Aktiv Aktivieren Sie das Kontrollkästchen, um die OAuth-Anwendung zu aktivieren.
      Clienttyp Wählen Sie den Client-Typ basierend auf dem Typ Ihres Clients aus. Optionen:
      • iFrame – eingebettet
      • Integration als Anwender
      • Integration als Service
      Weitere Informationen finden Sie unter Konfigurieren Sie den Client-Typ für OAuth- und SSO-Datensätze.
    2. Wählen Sie Absenden.
      Der Datensatz wird in der Tabelle „Anwendungsregistrierungen“ [oauth_Entität] gespeichert.
      Wenn Ihre Instanz Token und Autorisierungscodes ausgibt, wird ein Datensatz in der Tabelle „Anwendungsregistrierungen“ [oauth_Entität] mit dem Typ erstellt 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-Anbieter ohne Umfang zu validieren.
      Sie können ein OAuth-Anbieterprofil ändern oder hinzufügen, einschließlich Name, Gewährungstyp und OAuth-Umfang.
    4. Wahlweise: Wechseln Sie zur zugehörigen Liste im Datensatz „OAuth-Entitätsbereiche“, um alle verfügbaren OAuth-Umfänge für diesen OAuth-Anbieter zu definieren.
      Die definierten Umfänge können ausgewählt werden, wenn Sie ein Profil erstellen oder aktualisieren. Jeder definierte OAuth-Bereich enthält einen Namen und einen Umfang, den Sie aus der Anbieterspezifikation abrufen müssen, z. B. einen Lese- oder Schreibbereich. Jeder Umfang 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 Aktivieren der erzwungenen Authentifizierung für Anwender.
      Datenquelle bereitstellen Die Datenquelle, die zum Transformieren eines OIDC-Tokens in ein verwendet werden soll ServiceNowAnwender. Verwenden Sie Suchliste Um die vordefinierte Datenquellenvorlage auszuwählen, öffnen Sie dann den Datensatz, um die transformierte Tabellenzuordnung zu konfigurieren. Beim Konfigurieren der Transformationszuordnung stammen die Quellfelder aus JWT token, Die Zielfelder stammen aus sys_userTabelle.
      Auf bereitgestellte Anwender angewendete Anwenderrollen Die Anwenderrollen, die auf die neu bereitgestellten angewendet werden ServiceNowAnwender.

    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 im OpenID Connect-Anbieter.
    • Konfigurieren Sie die OAuth-OIDC-Entität.
    • Konfigurieren Sie den OIDC-Anbieter:
      Tabelle : 1. OIDC-Provider
      OIDC-Provider Name des OIDC-Providers.
      OIDC-Metadaten-URL Geben Sie die OIDC-Metadaten-URL (bekannte Konfigurations-URL) an. Diese Informationen werden verwendet, um die öffentlichen Schlüssel abzurufen, um das Token über zu validieren Jwks Endpunkt.
      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 das vom Anbieter gesendete JTI.
      Hinweis:
      Wenn die Validierung nicht aktiviert ist, wird jti Kann nicht validiert werden, unabhängig davon, ob es im JWT-Token vorhanden ist. Der Anspruchsname im Token muss sein jti . Diese Informationen werden verwendet, um Wiederholungsangriffe zu verhindern.
    • Ruft 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 geskripteten Webservice.
        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 die Fehlermeldung „Anwender nicht authentifiziert“ zurückgegeben.
        User Not Authenticated
        {"error":{"message":"User Not Authenticated","detail":"Required to provide Auth information"},"status":"failure"}