Menu Close
Settings Close

Language and Page Formatting Options

1.6. SSO(Single Sign-On)

SSO(Single Sign-On)를 사용하면 한 리소스에 인증된 주체가 다른 리소스에 대한 액세스를 암시적으로 인증할 수 있습니다. SSO에서 별도의 리소스 집합을 보호하는 경우 사용자는 보안 리소스에 처음 액세스할 때만 인증해야 합니다. 인증에 성공하면 사용자와 연결된 역할은 저장되어 기타 모든 관련 리소스의 권한 부여에 사용됩니다. 이를 통해 사용자는 인증 없이 추가 인증 리소스에 액세스할 수 있습니다.

사용자가 리소스에서 로그아웃하거나 리소스가 프로그래밍 방식으로 세션을 무효화하면 지속되는 모든 권한 부여 데이터가 제거되고 프로세스가 다시 시작됩니다. 리소스 세션 시간 초과의 경우 해당 사용자와 연결된 다른 유효한 리소스 세션이 있는 경우 SSO 세션이 무효화되지 않습니다. SSO는 웹 애플리케이션 및 데스크탑 애플리케이션에서 인증 및 권한 부여에 사용할 수 있습니다. 경우에 따라 SSO 구현이 두 가지와 통합될 수 있습니다.

SSO 내에는 시스템의 다른 개념과 일부를 설명하는 데 사용되는 몇 가지 일반적인 용어가 있습니다.

IdM (Identity Management)

ID 관리(IDM)는 하나 이상의 시스템 또는 도메인에서 주체 및 관련 인증, 권한 및 권한을 관리하는 개념을 나타냅니다. IAM(ID 및 액세스 관리)이라는 용어는 이와 같은 개념을 설명하는 데 사용됩니다.

ID 공급자

ID 공급자(IDP)는 최종 사용자를 인증하고 해당 사용자의 ID를 신뢰할 수 있는 파트너에게 어설션하는 권한 있는 엔터티입니다.

ID 저장소

ID 프로바이더는 인증 및 권한 부여 프로세스 중에 사용할 사용자의 정보를 검색하려면 ID 저장소가 필요합니다. ID 저장소는 데이터베이스, LDAP(Lightweight Directory Access Protocol), 속성 파일 등 모든 유형의 리포지토리가 될 수 있습니다.

서비스 공급자

서비스 공급자(SP)는 ID 공급자를 사용하여 전자 사용자 자격 증명을 통해 사용자에 대한 정보를 어설션하고, 서비스 공급자가 신뢰할 수 있는 사용자 자격 증명 어설션 세트에 따라 액세스 제어 및 보급을 관리할 수 있도록 합니다.

클러스터형 SSO 및 비클러스터형 SSO

클러스터되지 않은 SSO는 권한 부여 정보 공유를 동일한 가상 호스트의 애플리케이션으로 제한합니다. 또한 호스트 장애가 발생할 경우 복원력도 없습니다. 클러스터형 SSO 시나리오에서는 여러 가상 호스트의 애플리케이션 간에 데이터를 공유할 수 있으므로 오류가 발생할 수 있습니다. 또한 클러스터된 SSO는 로드 밸런서에서 요청을 받을 수 있습니다.

1.6.1. 타사 SSO 구현

Kerberos

Kerberos는 클라이언트-서버 애플리케이션을 위한 네트워크 인증 프로토콜입니다. 비밀 키 대칭 암호화를 사용하여 비보안 네트워크에서 보안 인증을 허용합니다.

Kerberos는 티켓이라는 보안 토큰을 사용합니다. 보안 서비스를 사용하려면 사용자는 네트워크의 서버에서 실행되는 서비스인 티켓 부여 서비스(TGS)에서 티켓을 받아야 합니다. 사용자는 티켓을 획득한 후 동일한 네트워크에서 실행되는 다른 서비스인 인증 서비스(AS)에서 서비스 티켓(ST)을 요청합니다. 그런 다음 사용자는 ST를 사용하여 원하는 서비스에 인증합니다. TGS 및 AS는 KDC(키 배포 센터)라는 엔클로징 서비스 내에서 실행됩니다.

Kerberos는 클라이언트-서버 데스크탑 환경에서 사용하도록 설계되었으며 일반적으로 웹 애플리케이션 또는 씬 클라이언트 환경에서 사용되지 않습니다. 그러나 많은 조직에서 데스크탑 인증에 Kerberos 시스템을 사용하고 웹 애플리케이션에 대해 두 번째 시스템을 생성하는 대신 기존 시스템을 재사용하는 것을 선호합니다. Kerberos는 Microsoft의 Active Directory에 핵심적인 일부이며 여러 Red Hat Enterprise Linux 환경에서 사용됩니다.

SPNEGO

단순하고 보호되는 GSS_API 협상 메커니즘(SPNEGO)은 웹 애플리케이션에서 사용하기 위한 Kerberos 기반 SSO 환경 확장 메커니즘을 제공합니다.

웹 브라우저와 같은 클라이언트 컴퓨터에 있는 애플리케이션이 웹 서버에서 보호된 페이지에 액세스하려고 하면 서버에서 권한 부여가 필요한지 응답합니다. 그러면 애플리케이션이 KDC에서 ST를 요청합니다. 애플리케이션은 SPNEGO 형식이 지정된 요청으로 티켓을 래핑하고 브라우저를 통해 웹 애플리케이션으로 다시 보냅니다. 배포된 웹 애플리케이션을 실행하는 웹 컨테이너는 요청의 압축을 풀고 티켓을 인증합니다. 성공적인 인증에 따라 액세스가 부여됩니다.

SPNEGO는 Red Hat Enterprise Linux 및 Kerberos 서버 내의 Kerberos 서비스를 비롯한 모든 종류의 Kerberos 공급자와 함께 작동하며, 이는 Microsoft의 Active Directory에 핵심적인 부분입니다.

Microsoft의 Active Directory

AD(Active Directory)는 Microsoft Windows 도메인에서 사용자와 컴퓨터를 인증하기 위해 Microsoft가 개발한 디렉터리 서비스입니다. Windows Server의 일부로 제공됩니다. 도메인을 제어하는 Windows Server를 실행하는 컴퓨터를 도메인 컨트롤러라고 합니다. Red Hat Enterprise Linux는 Red Hat Identity Management, Red Hat JBoss Enterprise Application Platform 및 기타 Red Hat 제품과 마찬가지로 Active Directory 도메인과 통합할 수 있습니다.

Active Directory는 함께 작동하는 세 가지 핵심 기술을 사용합니다.

  1. 사용자, 컴퓨터, 암호 및 기타 리소스에 대한 정보를 저장하는 LDAP
  2. 네트워크를 통해 보안 인증을 제공하는 Kerberos
  3. 네트워크의 다른 장치와 IP 주소와 호스트 이름 간의 매핑을 제공하는 DNS(Domain Name Service)