통합 로그인 시스템

1. 통합 로그인 (SSO, Single-Sign On)의 개념

  • 통합 로그인(SSO)은 하나의 디지털 ID와 한 번의 로그인으로 연동된 모든 온라인 서비스에 접속하는 인증 방식
  • 예시:

    • 오프라인: 대학교 학생증 하나로 도서관 출입, 수강신청, 기숙사 출입, 학식 결제 등 다양한 교내 서비스를 이용할 수 있는 것과 유사합니다.
    • 온라인: Google 계정, 네이버 아이디, 카카오 아이디 등으로 여러 웹사이트나 모바일 앱에 간편하게 로그인하는 것이 대표적인 예시
  • 주요 표준 프로토콜:

    • SAML (Security Assertion Markup Language)
      • 특징: 정부 기관, 대학교, 기업 등 높은 보안 수준과 복잡한 정보 교환이 필요한 환경에서 주로 활용
      • 장점: 안전하고, 많은 사용자 속성 정보(예: 소속, 직위 등)를 전달 가능
      • 단점: 설정이 복잡하며, 모바일 환경에 적용하기에는 부적합한 측면 존재
    • OAuth 2.0 / OIDC (OpenID Connect)
      • 특징: SNS, 모바일 앱 등 사용자 접근 권한 위임 및 간편 인증에 주로 사용
      • 장점: 설정이 간단하고, 모바일 환경에 친화적
      • 단점: SAML에 비해 전달할 수 있는 사용자 정보가 단순
  • 통합 로그인(SSO)의 3대 요소:

    1. 아이디 제공자 (Identity Provider, IdP)
      • 사용자 신원을 확인하고 디지털 증명서(인증 정보)를 발급하는 기관
      • 사용자 신원 정보와 사용자 상태를 관리 (신분증 발급 기관 역할)
    2. 서비스 제공자 (Service Provider, SP)
      • 사용자의 디지털 신분증(인증 정보)을 확인하고, 해당 사용자에게 서비스를 제공하는 업체 (서비스 제공업체 역할)
    3. 사용자 (User):
      • 자신의 디지털 신분증을 가지고 다니며 서비스를 이용하는 주체
  • 보안과 개인정보보호:

    • 비밀번호 보호: 각 서비스 제공자마다 다른 비밀번호를 기억할 필요가 없어 비밀번호 관리 부담이 줄어듬
    • 사용자 동의: 어떤 정보가 서비스 제공자에게 전달되는지 사용자에게 명시적으로 알리고 동의를 받음
    • 개인정보 오남용 방지: 사용자가 동의한 정보만 서비스 제공자에게 전달되어 개인정보 오남용을 방지
  • 기관에서 얻는 이득:

    • 사용자 편의성: 하나의 계정으로 모든 연동 서비스를 이용할 수 있어 사용자 만족도가 높음
    • 보안 강화: 중앙 집중식으로 보안을 관리하여 전반적인 보안 수준을 높일 수 있음
    • 비용 절감: 각 서비스별로 별도의 계정 관리 시스템을 구축하고 운영할 필요가 없어 비용 절감
    • 국제 호환성: 표준 프로토콜을 사용하여 해외 서비스와의 연동이 용이

