シングルサインオン、ログイン、および URL リダイレクト

  • リリースバージョン: Australia
  • 更新日 2026年04月22日
  • 所要時間:8分
  • サービスポータル システムのプロパティとスクリプトインクルードを組み合わせて使用し、ポータルにログインするユーザーに対してシステムが URL リダイレクトを処理する方法を決定します。

    SSO、URL リダイレクト、および ServiceNow プラットフォームを理解しているユーザーのみが変更を行う必要があります。

    シングルサインオンと サービスポータル

    サービスポータル でシングルサインオンを使用するには、Integration - Multiple Provider Single Sign-On Installer プラグイン (com.snc.integration.sso.multi.installer) を有効にする必要があります。

    システムプロパティを使用してプライマリ IdP に自動的にリダイレクトしている場合、 サービスポータル はその IdP に自動的にリダイレクトされます。複数の ID プロバイダーがある場合、 サービスポータル ログインページに [外部ログインを使用する] へのリンクが表示されます。プラットフォームでの SSO と認証の詳細については、「 複数プロバイダーのシングルサインオン (SSO)」を参照してください。

    ユーザーを SSO 識別プロバイダー (IdP) ログインページにリダイレクトするように glide.service_portal.sso.early_redirect.portals システムプロパティを設定できます。これにより、ポータルのログインページがバイパスされます。詳細については、「サービスポータル のプロパティ」を参照してください。ポータルでカスタマイズされたバージョンのログインウィジェットを使用している場合は、必要に応じて sp_sso_early_redirection UI マクロを更新して、最初にポータルページをロードせずにユーザーを SSO ID プロバイダー (IdP) ログインページにリダイレクトする必要があります。

    注:
    サービスポータル には、複数プロバイダー SSO および Oktaの使用に関連する既知の問題があります。この問題の詳細と回避策については、サービスポータルを参照してください:マルチ SSO を有効にした後、エンドユーザーは、Now Support ナレッジベースの [KB0687717] に既にログインしている場合、OKTA を介して navpage.do にアクセスできます

    サービスポータルページの認証を必須とする

    サービスポータルページに認証を要求する場合は、ページレコードの公開フラグが選択されていないことを確認します。詳細については、「サービスポータル デザイナーを使用したページの作成と編集」を参照してください。ユーザーが非公開ページに移動すると、要求されたポータルのログインページにリダイレクトされます。

    すべてのページ要求は $sp ページを介してルーティングされるため、このページは公開する必要があります。[公開ページ] sys_public テーブルの次の値は、ページを公開として定義します。

    • ページ: $sp
    • 有効: true

    インスタンスのログインページとしてのポータルの構成

    すべての非認証ユーザーをポータルのログインページに誘導してログインさせます。ポータルのログインページが、インスタンスのプライマリログインページになります。

    始める前に

    必要なロール:admin

    手順

    1. 次の設定を使用して、システムプロパティを追加します
      • 名前:glide.entry.page.script
      • タイプ:文字列
      • 値:
        new SPEntryPage().getLoginURL()
    2. オプション: ユーザーをデフォルトのポータル以外のポータルに誘導する必要がある場合は、SPEntryPage スクリプトインクルードで指定されたポータルを編集します。

      SPEntryPage は、インスタンスのデフォルトポータルをリダイレクト先のポータルパスとして使用します。デフォルトでは、 従業員センター (Esc) がデフォルトのポータルです。

      注:
      スクリプトインクルードを編集しても、将来の更新でアップグレードされることはありません。
      1. 移動先 すべて > システム定義 > スクリプトインクルード.
      2. スクリプトインクルード [sys_script_include] テーブルから、 SPEntryPage という名前のスクリプトインクルードを検索します。
      3. [ スクリプト] フィールドで、スクリプトを編集して、アサインされたポータルを目的のportal_suffixに変更します。

        たとえば、サービスポータルにリダイレクトするには、this.portal = this.getDefaultPortal();this.portal = "/sp/"; に変更します。

        SPEntryPage.prototype = {
        
            initialize: function() {
                this.logVariables = false; // for debugging 
                this.portal = this.getDefaultPortal(); // The URL suffix for default portal
            },
        
        注:
        /sp の後のスラッシュ文字 (/) は、シングルサインオンの設定時に問題を引き起こす可能性があります。問題が発生した場合は、スクリプトから文字を削除してみてください。

    ログイン後にサービスポータルへリダイレクトする

    ログイン後にユーザーを条件付きで サービスポータル ページにリダイレクトします。

    始める前に

    必要なロール:admin

    手順

    1. ナビゲーションフィルターに、「sys_properties.list」と入力します。
    2. システムプロパティ [sys_properties] テーブルで、次のプロパティと値を追加します。
      プロパティ タイプ 説明
      glide.entry.first.page.script 文字列 new SPEntryPage().getFirstPageURL() 認証後の最初のページ
      glide.entry.page.script 文字列 ユーザーをログイン先にリダイレクトするサーバースクリプト。例:

      new SPEntryPage().getLoginURL()

      ログイン場所を決定するサーバースクリプトインクルードメソッドの呼び出しが含まれます
      getFirstPageURL は主に次のことを行います。
      • フレームセット (存在する場合) から抜け出すために login_redirect.do にリダイレクトします。
      • ユーザーにロールがない場合はデフォルトのポータルにリダイレクトされ、ロールを持つユーザーがポータルに直接アクセスしようとしていない場合は完全なプラットフォームにリダイレクトされます。

        ユーザーにロールがない場合は、ページに相当するポータルにリダイレクトされます。例を次に示します。

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

        は、ロールのないユーザーを次の目的に送信します。

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

      注:
      この変更によって、ロールを持たないユーザーがプラットフォーム全体にアクセスできなくなることはありません。ロールを持たないユーザーがプラットフォームにアクセスできず、常にポータルにリダイレクトできないようにするには、 glide.entry.loggedin.page_ess システムプロパティの値をポータルサフィックス ( /sp など) に設定します。
    3. オプション: SPEntryPage スクリプトインクルードのログイン後の動作をカスタマイズします。

      スクリプトインクルードの変更の詳細については、「 スクリプトインクルード」を参照してください。

      たとえば、特定のロールを持つユーザーを サービスポータルにリダイレクトする場合は、次のコードで user.hasRoles() を変更できます。
      if (user.hasRoles() && !redirectURL && !isServicePortalURL)
      注:
      • スクリプトインクルードを編集しても、将来の更新でアップグレードされることはありません。
      • admin ロールを持つユーザーは、常に user.hasRoles() チェックに合格します。
      • 外部認証を使用している場合は、IdP が RelayState URL パラメーターをサポートしていることを確認してください。このパラメーターは、ユーザーの認証中に最初に要求された URL を保持し、ログイン後のリダイレクトに必要です。

    次のタスク

    リダイレクトをデバッグするには、「 サービスポータル URL リダイレクトのデバッグ」を参照してください。リダイレクトのトラブルシューティングの詳細については、Now Support ナレッジベースの記事「 サービスポータル [KB0747432] によるリダイレクトに関するよくある質問 」を参照してください。

    サービスポータル URL リダイレクトのデバッグ

    サービスポータル にログインして最初のページにリダイレクトするための URL リダイレクトをデバッグします。

    SPEntryPage からのデバッグ出力を表示し、それがリダイレクトする基準となるセッション変数を確認するには:
    1. システムプロパティ glide.entry.first.page.script の値が new SPEntryPage().getFirstPageURL() であることを確認してください。
    2. SPEntryPage スクリプトインクルードから、 this.logVariables = true を設定します。
    3. 別のブラウザでログインします。
    4. システムナビゲーターから、次の場所に移動してログ出力を表示します システムログ > システムログ > すべて.