본문 바로가기

IT 공부

SSO통합 인증 연동 및 기술 소

반응형

SSO(Single Sign-On) 통합 인증은 사용자가 한 번 로그인하면 여러 애플리케이션이나 시스템을 별도의 로그인 없이 이용할 수 있도록 해주는 기술입니다. 기업 및 기관에서는 보안성과 편의성을 높이기 위해 SSO를 도입하는 경우가 많아요.


1. SSO란?

SSO(Single Sign-On)는 한 번의 인증으로 여러 시스템에 접근할 수 있도록 하는 인증 방식입니다.
✅ 사용자가 한 번 로그인하면 추가적인 인증 없이 여러 서비스 이용 가능
✅ 기업, 학교, 금융, 공공기관 등에서 널리 사용됨
✅ 사용자의 로그인 정보를 중앙에서 관리하여 보안 강화


2. SSO의 장점

🔹 사용자 편의성 → 여러 개의 계정과 비밀번호를 기억할 필요 없음
🔹 보안 강화 → 중앙 집중식 인증 및 접근 제어 가능
🔹 관리 효율성 → IT 부서에서 계정 관리를 단순화할 수 있음
🔹 비밀번호 피로도 감소 → 여러 서비스에서 같은 비밀번호를 재사용하는 문제 해결


3. SSO 연동 방식

1) 쿠키/세션 기반 SSO

  • 브라우저 기반의 내부 애플리케이션 간 SSO 구현
  • 단점: 동일 도메인에서만 작동(도메인이 다르면 적용 어려움)

2) 토큰 기반 SSO (OAuth, OpenID Connect)

  • JWT(JSON Web Token)를 이용하여 인증 정보 전달
  • 다양한 도메인과 애플리케이션에서 활용 가능

3) SAML(Security Assertion Markup Language)

  • XML 기반 인증 방식으로 기업 환경에서 많이 사용됨
  • IDP(Identity Provider)와 SP(Service Provider) 간의 보안 인증을 지원

4) Kerberos 기반 SSO

  • 주로 Windows AD(Active Directory) 환경에서 사용
  • 티켓(ticket)을 발급하여 인증을 수행

4. 주요 SSO 기술 및 프로토콜

기술설명주요 사용처

OAuth 2.0 API 인증을 위한 권한 부여 프로토콜 Google, Facebook, GitHub 등
OpenID Connect (OIDC) OAuth 2.0을 기반으로 한 사용자 인증 프로토콜 모바일, 웹 애플리케이션
SAML 2.0 XML 기반의 기업 환경용 SSO 프로토콜 기업 내부 시스템, 클라우드 서비스
Kerberos 티켓 기반 인증 시스템 Windows AD, 내부 네트워크

5. SSO 연동 절차

1️⃣ IDP(Identity Provider) 선택

  • Google, Azure AD, Okta, Keycloak 등

2️⃣ SP(Service Provider) 설정

  • 웹 애플리케이션 또는 서비스에 인증 연동

3️⃣ 프로토콜 선택

  • OAuth, OIDC, SAML 중 환경에 맞는 프로토콜 결정

4️⃣ 인증 흐름 구현

  • 로그인 요청 → IDP 인증 → 인증 토큰 발급 → SP에서 사용자 세션 유지

6. SSO 구현 예시 (OIDC 기반)

python
복사편집
from flask import Flask, redirect, request, session from authlib.integrations.flask_client import OAuth app = Flask(__name__) app.secret_key = "your_secret_key" oauth = OAuth(app) # OpenID Connect 설정 oauth.register( name="example_sso", client_id="your_client_id", client_secret="your_client_secret", authorize_url="https://idp.example.com/oauth/authorize", token_url="https://idp.example.com/oauth/token", userinfo_endpoint="https://idp.example.com/userinfo" ) @app.route("/login") def login(): return oauth.example_sso.authorize_redirect(redirect_uri="https://your-app.com/callback") @app.route("/callback") def callback(): token = oauth.example_sso.authorize_access_token() user_info = oauth.example_sso.userinfo() session["user"] = user_info return f"Hello, {user_info['name']}!" if __name__ == "__main__": app.run()

OIDC 기반 SSO 구현 예제
Flask + Authlib을 활용한 간단한 로그인


7. 결론

🔹 SSO는 사용자 편의성과 보안을 동시에 높이는 중요한 기술
🔹 OAuth 2.0, OpenID Connect, SAML 등 다양한 방식으로 구현 가능
🔹 기업 환경에서는 IDP 선택 및 보안 정책 설정이 중요
🔹 클라우드 및 모바일 환경에서도 SSO가 필수적인 요소가 됨

📌 SSO를 도입하면 사용자 경험이 향상되고, 보안 및 계정 관리를 효과적으로 할 수 있어요! 🚀

728x90