2. SAML을 이용하는 연합 로그인 이해

  • 연합 로그인(Federated Login)은 SSO의 확장된 개념으로, 서로 다른 기관들이 사용자 인증 정보를 공유함으로써 한 번의 로그인으로 여러 기관의 서비스를 이용 가능하게 하는 신뢰 기반의 기관 간 연합 통합 로그인
  • Zero-Trust와는 반대의 개념으로, 상호 신뢰가 기본 전제
  • 장점:

    • 사용자 편의성: 하나의 계정으로 여러 기관의 서비스를 이용할 수 있음
    • 보안성: 각 서비스마다 계정을 생성할 필요가 없어 계정 정보 노출 위험 저하
    • 일관성: 기관 간 동일한 로그인 절차를 경험
    • 기관 비용 절감: 개별 서비스마다 계정을 관리할 필요가 없어 기관 운영 비용이 절감
    • 보안 강화: 표준 프로토콜 사용 및 중앙 집중 관리(연합 관리)를 통해 보안 수준을 높임
    • 국제 협력: 해외 기관과 서비스 및 자원 공유가 용이함
    • 사용자 만족도: 편리한 서비스 이용 경험으로 사용자 만족도가 향상
  • 왜 SAML을 사용하는가?

    • 다양한 사용자 정보 전달: SAML은 사용자 속성(Attribute) 정보를 유연하게 정의하고 전달 가능
    • 디지털 서명으로 정보 위변조 방지: 메시지 교환 시 디지털 서명을 사용하여 정보의 위변조를 방지함으로써 높은 보안 수준 제공
    • 메타데이터를 통한 자동화된 신뢰 관계 구축: 기관 간 연동에 필요한 설정 정보를 메타데이터 형태로 교환하여 신뢰 관계 구축을 자동화하고 간소화
    • 국제 표준: SAML은 국제 표준으로 널리 인정받고 있어 다양한 시스템 간의 상호 운용성 보장
  • 메타데이터란?

    • IdP와 SP 간의 연동을 위한 설정 정보를 담고 있는 XML 문서
    • 각 기관의 공개 키, 엔드포인트 URL, 지원 프로토콜 등의 정보가 포함되며, 마치 기관의 "명함"과 유사한 역할
  • 연합 로그인의 동작 과정 (SAML 기준):

    1. 사전 준비 (메타데이터 교환): 서비스 이용 전, IdP와 SP는 서로의 메타데이터를 교환하여 신뢰 관계를 구축하고 연동 설정을 완료
    2. 사용자 인증:
      • 사용자가 SP(서비스 제공자)의 서비스에 접근을 시도
      • SP는 사용자에게 IdP(아이디 제공자)를 선택하도록 안내하거나 미리 설정된 IdP로 리다이렉트
      • 사용자는 선택된 IdP의 로그인 페이지로 이동하여 IdP에 인증(로그인)
      • IdP는 인증 성공 후, 사용자 속성 정보가 포함된 SAML 어설션(Assertion)을 SP로 전달.
      • 이 과정에서 웹 브라우저가 중개자 역할을 하며, 사용자 속성 정보만 전달되고 비밀번호 포함되지 않음
    3. 서비스 이용:
      • 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 중심

    1. 생성 단계: 각 IdP 및 SP가 자신의 메타데이터를 생성
    2. 등록 단계: IdP 및 SP는 KAFE에 메타데이터를 제출하고, KAFE는 이를 검증하여 등록
    3. 배포 단계: KAFE는 등록된 모든 메타데이터를 통합하여 연합에 참여하는 기관들에게 배포
    4. 업데이트 단계: 각 IdP 및 SP는 주기적으로 메타데이터를 자동 갱신하거나 변경사항을 반영
    5. 관리 단계: KAFE는 연합 전체의 메타데이터를 모니터링하고 문제 발생 시 해결을 지원

4. SAML IdP 구축

  • SAML 기반 연합 로그인을 위해 IdP(아이디 제공자)와 SP(서비스 제공자)를 구축해야 함

IdP (Identity Provider)

  • 역할
    • 기관의 계정 관리 시스템이자 디지털 신분증 발급 및 상태 정비소
    • 사용자 신원 확인 및 디지털 신분증(SAML 어설션) 발급.
    • 사용자 정보 관리 및 제공 (SP로 속성 정보 전달).
    • 보안 관리.
  • 구축 절차
    1. 서버 준비: IdP 소프트웨어를 설치할 서버를 준비
    2. IdP 소프트웨어 설치: Open Source Shibbboleth IdP와 같은 SAML IdP 소프트웨어를 설치
    3. 기관 계정 DB 연동: 기존에 사용하던 사용자 계정 데이터베이스(DB)와 IdP를 연동
    4. 모형 SP 연결 시험: 테스트용 서비스 제공자(SP)를 만들어 IdP와의 연동 및 인증 흐름을 시험
    5. 연합 가입: KAFE와 같은 연합에 IdP를 등록하고 연동 절차를 진행
    6. 운영: 실제 서비스 환경에서 IdP를 운영하고 모니터링

SP (Service Provider)

  • 역할
    • 디지털 신분증을 이용하여 사용자에게 서비스 접근을 허용
    • IdP로부터 받은 디지털 신분증을 소비하고 유효성을 확인
    • 사용자 정보를 이용하여 서비스 이용 권한을 부여
    • 웹 응용 업데이트 및 개발이 필요 할 수 있음(SAML 연동 모듈 등).
  • 구현 절차:
    1. 개발 환경 준비SP 기능을 구현할 개발 환경을 설정
    2. 웹 응용 소프트웨어 업데이트: 기존 웹 애플리케이션에 SAML 연동 모듈을 추가하거나 관련 코드를 업데이트
    3. 모형 IdP 연결 시험: 테스트용 IdP를 만들어 SP와의 연동 및 인증 흐름을 시험
    4. 연합 가입: KAFE와 같은 연합에 SP를 등록하고 연동 절차를 진행
    5. 실 환경 포팅: 개발이 완료된 SP를 실제 서비스 환경에 배포
    6. 시험 및 운영: 실제 환경에서 SP가 정상적으로 동작하는지 시험하고 운영

