통합 로그인 시스템
1. 통합 로그인 (SSO, Single-Sign On)의 개념
- 통합 로그인(SSO)은 하나의 디지털 ID와 한 번의 로그인으로 연동된 모든 온라인 서비스에 접속하는 인증 방식
예시:
- 오프라인: 대학교 학생증 하나로 도서관 출입, 수강신청, 기숙사 출입, 학식 결제 등 다양한 교내 서비스를 이용할 수 있는 것과 유사합니다.
- 온라인: Google 계정, 네이버 아이디, 카카오 아이디 등으로 여러 웹사이트나 모바일 앱에 간편하게 로그인하는 것이 대표적인 예시
주요 표준 프로토콜:
- SAML (Security Assertion Markup Language)
- 특징: 정부 기관, 대학교, 기업 등 높은 보안 수준과 복잡한 정보 교환이 필요한 환경에서 주로 활용
- 장점: 안전하고, 많은 사용자 속성 정보(예: 소속, 직위 등)를 전달 가능
- 단점: 설정이 복잡하며, 모바일 환경에 적용하기에는 부적합한 측면 존재
- OAuth 2.0 / OIDC (OpenID Connect)
- 특징: SNS, 모바일 앱 등 사용자 접근 권한 위임 및 간편 인증에 주로 사용
- 장점: 설정이 간단하고, 모바일 환경에 친화적
- 단점: SAML에 비해 전달할 수 있는 사용자 정보가 단순
- SAML (Security Assertion Markup Language)
통합 로그인(SSO)의 3대 요소:
- 아이디 제공자 (Identity Provider, IdP)
- 사용자 신원을 확인하고 디지털 증명서(인증 정보)를 발급하는 기관
- 사용자 신원 정보와 사용자 상태를 관리 (신분증 발급 기관 역할)
- 서비스 제공자 (Service Provider, SP)
- 사용자의 디지털 신분증(인증 정보)을 확인하고, 해당 사용자에게 서비스를 제공하는 업체 (서비스 제공업체 역할)
- 사용자 (User):
- 자신의 디지털 신분증을 가지고 다니며 서비스를 이용하는 주체
- 아이디 제공자 (Identity Provider, IdP)
보안과 개인정보보호:
- 비밀번호 보호: 각 서비스 제공자마다 다른 비밀번호를 기억할 필요가 없어 비밀번호 관리 부담이 줄어듬
- 사용자 동의: 어떤 정보가 서비스 제공자에게 전달되는지 사용자에게 명시적으로 알리고 동의를 받음
- 개인정보 오남용 방지: 사용자가 동의한 정보만 서비스 제공자에게 전달되어 개인정보 오남용을 방지
기관에서 얻는 이득:
- 사용자 편의성: 하나의 계정으로 모든 연동 서비스를 이용할 수 있어 사용자 만족도가 높음
- 보안 강화: 중앙 집중식으로 보안을 관리하여 전반적인 보안 수준을 높일 수 있음
- 비용 절감: 각 서비스별로 별도의 계정 관리 시스템을 구축하고 운영할 필요가 없어 비용 절감
- 국제 호환성: 표준 프로토콜을 사용하여 해외 서비스와의 연동이 용이
2. SAML을 이용하는 연합 로그인 이해
- 연합 로그인(Federated Login)은 SSO의 확장된 개념으로, 서로 다른 기관들이 사용자 인증 정보를 공유함으로써 한 번의 로그인으로 여러 기관의 서비스를 이용 가능하게 하는 신뢰 기반의 기관 간 연합 통합 로그인
- Zero-Trust와는 반대의 개념으로, 상호 신뢰가 기본 전제
장점:
- 사용자 편의성: 하나의 계정으로 여러 기관의 서비스를 이용할 수 있음
- 보안성: 각 서비스마다 계정을 생성할 필요가 없어 계정 정보 노출 위험 저하
- 일관성: 기관 간 동일한 로그인 절차를 경험
- 기관 비용 절감: 개별 서비스마다 계정을 관리할 필요가 없어 기관 운영 비용이 절감
- 보안 강화: 표준 프로토콜 사용 및 중앙 집중 관리(연합 관리)를 통해 보안 수준을 높임
- 국제 협력: 해외 기관과 서비스 및 자원 공유가 용이함
- 사용자 만족도: 편리한 서비스 이용 경험으로 사용자 만족도가 향상
왜 SAML을 사용하는가?
- 다양한 사용자 정보 전달: SAML은 사용자 속성(Attribute) 정보를 유연하게 정의하고 전달 가능
- 디지털 서명으로 정보 위변조 방지: 메시지 교환 시 디지털 서명을 사용하여 정보의 위변조를 방지함으로써 높은 보안 수준 제공
- 메타데이터를 통한 자동화된 신뢰 관계 구축: 기관 간 연동에 필요한 설정 정보를 메타데이터 형태로 교환하여 신뢰 관계 구축을 자동화하고 간소화
- 국제 표준: SAML은 국제 표준으로 널리 인정받고 있어 다양한 시스템 간의 상호 운용성 보장
메타데이터란?
- IdP와 SP 간의 연동을 위한 설정 정보를 담고 있는 XML 문서
- 각 기관의 공개 키, 엔드포인트 URL, 지원 프로토콜 등의 정보가 포함되며, 마치 기관의 "명함"과 유사한 역할
연합 로그인의 동작 과정 (SAML 기준):
- 사전 준비 (메타데이터 교환): 서비스 이용 전, IdP와 SP는 서로의 메타데이터를 교환하여 신뢰 관계를 구축하고 연동 설정을 완료
- 사용자 인증:
- 사용자가 SP(서비스 제공자)의 서비스에 접근을 시도
- SP는 사용자에게 IdP(아이디 제공자)를 선택하도록 안내하거나 미리 설정된 IdP로 리다이렉트
- 사용자는 선택된 IdP의 로그인 페이지로 이동하여 IdP에 인증(로그인)
- IdP는 인증 성공 후, 사용자 속성 정보가 포함된 SAML 어설션(Assertion)을 SP로 전달.
- 이 과정에서 웹 브라우저가 중개자 역할을 하며, 사용자 속성 정보만 전달되고 비밀번호 포함되지 않음
- 서비스 이용:
- SP는 IdP로부터 받은 SAML 어설션의 유효성을 검증하고, 사용자 정보를 바탕으로 서비스 이용 권한을 부여
- 사용자는 SP의 서비스를 이용가능
예시: IEEE 논문을 보고 싶을 때
- IEEE 웹사이트에서 논문 열람 시 "소속 기관 선택"을 통해 "OO 대학"을 선택
- "OO 대학 로그인 페이지"로 이동하여 OO 대학 계정으로 로그인(IdP 인증).
- OO 대학은 사용자가 재학생임을 확인하고, IEEE 웹사이트로 인증 정보(SAML 어설션)를 전달
- IEEE 웹사이트는 인증 정보를 확인하여 해당 사용자가 OO 대학 재학생임을 인지하고 논문 열람을 허용
3. 연합 로그인과 KAFE의 역할
- 연합 로그인은 통합 로그인(SSO)의 개념을 여러 기관에 걸쳐 확장한 것
- 핵심은 신뢰 네트워크 구축
연합이 없다면?
- 각 기관마다 수백 개의 서비스와 개별적인 연동 협정 및 설정이 필요하여 비효율적
- 각 서비스별로 메타데이터를 개별적으로 교환하고 관리해야 하므로 복잡성이 가중
- 기관 간 보안 정책의 일관성을 유지 어려움
- 새로운 서비스 추가 시 모든 연동 기관이 개별적인 작업을 수행
연합이 있다면? (KAFE와 같은 연합 기구의 역할)
- 한 번의 협정으로 연합에 속한 모든 연동 서비스를 이용 가능
- 통일된 보안 정책과 중앙 집중식 관리가 가능
- 새로운 서비스 추가 시 연합의 규칙에 따라 자동 연동
- 연합 기구로부터 기술 지원과 문제 해결 도움을 받을 수 있음
신뢰 체계
연합 로그인은 기술적, 정책적, 운영적 신뢰 바탕의 운영
- 기술적 신뢰
- 디지털 서명: 메타데이터 및 인증 메시지의 위변조를 방지
- 암호화 통신: HTTPS/TLS를 필수적으로 사용하여 통신 보안을 강화
- 표준 준수: SAML 2.0과 같은 국제 표준을 적용하여 상호 운용성을 보장
- 정책적 신뢰
- 연합 참여 기관들이 공통의 보안 정책 및 운영 규칙에 동의
- 운영적 신뢰
- 연합 운영 기관(예: KAFE)의 안정적인 서비스 제공 및 관리 역량을 신뢰
메타데이터의 생명주기 (Lifecycle) - KAFE 중심
- 생성 단계: 각 IdP 및 SP가 자신의 메타데이터를 생성
- 등록 단계: IdP 및 SP는 KAFE에 메타데이터를 제출하고, KAFE는 이를 검증하여 등록
- 배포 단계: KAFE는 등록된 모든 메타데이터를 통합하여 연합에 참여하는 기관들에게 배포
- 업데이트 단계: 각 IdP 및 SP는 주기적으로 메타데이터를 자동 갱신하거나 변경사항을 반영
- 관리 단계: KAFE는 연합 전체의 메타데이터를 모니터링하고 문제 발생 시 해결을 지원
4. SAML IdP 구축
- SAML 기반 연합 로그인을 위해 IdP(아이디 제공자)와 SP(서비스 제공자)를 구축해야 함
IdP (Identity Provider)
- 역할
- 기관의 계정 관리 시스템이자 디지털 신분증 발급 및 상태 정비소
- 사용자 신원 확인 및 디지털 신분증(SAML 어설션) 발급.
- 사용자 정보 관리 및 제공 (SP로 속성 정보 전달).
- 보안 관리.
- 구축 절차
- 서버 준비: IdP 소프트웨어를 설치할 서버를 준비
- IdP 소프트웨어 설치: Open Source Shibbboleth IdP와 같은 SAML IdP 소프트웨어를 설치
- 기관 계정 DB 연동: 기존에 사용하던 사용자 계정 데이터베이스(DB)와 IdP를 연동
- 모형 SP 연결 시험: 테스트용 서비스 제공자(SP)를 만들어 IdP와의 연동 및 인증 흐름을 시험
- 연합 가입: KAFE와 같은 연합에 IdP를 등록하고 연동 절차를 진행
- 운영: 실제 서비스 환경에서 IdP를 운영하고 모니터링
SP (Service Provider)
- 역할
- 디지털 신분증을 이용하여 사용자에게 서비스 접근을 허용
- IdP로부터 받은 디지털 신분증을 소비하고 유효성을 확인
- 사용자 정보를 이용하여 서비스 이용 권한을 부여
- 웹 응용 업데이트 및 개발이 필요 할 수 있음(SAML 연동 모듈 등).
- 구현 절차:
- 개발 환경 준비SP 기능을 구현할 개발 환경을 설정
- 웹 응용 소프트웨어 업데이트: 기존 웹 애플리케이션에 SAML 연동 모듈을 추가하거나 관련 코드를 업데이트
- 모형 IdP 연결 시험: 테스트용 IdP를 만들어 SP와의 연동 및 인증 흐름을 시험
- 연합 가입: KAFE와 같은 연합에 SP를 등록하고 연동 절차를 진행
- 실 환경 포팅: 개발이 완료된 SP를 실제 서비스 환경에 배포
- 시험 및 운영: 실제 환경에서 SP가 정상적으로 동작하는지 시험하고 운영
기관 사용자 계정 DB 연동 (IdP 측면)
- 로컬 및 원격 데이터베이스
- 로컬 DB
- IdP 서버 자체의 설정 상태 및 로그 정보를 저장
- 원격 DB
- 기관의 기존 사용자 계정을 저장하는 데이터베이스
- IdP는 이 원격 DB와 연동하여 사용자 인증 및 정보 조회에 활용
- 로컬 DB
- 원격 DB 연동 방법:
- RESTful API
- 원격 DB의 데이터를 제공하는 API를 통해 연동
- 직접 DB 연결
- Oracle, LDAP/AD, MySQL, MSSQL, PostgreSQL 등 다양한 데이터베이스에 직접 연결하여 사용자 정보를 조회
- RESTful API
- 원격 DB에 저장 필수 사용자 정보
- 사용자 ID
- 비밀번호 (해시 또는 암호화된 형태)
- 성명
- 이메일 주소
- 직무 정보 (필요시)
- 보안 설정 (예: 계정 잠금 상태)
보안 설정 강화 (IdP 측면)
- 로그인 보안 강화
- 로그인 시도 횟수 제한
- 무차별 대입 공격(Brute-force attack) 방지를 위해 로그인 시도 횟수를 제한
- 계정 잠금/해제 기능
- 일정 횟수 이상 로그인 실패 시 계정을 자동으로 잠그고, 관리자나 사용자 본인이 해제할 수 있는 기능을 제공
- 로그인 기록 관리
- 모든 로그인 시도 및 성공/실패 기록을 상세히 관리하여 보안 감사 및 침해 사고 분석에 활용
- 로그인 시도 횟수 제한
- 인증서 및 암호화
- 기관 Wildcard 인증서
- 웹 서버 및 서비스의 신뢰성을 증명하고 암호화 통신을 위해 Wildcard SSL/TLS 인증서를 사용
- HTTPS 통신
- IdP와 사용자, IdP와 SP 간의 모든 통신은 HTTPS/TLS 프로토콜을 사용하여 암호화
- 메타데이터 디지털 서명
- 메타데이터의 무결성과 신뢰성을 보장하기 위해 디지털 서명을 적용
- 기관 Wildcard 인증서
- 방화벽 설정 가이드
- HTTPS
- TCP 80 (HTTP 리다이렉트), 443 (HTTPS) 포트를 개방
- NTP
- UDP 123 포트를 개방하여 시간 동기화를 위한 NTP서비스가 가능하도록 함.
- HTTPS
문제 해결 (Troubleshooting)
- 자주 발생하는 문제
- 시간 동기화
- 반드시 NTP 동기화
- 시간이 동기화되지 않으면
Replay Attack
방지 메커니즘으로 인해 SAML 메시지 유효성 검증에 실패 가능 ntp
또는chronyd
와 같은 도구를 통해 NTP 재설정 및 동작 여부를 검증
- 기관 DB 연결 실패
- 데이터베이스 서버 또는 IdP 서버의 방화벽 설정, 네트워크 연결, DB 계정 권한 등을 확인하고 변경
- 메타데이터 오류
- 서비스 제공자가 KAFE에 올바르게 가입되지 않았거나, KAFE에서 차단된 경우, 또는 메타데이터 자체에 오류가 있는 경우 연동이 실패
- 메타데이터의 유효성을 검증하고 KAFE 가이드라인에 따라 수정
- 시간 동기화
관리 운영 도구
- 관리 기능
- 사용자 관리: 사용자 계정 생성, 수정, 삭제, 권한 관리 등.
- 서비스 관리: 연동된 SP 서비스 등록, 수정, 삭제, 상태 모니터링 등.
- 로그 관리: 로그인 기록, 에러 로그, 감사 로그 등을 기록하고 조회
- 보안 관리: 인증서 관리, 보안 정책 설정, 취약점 점검 등.
- 기타: 시스템 상태 모니터링, 성능 분석 도구 등이 포함될 수 있음
5. IdP 운영 및 KAFE 가입
KAFE는 국내 연구 및 교육 기관 간의 연합 인증 서비스를 제공
- KAFE 가입:
- KAFE 연합에 참여하고자 하는 기관은 웹사이트를 통해 가입 절차 진행
- 가입 절차는 일반적으로 기관 IdP 또는 SP 구축 완료 후 메타데이터 제출 및 검증, 연동 테스트 등의 과정을 포함