본문 바로가기
개념/Study

SSO (Single Sign-On) 란 ?

by Hwanii_ 2023. 11. 14.
728x90

1. SSO (Single Sign-On) 의 기능

 
싱글 사인온의 주요 목적은 사용자 경험을 향상 시키는데 있다. 
뿐만 아니라, SSO를 사용 하면 보안을 강화 할 수 있게 된다.
 
SSO를 사용 하면, 사용자는 하나의 인증 자격 증명 으로, 최초 한번 로그인을 하면,
다른 연결된 서비스 / 어플리케이션 에서 추가적인 로그인 없이 편리하게 이용 할 수 있게 된다.
 
사용자의 인증 자격 증명의 대표적인 예시로는 아이디 / 비밀번호 이다.
 
- 사용자 경험 향상 :
위에서 정리했듯이, 사용자는 다양한 서비스를 이용 할 때, 한 번의 로그인으로 여러 서비스에 접근 가능 하다.
 
대표적으로 구글을 예시로 들 수 있다.
 

로그인시, 재 로그인 필요 없이, 여러 기능을 이용 할 수 있다.

 
 
- 사용자 경험 향상 (2) :
비밀번호에 대한 부담이 감소 된다.
여러 서비스에 대해 각각의 아이디로 로그인 해야 한다면, 비밀번호 입력에 대한 부담이 생길 수도 있게 된다.
SSO 를 사용 하게 되면, 다수의 비밀번호를 기억할 필요가 사라지므로, 비밀번호 관리에 대한 부담이 감소 된다.
 
- 보안 향상 :
사용자의 인증이 중앙 에서 이루어지므로, 보안이 강화 될 수 있다.
 
 
 

2. SSO (Single Sign-On) 의 단점

 
만약 한번 로그인한 상태 에서, 사용자의 인증이 유출 된다면,
해당 사용자는 연결된 모든 서비스에 대해 위협을 받을 수 있게 된다.
 
따라서, 적절한 보안 조치 및 프로토콜을 사용 하여, SSO 를 구현 해야 한다.
 
일반적으로, OAuth / OpenID Connect 등이 SSO 를 구현 하는데 사용 되는 표준 프로토콜 이다.
 
 
 
[ 참고 ]
 
OAuth : Open Authorization 은 사용자가 자원 (데이터 / 서비스) 에 대한 제한된 접근 권한을 제공 받기 위한
개방형 표준 인증 프로토콜 이다.
 
주로 웹 / 모바일 어플리케이션 에서 사용 된다.
 
다른 서비스에 대한 사용자 인증을 위임 하고, 해당 서비스에 대한 제한된 권한을 부여 하는데 사용 된다.
 
 
 
OAuth 의 주요 역할은 아래와 같다.
 
1) 인증 == Authorization : 사용자가 서드 파티 애플리케이션에 대한 제한된 권한을 부여 받기 위해 사용 된다.
 
서드 파티 란 ?

더보기

 

서드 파티 애플리케이션 :

특정 플랫폼 또는 서비스 제공자가 직접 제작 하지 않은 애플리케이션.

 

서드 == Third == 세 번째

 

서드 파티 == 제 3자

 

즉, 서드 파티 애플리케이션은 해당 서비스 및 기술을 제공 하는 회사 및 플랫폼이 아닌,

다른 회사 및 플랫폼 의 개발자 및 회사가 만든 애플리케이션 이다.

 

예)

 

스마트폰 에는 앱스토어가 있다.

 

애플 스토어가 있다고 할 때, 애플이 직접 만든 앱은 퍼스트 파티 애플리케이션 이라고 한다.

 

그리고, 애플이 아닌 다른 회사 및 개발자가 만든 앱을 서드 파티 애플리케이션 이라고 한다.

 
2) 인가 == Authentication : 사용자가 자신의 자원 (데이터 == 리소스) 에 대한 접근 자체를,
다른 애플리케이션에 위임 할 수 있게 해준다.
 
 
 
OAuth 의 주요 프로세스는 아래와 같다.
 
1) 리소스 소유자 (Resource Owner) : 자신의 리소스 (데이터 / 서비스) 에 대한 접근을 허용 하는 사용자.
 
2) 클라이언트 : 리소스에 접근 하려는 어플리케이션 또는 서비스 이다.
 
3) 인증 서버 (Authorization Server) : 사용자의 동의를 받아, 권한 부여를 수행. 클라에게 액세스 토큰을 발급 하는 서버.
 
4) 리소스 서버 (Resource Server) : 클라이언트가 접근 하려는 실제 리소스 (데이터 / 서비스) 를 호스팅 하는 서버.
 
 
 
OAuth의 기본적인 동작은 아래와 같다.
 
1) 클라이언트가 사용자의 동의를 얻기 위해 인증 서버에 인가 요청을 한다.
 
2) 인증 서버는 사용자에게 동의를 얻기 위한 인증 프로세스를 수행 한다.
 
3) 사용자가 동의 하면 인증 서버가 클라이언트 에게 액세스 토큰을 발급 한다.
 
4) 클라이언트는 발급 받은 액세스 토큰을 사용 하여, 리소스 서버에 접근 하고,
사용자의 리소스를 얻거나 업데이트 한다.
 
 
 

3. SSO 의 사용 용도

 
Single Sign-On == 싱글 사인온 == SSO
 
SSO 는 다양한 용도로 사용 된다.
 
위에서 정리했듯이, 주로 사용자 편의성을 향상 시키고 보안을 강화 하기 위해 도입 및 활용 된다.
 
 
 
1) 편리한 사용자 경험 제공
 
- 여러 서비스 / 애플리케이션에 대해 단일 인증으로 로그인 할 수 있게 한다.
사용자는 반복적으로 로그인을 하는 수고가 덜어 진다.
 
- 다양한 서비스를 한번의 로그인을 통해 접근 할 수 있게 되어, 사용자 편의성이 향상 된다.
 
2) 보안 향상
 
- 사용자가 한 번 로그인을 하고, 추가적인 로그인이 필요 없게 되므로,
사용자는 여러 비밀번호를 기억할 필요가 없게 된다.
또한, 추가적인 로그인 자체가 필요 없으므로, 비밀번호가 노출 되거나 재사용의 위험이 감소 된다.
 
- 중앙 에서 사용자를 인증 하고 권한을 부여 하기 때문에, 권한 부여 및 인증 프로세스가 표준화 되서 보안이 강화 된다.
 
3) 비즈니스 애플리케이션 통합
 
- 회사 내에 다양한 비즈니스 애플리케이션이 사용 되면, SSO 를 통해 이러한 다양한 비즈니스 앱을 통합 할 수 있다.
그러면, 사용자의 인증이 단일화 되고 일관된 접근을 할 수 있게 된다.
즉, 결국, 사용자 편의성이 향상 된다.
 
4) 외부 서비스 연동
 
- 외부 업체와 협업 할 때도, SSO 를 활용 하여 다양한 서비스를 통합 하고 사용자 인증을 간소화 할 수 있다.
 
5) 클라우드 서비스 활용
 
- 클라우드 환경 에서 다양한 서비스를 사용 할 때, 역시 SSO 를 활용 하여 여러 클라우드 서비스에 쉽게 접근이 가능 하다.
 
6) 보안 감사 및 관리
 
- 중앙 에서 사용자 인증 및 권한 부여를 담당 하기 때문에, 보안 감사 및 정책 관리가 효율적으로 이루어 지게 된다.

반응형