기관 사용자 계정 DB 연동 (IdP 측면)

  • 로컬 및 원격 데이터베이스
    • 로컬 DB
      • IdP 서버 자체의 설정 상태 및 로그 정보를 저장
    • 원격 DB
      • 기관의 기존 사용자 계정을 저장하는 데이터베이스
      • IdP는 이 원격 DB와 연동하여 사용자 인증 및 정보 조회에 활용
  • 원격 DB 연동 방법:
    • RESTful API
      • 원격 DB의 데이터를 제공하는 API를 통해 연동
    • 직접 DB 연결
      • Oracle, LDAP/AD, MySQL, MSSQL, PostgreSQL 등 다양한 데이터베이스에 직접 연결하여 사용자 정보를 조회
  • 원격 DB에 저장 필수 사용자 정보
    • 사용자 ID
    • 비밀번호 (해시 또는 암호화된 형태)
    • 성명
    • 이메일 주소
    • 직무 정보 (필요시)
    • 보안 설정 (예: 계정 잠금 상태)

보안 설정 강화 (IdP 측면)

  • 로그인 보안 강화
    • 로그인 시도 횟수 제한
      • 무차별 대입 공격(Brute-force attack) 방지를 위해 로그인 시도 횟수를 제한
    • 계정 잠금/해제 기능
      • 일정 횟수 이상 로그인 실패 시 계정을 자동으로 잠그고, 관리자나 사용자 본인이 해제할 수 있는 기능을 제공
    • 로그인 기록 관리
      • 모든 로그인 시도 및 성공/실패 기록을 상세히 관리하여 보안 감사 및 침해 사고 분석에 활용
  • 인증서 및 암호화
    • 기관 Wildcard 인증서
      • 웹 서버 및 서비스의 신뢰성을 증명하고 암호화 통신을 위해 Wildcard SSL/TLS 인증서를 사용
    • HTTPS 통신
      • IdP와 사용자, IdP와 SP 간의 모든 통신은 HTTPS/TLS 프로토콜을 사용하여 암호화
    • 메타데이터 디지털 서명
      • 메타데이터의 무결성과 신뢰성을 보장하기 위해 디지털 서명을 적용
  • 방화벽 설정 가이드
    • HTTPS
      • TCP 80 (HTTP 리다이렉트), 443 (HTTPS) 포트를 개방
    • NTP
      • UDP 123 포트를 개방하여 시간 동기화를 위한 NTP서비스가 가능하도록 함.

문제 해결 (Troubleshooting)

  • 자주 발생하는 문제
    • 시간 동기화
      • 반드시 NTP 동기화
      • 시간이 동기화되지 않으면 Replay Attack 방지 메커니즘으로 인해 SAML 메시지 유효성 검증에 실패 가능
      • ntp 또는 chronyd와 같은 도구를 통해 NTP 재설정 및 동작 여부를 검증
    • 기관 DB 연결 실패
      • 데이터베이스 서버 또는 IdP 서버의 방화벽 설정, 네트워크 연결, DB 계정 권한 등을 확인하고 변경
    • 메타데이터 오류
      • 서비스 제공자가 KAFE에 올바르게 가입되지 않았거나, KAFE에서 차단된 경우, 또는 메타데이터 자체에 오류가 있는 경우 연동이 실패
      • 메타데이터의 유효성을 검증하고 KAFE 가이드라인에 따라 수정

관리 운영 도구

  • 관리 기능
    • 사용자 관리: 사용자 계정 생성, 수정, 삭제, 권한 관리 등.
    • 서비스 관리: 연동된 SP 서비스 등록, 수정, 삭제, 상태 모니터링 등.
    • 로그 관리: 로그인 기록, 에러 로그, 감사 로그 등을 기록하고 조회
    • 보안 관리: 인증서 관리, 보안 정책 설정, 취약점 점검 등.
  • 기타: 시스템 상태 모니터링, 성능 분석 도구 등이 포함될 수 있음

5. IdP 운영 및 KAFE 가입

KAFE는 국내 연구 및 교육 기관 간의 연합 인증 서비스를 제공

  • KAFE 가입:
    • KAFE 연합에 참여하고자 하는 기관은 웹사이트를 통해 가입 절차 진행
    • 가입 절차는 일반적으로 기관 IdP 또는 SP 구축 완료 후 메타데이터 제출 및 검증, 연동 테스트 등의 과정을 포함

참고: https://edu.kafe.or.kr/