Single Sign-On, 로그인 및 URL 리디렉션

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 6분
  • 서비스 포털 는 시스템 속성과 스크립트 포함의 조합을 사용하여 시스템에서 포털에 로그인하는 사용자의 URL 리디렉션을 처리하는 방법을 결정합니다.

    SSO, URL 리디렉션 및 ServiceNow 플랫폼을 이해하는 사용자만 변경해야 합니다.

    Single Sign-On 및 서비스 포털

    과 함께 서비스 포털Single Sign-On을 사용하려면 Integration - Multiple Provider Single Sign-On Installer 플러그인(com.snc.integration.sso.multi.installer)을 활성화해야 합니다.

    시스템 속성을 사용하여 기본 IdP 서비스 포털 로 자동 리디렉션하는 경우 은 해당 IdP로 자동으로 리디렉션됩니다. ID 공급자 서비스 포털 가 여러 개인 경우 로그인 페이지에 외부 로그인 사용 링크를 표시합니다. 플랫폼의 SSO 및 인증에 대한 자세한 내용은 다중 공급자 SSO(Single Sign-On)를 참조하세요.

    주:
    서비스 포털 에는 다중 제공자 SSO 및 Okta 사용과 관련된 알려진 문제가 있습니다. 이 문제 및 임시 해결책에 대한 자세한 내용은 다음 서비스 포털을 참조하십시오. 복수 SSO를 활성화한 후, 최종 사용자가 이미 로그인한 경우 OKTA를 통해 navpage.do 에 액세스할 수 있습니다. 지식베이스의 Now Support [KB0687717] 문서.

    페이지에 대해 서비스 포털 인증 필요

    페이지에 대해 서비스 포털 인증을 요구하려면 페이지 기록에서 공개 플래그가 선택되지 않았는지 확인합니다. 자세한 내용은 디자이너를 서비스 포털 사용하여 페이지 생성 및 편집 문서를 참조하십시오. 사용자가 비공개 페이지로 이동하면 요청한 포털의 로그인 페이지로 리디렉션됩니다.

    모든 페이지 요청은 $sp 페이지를 통해 라우팅되므로 이 페이지는 공개되어야 합니다. 공용 페이지 sys_public 테이블의 다음 값은 페이지를 공개로 정의합니다.

    • 페이지: $sp
    • 활성:

    포털을 인스턴스 로그인 페이지로 구성

    인증되지 않은 모든 사용자를 포털 로그인 페이지로 안내하여 로그인합니다. 포털 로그인 페이지가 인스턴스의 기본 로그인 페이지가 됩니다.

    시작하기 전에

    필요한 역할: admin

    프로시저

    1. 다음 설정으로 시스템 속성을 추가합니다.
      • 이름: glide.entry.page.script
      • 유형: string
      • 값:
        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
            },
        
        주:
        Single Sign-On을 구성할 때 /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. 시스템 탐색기에서 다음으로 이동하여 로그 출력을 봅니다. 시스템 로그 > 시스템 로그 > 모두.