Single Sign-On, Anmeldungen und URL-Weiterleitungen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 4 Minuten Lesedauer
  • Serviceportal Verwendet eine Kombination aus Systemeigenschaften und Skripteinbindungen, um zu bestimmen, wie das System URL-Weiterleitungen für Benutzer vornimmt, die sich beim Portal anmelden.

    Änderungen sollten nur von Benutzern vorgenommen werden, die sich mit SSO, URL-Weiterleitungen und der ServiceNow Plattform auskennen.

    Single Sign-On und Serviceportal

    Um Single Sign-On mit Serviceportal zu verwenden, müssen Sie das Plugin für die Installation der Integration für Single Sign-On für mehrere Anbieter aktivieren (com.snc.integration.sso.multi.installer).

    Wenn Sie die Systemeigenschaft verwenden, um automatisch zu Ihrem primären IdP umzuleiten, dann leitet Serviceportal automatisch auf diesen IdP um. Wenn Sie mehrere Identitätsanbieter haben, zeigt Serviceportal einen Link auf der Login-Seite an zum Verwenden eines externen Logins. Weitere Informationen zu SSO und Authentifizierung in der Plattform finden Sie unter Single Sign-on (SSO) für mehrere Anbieter.

    Um Benutzer zur Anmeldeseite für SSO Identify Provider (IdP) umzuleiten, ohne sie zuerst zur Anmeldeseite des -Portals umzuleiten, können Sie die Systemeigenschaft glide.service_portal.sso.early_redirect.portals konfigurieren. Weitere Informationen finden Sie unter Serviceportal -Eigenschaften. Wenn Ihr Portal eine angepasste Version des Anmelde-Widgets verwendet, müssen Sie das UI-Makro „sp_sso_early_redirection“ nach Bedarf aktualisieren, um Benutzer zur Anmeldeseite von SSO Identify Provider (IdP) umzuleiten, ohne zuerst die Portalseite zu laden.

    Hinweis:
    Serviceportal hat ein bekanntes Problem bei der Verwendung von Multi-Provider-SSO und Okta. Weitere Informationen zu diesem Problem und eine Problemumgehung finden Sie im Serviceportal: Nach dem Aktivieren von Multi-SSO können Endanwender über OKTA auf navpage.do zugreifen, wenn sie bereits angemeldet sind [KB0687717] Artikel in der Knowledge Base Now Support.

    Authentifizierung für eine Serviceportal Seite erforderlich.

    Wenn Sie eine Authentifizierung für eine Serviceportal Seite anfordern möchten, stellen Sie sicher, dass die Markierung Öffentlich im Seitendatensatz ist nicht ausgewählt ist. Weitere Informationen finden Sie unter Seiten mithilfe des Serviceportal Designers erstellen und bearbeiten.. Wenn ein Benutzer zu einer nicht öffentlichen Seite navigiert, wird er zur Anmeldeseite des angeforderten Portals weitergeleitet.

    Weil jede Seitenanforderung durch die Seite $sp geroutet wird, muss diese Seite öffentlich sein. Die folgenden Werte in der Tabelle der öffentlichen Seiten sys_public definieren die Seite als öffentlich:

    • Seite: $sp
    • Aktiv: true

    Konfigurieren Sie ein -Portal als Anmeldeseite für die Instanz

    Verweisen Sie alle nicht authentifizierten Anwender auf eine Portalanmeldeseite, um sich anzumelden. Die Anmeldeseite des -Portals wird zur primären Anmeldeseite für Ihre Instanz.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Prozedur

    1. Fügen Sie eine Systemeigenschaft mit den folgenden Einstellungen hinzu:
      • Name: glide.entry.page.script
      • Typ: Zeichenfolge
      • Wert:
        new SPEntryPage().getLoginURL()
    2. Wahlweise: Wenn Sie Benutzer zu einem anderen Portal als dem Standardportal leiten müssen, bearbeiten Sie das Portal, das in der Skripteinbindung SPEntryPage angegeben ist.

      SPEntryPage verwendet das Standardportal in der Instanz als Portalpfad für die Weiterleitung zu. Mitarbeiter-Center (esc) ist standardmäßig das Standardportal.

      Hinweis:
      Wenn Sie die Skripteinbindung bearbeiten, wird sie bei zukünftigen Updates nicht aktualisiert.
      1. Navigieren zu Alle > Systemdefinition > Skripteinbindungen.
      2. Suchen Sie in der Tabelle „Skripteinbindungen“ [sys_script_include] nach einer Skripteinbindung mit dem Namen SPEntryPage.
      3. Bearbeiten Sie im Feld Skript das Skript, um das zugewiesene Portal in das gewünschte Portalsuffix zu ändern.

        Ändern Sie beispielsweise this.portal = this.getDefaultPortal(); to this.portal = "/sp/"; umzuleiten zu Serviceportal.

        SPEntryPage.prototype = {
        
            initialize: function() {
                this.logVariables = false; // for debugging 
                this.portal = this.getDefaultPortal(); // The URL suffix for default portal
            },
        
        Hinweis:
        Der Schrägstrich (/) nach „/sp“ kann bei der Konfiguration des Single Sign-ons zu Problemen führen. Wenn Probleme auftreten, versuchen Sie, das Zeichen aus dem Skript zu entfernen.

    Nach der Anmeldung zum Serviceportal umleiten

    Leitet Anwender nach der Anmeldung bedingt zu einer Seite Serviceportal um.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Prozedur

    1. Eingeben von sys_properties.list im Navigationsfilter.
    2. Fügen Sie in der Tabelle „Systemeigenschaften“ [sys_properties] die folgenden Eigenschaften und Werte hinzu.
      Eigenschaft Typ Wert Beschreibung
      glide.entry.first.page.script Zeichenfolge new SPEntryPage().getFirstPageURL() Erste Seite nach der Authentifizierung
      glide.entry.page.script Zeichenfolge Serverskript, das Anwender zur Anmeldung umleitet. Zum Beispiel:

      neue SPEntryPage().getLoginURL()

      Enthält den Aufruf der Server-Skripteinbindungsmethode, der bestimmt, wo die Anmeldung erfolgen soll
      getFirstPageURL führt im Wesentlichen Folgendes aus:
      • Leitet zu „login_redirect.do“ um, um aus dem Frameset auszubrechen (falls vorhanden).
      • Leitet zum Standardportal um, wenn der Benutzer keine Rollen hat, oder zur vollständigen Plattform für Benutzer mit Rollen, die nicht versuchen, direkt zu einem Portal zu wechseln.

        Wenn ein Benutzer keine Rollen hat, wird er zum Portal weitergeleitet, das einer Seite entspricht. Beispiel:

        https://<instance_name> .service-now.com/nav_to.do?uri=change_request_list.do

        sendet Benutzer ohne Rollen an:

        https://<instance_name> .service-now.com/sp/?id=list&table=change_request

      Hinweis:
      Diese Änderung verhindert nicht, dass Benutzer ohne Rollen auf die vollständige Plattform zugreifen. Um zu verhindern, dass Benutzer ohne Rollen auf die Plattform zugreifen und immer zu einem Portal umleiten, legen Sie den Wert der Systemeigenschaft glide.entry.loggedin.page_ess auf das Portalsuffix fest, z. B. /sp.
    3. Wahlweise: Passen Sie das Verhalten nach der Anmeldung in der Skripteinbindung SPEntryPage an.

      Weitere Informationen zum Ändern von Skripteinbindungen finden Sie unter Skripteinbindungen.

      Wenn Sie beispielsweise möchten, dass Benutzer mit bestimmten Rollen zu Serviceportalumgeleitet werden, können Sie user.hasRoles() im folgenden Code ändern.
      if (user.hasRoles() && !redirectURL && !isServicePortalURL)
      Hinweis:
      • Wenn Sie die Skripteinbindung bearbeiten, wird sie bei zukünftigen Updates nicht aktualisiert.
      • Benutzer mit der Rolle admin bestehen immer die Prüfung user.hasRoles().
      • Wenn Sie die externe Authentifizierung verwenden, stellen Sie sicher, dass Ihr IdP den URL-Parameter RelayState unterstützt. Dieser Parameter behält die ursprünglich angeforderte URL bei, während sich der Benutzer authentifiziert, und ist nach der Anmeldung für die Weiterleitung erforderlich.

    Nächste Maßnahme

    Informationen zum Debuggen der Umleitung finden Sie unter Service Portal-URL-Weiterleitungen debuggen. Weitere Informationen zur Problembehandlung für die Umleitung finden Sie im Artikel Häufig gestellte Fragen zur Umleitung mit dem Serviceportal [KB0747432] in der Now Support Knowledge Base.

    Service Portal-URL-Weiterleitungen debuggen

    Debuggen Sie die URL-Weiterleitungen für die Anmeldung bei Serviceportal und die Weiterleitung auf die erste Seite.

    So zeigen Sie die Debug-Ausgabe der SPEntryPage an und zeigen die Sitzungsvariablen an, die basierend auf Folgendem umgeleitet werden:
    1. Stellen Sie sicher, dass die Systemeigenschaft glide.entry.first.page.script den folgenden Wert new SPEntryPage().getFirstPageURL() hat.
    2. Legen Sie in der Skripteinbindung von SPEntryPage this.logVariables = true fest.
    3. Melden Sie sich in einem separaten Browser an.
    4. Zeigen Sie im Systemnavigator die Protokollausgabe an, indem Sie zu navigieren Systemprotokolle > Systemprotokoll > Alle.