Single Sign-On(SSO)
Single Sign-On(SSO)을 사용하면 사용자가 사용자 이름과 비밀번호를 입력하는 대신 외부 ID 공급자를 통해 jvmguard에 로그인할 수 있습니다. jvmguard는 OpenID Connect(OIDC) 호환 공급자를 지원하며 가장 일반적인 공급자에 대한 프리셋이 있습니다. SSO는 기존의 로컬 및 LDAP 인증과 함께 실행되므로 세 가지 방법을 동시에 활성화할 수 있습니다.
SSO가 활성화되면 로그인 페이지에 구성된 각 공급자에 대한 추가 버튼이 표시됩니다. 사용자가 버튼을 클릭하고 ID 공급자에서 인증하면 jvmguard로 다시 리디렉션됩니다. 사용자에게 권한이 있으면 jvmguard는 할당된 액세스 수준으로 세션을 생성합니다.
SSO 클라이언트 ID와 시크릿은 환경 변수를 통해 재정의할 수 있습니다. 서버 구성을 참조하세요.

리디렉션 URI
섹션 제목: “리디렉션 URI”각 SSO 공급자는 ID 공급자 애플리케이션 설정에 등록할 리디렉션 URI가 필요합니다. 리디렉션 URI의 형식은 다음과 같습니다:
http://<jvmguard-host>:<port>/login/oauth2/code/<slug>여기서 <slug>는 공급자의 표시 이름을 소문자로 변환하고 영숫자가 아닌 문자를 하이픈으로 대체한 것입니다.
예를 들어, “Keycloak”이라는 공급자의 리디렉션 URI는
http://localhost:8020/login/oauth2/code/keycloak입니다.
또한 사용자가 ID 공급자에서 로그아웃한 후 jvmguard가 사용자를 로그인 페이지로 다시 리디렉션할 수 있도록
로그아웃 리디렉션 URI http://<jvmguard-host>:<port>/login을 등록해야 합니다. 일부 ID 공급자는 이를 “post
logout redirect URI” 또는 “allowed logout URL”이라고 부릅니다. 이 URI가 등록되어 있지 않으면 사용자가
로그아웃할 때 ID 공급자가 오류를 표시합니다.
액세스 규칙
섹션 제목: “액세스 규칙”액세스 규칙은 어떤 사용자가 SSO 공급자를 통해 로그인할 수 있는지와 어떤 액세스 수준을 받는지를 결정합니다. 액세스 규칙 목록이 비어 있으면 미리 생성된 사용자만 로그인할 수 있습니다. 이것이 기본값이며 가장 제한적인 모드입니다.
ID 공급자 토큰의 그룹 또는 역할 클레임과 일치하는 규칙을 추가할 수 있습니다. 각 규칙은 클레임 값을 액세스
수준에 매핑합니다. *로 표시되는 특별한 포괄 규칙은 더 구체적인 규칙과 일치하지 않는 구성된 도메인의 모든
사용자와 일치합니다. 공급자당 하나의 포괄 규칙만 허용됩니다.
다음 시나리오는 액세스 규칙이 작동하는 방식을 보여 줍니다:
- 규칙 없음: jvmguard에 미리 생성한 사용자만 로그인할 수 있습니다. 액세스 수준은 사용자 정의에서 가져옵니다.
- 특정 그룹 규칙: 토큰에 일치하는 그룹 클레임 값이 포함된 사용자는 할당된 액세스 수준으로 자동 생성됩니다. 일치하는 그룹이 없는 사용자는 포괄 규칙도 구성되어 있지 않으면 거부됩니다.
- 포괄 규칙만: ID 공급자에서 인증하고 도메인 제한을 통과하는 모든 사용자는 포괄 규칙에 할당된 액세스 수준으로 자동 생성됩니다.
- 특정 규칙과 포괄 규칙: 특정 그룹 규칙과 일치하는 사용자는 해당 규칙의 더 높은 액세스 수준을 받습니다. 다른 모든 사용자는 포괄 규칙의 액세스 수준을 받습니다.
Google Workspace는 OpenID Connect를 통해 그룹 클레임을 노출하지 않습니다. Google 공급자의 경우 액세스 규칙은 구성된 도메인의 모든 사용자에게 적용되는 포괄 규칙으로 제한됩니다.
사용자 관리
섹션 제목: “사용자 관리”SSO 사용자는 두 가지 방법으로 생성할 수 있습니다:
미리 생성된 사용자: “사용자 및 역할”에서 타입이 “SSO”인 사용자를 만들고 ID 공급자에서의 사용자 이메일 주소를 입력합니다. 액세스 수준은 사용자가 할당합니다. 사용자가 처음 로그인할 때 jvmguard는 이메일 주소를 일치시키고 ID 공급자의 주체 식별자를 사용자 항목에 연결합니다.
자동 생성된 사용자: 액세스 규칙이 일치하고 미리 생성된 사용자가 없으면 jvmguard는 일치하는 규칙의 액세스 수준으로 새 사용자 항목을 생성합니다. 사용자의 전체 이름은 사용 가능한 경우 ID 공급자 토큰에서 채워집니다.
수동으로든 자동으로든 사용자가 생성되면 “사용자 및 역할”에서 언제든지 액세스 수준을 변경할 수 있습니다. 변경 사항은 다음 로그인 시 적용됩니다.
로컬 및 LDAP 인증과의 공존
섹션 제목: “로컬 및 LDAP 인증과의 공존”SSO는 로컬 또는 LDAP 인증을 대체하지 않습니다. 세 가지 방법을 모두 동시에 활성화할 수 있습니다. 각 사용자는 “로컬”, “LDAP” 또는 “SSO”의 단일 사용자 타입을 갖습니다. 사용자 타입이 사용자의 인증 방법을 결정합니다.
“로컬” 또는 “LDAP”으로 생성된 사용자는 ID 공급자에서 동일한 이메일 주소가 사용되더라도 SSO 버튼으로 로그인할 수 없습니다. 반대로 “SSO” 사용자는 해당 사용자 타입에 대해 비밀번호가 저장되지 않으므로 비밀번호로 로그인할 수 없습니다.
사용자를 한 인증 방법에서 다른 방법으로 마이그레이션하려면 “사용자 및 역할”에서 사용자 타입을 변경하세요. 현재 로그인 중인 기존 사용자는 삭제할 수 없습니다.