Search

250108_1727_SaaS 모듈인증 + 클라우드 인증

SaaS 모듈 인증과 클라우드 인증은 소프트웨어를 서비스로 제공(SaaS)하거나 클라우드 환경에서 애플리케이션을 배포할 때 보안을 유지하고 인증/인가를 처리하기 위해 사용하는 주요 개념과 절차를 포함함.
아래에서는 로컬 환경, 온프레미스 환경, 클라우드 환경(AWS 등), 마이크로서비스 배포 상황에서 SaaS 모듈 인증과 클라우드 인증 절차를 설명함.

SaaS 모듈 인증과 클라우드 인증의 의미

1.
SaaS 모듈 인증
SaaS 모듈이 특정 사용자나 클라이언트가 액세스할 수 있도록 인증을 관리.
주로 OAuth 2.0, SAML, **OpenID Connect(OIDC)**와 같은 표준 인증 프로토콜을 사용.
목적:
사용자 신원 확인.
다중 테넌트 구조에서 각 테넌트별 접근 제어.
사용량 기반 요금제 적용 시 사용자 트래픽 추적.
2.
클라우드 인증
AWS, Azure, GCP 등 클라우드 환경에서 리소스나 API에 대한 접근을 관리.
클라우드 서비스 제공자가 제공하는 IAM(Identity and Access Management) 또는 API 키를 기반으로 인증.
목적:
리소스 보호.
인증된 요청만 허용.
사용자 및 애플리케이션 권한 분리.

배포 환경별 SaaS 모듈 인증/클라우드 인증 절차

1. Local 환경에서 배포

로컬 환경에서 SaaS 모듈이나 애플리케이션을 실행할 경우:
목적: 개발, 테스트 및 디버깅.
절차:
1.
개발용 인증 서버 구성
OAuth 2.0, OIDC, 또는 SAML을 지원하는 인증 서버 설정 (예: Keycloak, Auth0 Dev 환경, Firebase).
로컬 환경에서 http://localhost:3000과 같은 테스트 도메인 사용.
2.
API 키 또는 클라이언트 ID/비밀 키 발급
로컬 환경에서 애플리케이션이 인증 서버와 통신하기 위한 키를 생성.
3.
환경 파일 설정
.env 파일에 아래와 같은 설정 추가:
AUTH_CLIENT_ID=your-client-id AUTH_CLIENT_SECRET=your-secret-key AUTH_REDIRECT_URI=http://localhost:3000/callback
Plain Text
복사
4.
인증 및 인가 테스트
애플리케이션에 로그인 요청을 보내고 토큰 발급 절차 테스트.
5.
HTTPS 환경 시뮬레이션
HTTPS가 필요한 경우 mkcert 등을 사용하여 로컬에서 인증서를 생성하고 HTTPS 구성.

2. 온프레미스 환경에서 배포

온프레미스 서버는 자체 데이터 센터에서 호스팅되므로 클라우드 제공자가 제공하는 IAM을 대신할 수 있는 솔루션 필요.
목적: 조직 내부 서비스 보호.
절차:
1.
온프레미스 인증 시스템 설정
LDAP, Active Directory(AD), Keycloak 같은 솔루션으로 인증 시스템 구축.
2.
서비스 간 인증 관리
API 통신 시 JWT(Json Web Token) 또는 API 키를 활용.
3.
사용자 인증 및 SSO
SAML 또는 OIDC를 통해 사용자 인증 및 SSO(Single Sign-On) 구성.
4.
방화벽 및 네트워크 보안
인증 서버와 애플리케이션 서버 간 통신에 대해 방화벽 설정.
5.
TLS/SSL 구성
자체 인증서(CA)를 발급하거나 Let's Encrypt를 사용하여 HTTPS 구성.

3. AWS 같은 클라우드 서비스로 배포

클라우드 환경에서는 클라우드 제공자의 인증 서비스와 SaaS 인증을 함께 활용.
목적: 확장성 있는 인증과 클라우드 리소스 보호.
절차:
1.
IAM(Role 기반 접근 제어) 설정
AWS IAM, Azure AD, 또는 GCP IAM을 사용하여 리소스별 권한 할당.
2.
인증 서버와의 연동
SaaS 모듈 인증에 필요한 클라이언트 ID/비밀 키를 환경 변수로 저장.
3.
클라우드 네이티브 인증
AWS Cognito, Azure B2C, Firebase Auth 등 클라우드 네이티브 인증 서비스를 활용.
4.
HTTPS/TLS 활성화
클라우드 제공자의 로드 밸런서를 사용해 SSL 인증서 적용.
5.
비밀 키 관리
AWS Secrets Manager 또는 Azure Key Vault를 사용하여 인증 키 관리.

4. 마이크로서비스로 배포

마이크로서비스 환경에서는 서비스 간 통신과 사용자 인증을 모두 고려해야 함.
목적: 서비스 간 보안 및 사용자 인증 관리.
절차:
1.
서비스 간 인증
gRPC, REST API 호출 시 서비스별로 발급된 JWT 토큰 사용.
각 마이크로서비스에서 토큰 검증 로직 추가.
2.
API Gateway 도입
API Gateway(Nginx, Kong, AWS API Gateway 등)를 통해 인증 로직 중앙화.
Gateway에서 사용자의 JWT 토큰 검증 후 마이크로서비스로 요청 전달.
3.
사용자 인증
중앙 인증 서버(OAuth 2.0, Keycloak)와 통합.
Access Token 발급 후 각 서비스에서 인가 수행.
4.
분산 트레이싱 및 로깅
인증 및 인가 흐름에 대한 로깅과 추적 설정.
5.
HTTPS 활성화 및 트래픽 암호화
각 서비스 간 통신과 사용자 통신에 HTTPS 사용.

결론

SaaS 모듈 인증과 클라우드 인증은 배포 환경에 따라 약간씩 다르지만, 공통적으로 OAuth 2.0, SAML, JWT와 같은 표준을 활용하여 사용자와 서비스 간 보안을 강화함.
환경에 따라:
로컬: 테스트를 위한 인증 서버 활용.
온프레미스: 자체 인증 시스템 구축.
클라우드: 클라우드 네이티브 인증 서비스 활용.
마이크로서비스: API Gateway와 분산 인증 체계 사용.
위 절차를 참고하여 배포 환경에 적합한 인증 솔루션을 선택하고 적용하면 안정적인 인증 시스템을 구축할 수 있음.

안녕하세요

한국전자기술연구원 김영광입니다.
관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.

Hello

I'm Yeonggwang Kim from the Korea Electronics Research Institute.
For technical and business inquiries, please contact me at “glory@keti.re.kr”