싱글 사인온(SSO)이 더 나은 이유
싱글 사인온(SSO)은 인증 모델을 단순화하고 모든 앱의 사용자 경험을 개선하는 훌륭한 방법입니다. 그 이유는 다음과 같습니다.
싱글 사인온(SSO)은 사용자가 한 번 인증하고 여러 응용 프로그램에 액세스할 수 있도록 하는 기술입니다. 만약 당신이 하나의 응용 프로그램만 가지고 있다면, 이것은 지나치게 복잡하다고 생각할 수 있습니다. 그러나 처음부터 SSO를 도입하면 많은 골칫거리를 피할 수 있으며, SSO 구현은 생각보다 쉽습니다.
시작하기 전에 두 가지 유형의 SSO가 있음을 언급해야 합니다:
- 첫 번째 유형은 동일한 사용자 데이터베이스를 공유하는 여러 개의 응용 프로그램이 있는 경우입니다. 이 글에서는 이 유형의 SSO에 대해 논의할 것입니다.
- 두 번째 유형은 고객이 중앙화된 ID 공급자(IdP)를 가지고 있으며 당신이 그것과 통합해야 할 때입니다. 이것은 이 글의 범위를 벗어납니다.
SSO의 이유는?
인증 모델의 단순화
SSO의 가장 분명한 장점은 인증 모델을 단순화한다는 것입니다. 온라인 상점으로 시작한다고 가정하면 초기 인증 모델은 간단합니다:
비즈니스가 성장함에 따라 상점 주인이 자신의 상점을 관리할 수 있도록 상점 관리 앱을 추가하기로 결정했습니다. 이제 두 개의 응용 프로그램이 사용자 인증을 필요로 합니다.
다음은 선택할 수 있는 몇 가지 선택사항입니다:
1. 상점 관리 앱을 위한 별도의 사용자 데이터베이스를 생성할 수 있습니다.
이것은 가장 간단한 솔루션이지만, 상점 관리 앱에 대한 인증 프로세스를 구현해야 하며, 사용자는 앱을 사용하기 위해 새 계정을 생성해야 합니다.
2. 두 응용 프로그램 모두에 동일한 사용자 데이터베이스를 사용할 수 있습니다.
이것은 더 나은 솔루션입니다. 사용자는 새 계정을 만들 필요가 없기 때문입니다. 그러나 여전히 상점 관리 앱의 인증 프로세스를 구현해야 합니다.
3. SSO를 사용할 수 있습니다.
이것은 지금까지 최고의 솔루션입니다. 다른 인증 프로세스를 구현할 필요가 없고 상점 관리 앱을 위한 새 계정을 만들 필요도 없습니다. 게다가, 더 많은 응용 프로그램과 로그인 방법을 추가할 수 있으며, 인증 모델이나 사용자 경험을 변경할 필요도 없습니다.
사용자 경험 개선
SSO는 두 가지 방법으로 사용자 경험을 개선합니다:
- 사용자는 여러 응용 프로그램에서 동일한 계정을 공유할 수 있습니다.
- 한 응용 프로그램에 로그인한 후에는 동일한 디바이스의 다른 응용 프로그램에서 다시 로그인할 필요가 없습니다.
여기서 일부 걱정들이 발생할 수 있지만, 모두 해결 가능한 것들입니다.
1. 응용 프로그램을 어떻게 구별할까요?
싱글 사인온은 모든 응용 프로그램을 동일하게 취급하지 않습니다. 잘 알려진 오픈 표준 OpenID Connect에서 각 응용 프로그램은 클라이언트로 불리며, 인증 플로우는 클라이언트 유형에 따라 다릅니다. 최종 사용자는 차이를 알 필요가 없지만, 클라이언트 유형은 인증 서버가 인증 플로우를 결정하는 데 중요합니다.
2. 사용자가 동일한 계정을 공유하고 싶지 않다면?
이는 유효한 걱정이지만, SSO의 문제는 아닙니다. 사용자가 동일한 계정을 공유하지 않으려면 새 응용 프로그램을 위한 새 계정을 생성할 수 있습니다. 중요한 것은 사용자가 선택할 수 있는 옵션을 제공하는 것입니다.
3. 특정 응용 프로그램에 대한 액세스를 제한해야 한다면?
사실, SSO는 인증을 위한 기술이고, 액세스 제어는 권한을 위한 것입니다. SSO는 액세스 제어와 분리될 수 있습니다. 예를 들어, SSO를 사용하여 사용자를 인증한 후, 역할 기반 액세스 제어(RBAC)를 사용하여 특정 응용 프로그램이나 리소스에 대한 액세스를 제한할 수 있습니다.
인증 및 권한 부여에 대해 더 알고 싶다면, CIAM 101: 인증, ID, SSO을 확인해보세요.
4. SSO는 사용자를 인증 서버로 리다이렉트해야 합니다.
리다이렉팅은 인증에 대한 표준 관행입니다. 사용자 경험을 고려하여 여러 기법을 활용하여 마찰을 줄일 수 있습니다:
- 인증 빈도를 줄이기 위해 리프레시 토큰을 사용합니다.
- 클릭 수를 줄이기 위해 Google이나 Facebook과 같은 특정 로그인 방법으로 인증 프로세스를 초기화합니다.
- 인증 과정을 가속화하기 위해 조용한 인증을 활용합니다.
보안 강화
1. 모든 보안 관련 작업을 위한 중앙 장소
SSO를 사용하면 모든 보안 관련 작업을 중앙에서 관리할 수 있습니다. 예를 들어, 이전 섹션에서 언급했듯이, SSO는 여전히 응용 프로그램을 차별화하고 각 응용 프로그램에 대한 플랫폼별 인증 플로우를 적용할 수 있습니다. SSO 없이 여러 응용 프로그램 유형에 따라 다양한 인증 플로우를 구현해야 합니다.
또한, 다중 요소 인증(MFA)와 같은 고급 보안 기능은 SSO와 함께 사용하면 인증 모델에 혼란을 줄이지 않고도 구현하기 쉽습니다.
2. 공격 표면 감소
이론적으로 SSO는 여러 응용 프로그램 대신 하나의 인증 서버만 보안할 필요가 있기 때문에 공격 표면을 줄입니다. 중앙 집중식 접근 방식은 의심스러운 활동을 모니터링하고 감지하기도 쉽습니다.
3. 검증된 표준과 프로토콜
OpenID Connect 및 OAuth 2.0과 같은 오픈 표준 및 프로토콜은 업계에서 널리 사용되며 수년간 검증되었습니다. 이들은 SSO 개념과 일치하며 대부분의 ID 공급자(IdP)에 의해 지원됩니다. 이러한 표준을 SSO와 결합하여 보안적이고 신뢰할 수 있는 인증 시스템을 구축할 수 있습니다.
좋아요, SSO를 구현해 봅시다
SSO 구현은 크고 복잡할 수 있으며, 많은 것들을 고려해야 합니다:
- 표준 및 프로토콜 준수
- 다른 클라이언트 유형에 대한 인증 플로우
- 여러 로그인 방법
- MFA와 같은 보안 기능
- 사용자 경험
- 액세스 제어
이러한 주제 각각은 별도의 글이 될 수 있으며 압도적일 수 있습니다. 간단함을 위해, 기본적으로 SSO를 제공하는 관리형 서비스를 시작하는 것이 좋습니다. 우리 제품 Logto는 그러한 서비스이며, 응용 프로그램에 통합하는 데 단 몇 분 밖에 걸리지 않습니다.
관리형 서비스를 사용할 때 가장 흔한 우려는 공급업체 종속성입니다. 다행히도, 이것은 Logto의 문제가 아닙니다. Logto는 OpenID Connect와 OAuth 2.0을 기반으로 구축되었으며, 오픈 소스로 태어났습니다. 우리는 고객에게 보장을 제공하는 것을 우선시하며, 선택의 자유를 갖추려는 목표를 가지고 있습니다.