1회 사용자 인증(SSO) 로그인 리디렉션
SSO가 활성화되면 사용자를 특정 페이지로 리디렉션하거나 사용자가 로컬로 로그인하도록 안내할 수 있습니다.
예를 들어 사용자가
https://customerX.service-now.com 로 이동하려고 하면 기본 로그인 페이지 대신 내부 회사 포털이 표시될 수 있습니다. 또는 사용자가 애플리케이션에서 로그아웃할 때 브라우저가 특정 내부 페이지로 리디렉션할 수 있습니다. 인스턴스 내에서 리디렉션 속성을 설정하여 사용자가 기본 로그인 페이지가 아닌 SSO 로그인 페이지를 볼 수 있도록 할 수 있습니다. 주:
다음 속성은 SSO를 강제 적용하지 않습니다. login.do 페이지는 계속 액세스할 수 있으며 사용자는 로컬 암호가 설정되어 있는 경우 시스템에 로그인할 수 있습니다.
리디렉션 속성
사용자가 로그아웃하거나 SSO를 사용하여 로그온하려는 시도가 실패한 경우, 기본 포털 페이지 또는 SSO 로그인 정보가 있는 지식베이스 문서와 같이 사용자를 다음으로 이동할 위치를 정의할 수 있습니다. 다음 속성을 사용하여 URL을 지정합니다. 이러한 속성 중 하나가 인스턴스에 없으면 속성을 만들 수 있습니다.
- glide.authenticate.failed_requirement_redirect
- 사용자가 SSO 자격 증명을 제공하지 않는 비공개 페이지(예: 인시던트 보기)에 액세스하려고 할 때 사용자를 리디렉션하는 URL입니다. 이 속성은 일반적으로 고객의 로그인 포털(예:
http://portal.companya.com/)로 설정됩니다. - glide.authenticate.failed_redirect
- 실패한 SSO 시도 후 사용자를 리디렉션할 URL입니다. 오류를 설명하고 유용한 링크(
예: http://portal.companya.com/error)가 있는 공개 지식 문서로 리디렉션할 수 있습니다. - glide.authenticate.external.logout_redirect
- 로그아웃한 사용자를 리디렉션할 URL로, 일반적으로 1회 사용자 인증(SSO) 로그인을 활성화한 포털(예시:
http://portal.companya.com/logout)로 돌아갑니다. - glide.authentication.external.disable_local_login
- true로 설정하면 기본 로그인 페이지에 대한 SSO 자격 증명이 필요합니다. 기본값은 false입니다. 이 속성은 속성과 glide.authenticate.failed_requirement_redirect 함께 사용해야 합니다.
다음 표에서는 Installation Exit 반환 값, 속성 및 예상 동작 간의 관계를 보여 줍니다.
| 값 반환 | 속성 | 동작 |
|---|---|---|
failed_missing_requirement |
glide.authenticate.failed_requirement_redirect | 이 값이 반환되면 필요한 SSO 자격 증명이 세션에 없음을 나타냅니다. 로그인이 실패하고 세션이 속성에 지정된 URL로 리디렉션됩니다. 일반적으로 로그인이 요청되고 자격 증명이 수집되는 SSO 제공자의 URL입니다. |
failed_authentication |
glide.authenticate.failed_redirect | 이 값이 반환되면 제공된 SSO 자격 증명이 인증에 실패했거나, 사용자가 없거나, 사용자가 잠겼음을 나타냅니다. 로그인이 실패하고 세션이 속성에 지정된 URL로 리디렉션됩니다. 일반적으로 로그인이 요청되고 자격 증명이 수집되는 SSO 제공자의 URL입니다. |
<user_id> |
해당 사항 없음 | <user_id>에서 지정한 사용자에 대해 권한이 부여된 로그인입니다. 이 값은 SSO 속성 glide.authenticate.header.value 에 정의된 필드 이름("수신 헤더와 일치시킬 인스턴스의 필드 이름")과 일치합니다. |
로컬 로그인 제한
보안 예방 조치로, 리디렉션 속성에 의존하여 로컬 로그인을 금지하는 것 이상의 작업을 수행해야 합니다. 사용자가 로컬로 로그인해서는 안 되고 항상 내부 1회 사용자 인증(SSO) 시스템에 의해 인증되는 경우 인스턴스로 가져온 각 사용자에게 임의의 암호를 할당해야 합니다. 임의 암호는 사용자 임포트 시 가장 쉽게 설정됩니다. 가져오기 집합을 통해 사용자 데이터를 시스템으로 가져오는 경우 다음 코드를 사용하여 onBefore 변환 스크립트를 만들 수 있습니다.
var r = new Packages. java. util. Random ( ) ;
var str1 = Packages. java. lang. Long. toString (Packages. java. lang.
Math. abs (r. nextLong ( ) ) , 36 ) ; var str2 = Packages. java. lang.
Long. toString (Packages. java. lang. Math. abs (r. nextLong ( ) ) , 36
) ;
var newPass = str1 + str2 ;
target. user_password = newPass ;
//password now set to a random string like this:
//qvm81zdrn7cwwylpvw94eebk