OIDC란? Ory를 활용한 인증 알아보기
OIDC(OpenID Connect)란?
회사에서 IAM(Identity and Access Management) 시스템을 구축하게 되면서 OIDC(OpenID Connect)에 대해 공부해봤습니다. 요즘 많은 서비스에서 Google, Facebook, GitHub 계정으로 로그인할 수 있는데요. 이러한 기능을 가능하게 해주는 표준 프로토콜이 바로 OIDC(OpenID Connect)입니다.
기존의 OAuth 2.0은 사용자가 API에 접근할 수 있는 Access Token을 발급받을 수 있지만, "이 사용자가 누구인지"는 정확히 알 수 없었습니다. OIDC는 OAuth 2.0을 확장하여 ID Token을 추가하여 사용자 신원을 보장하는 프로토콜입니다.
즉, OIDC를 사용하면 OAuth 2.0의 인증 기능을 보완하여, 안전하고 신뢰할 수 있는 로그인 시스템을 구축할 수 있습니다.
OIDC의 핵심 개념
OIDC는 로그인 과정에서 ID Token을 발급하는 것이 핵심입니다.
📌 OIDC 로그인 흐름 (Authorization Code Flow)
1️⃣ 사용자가 웹사이트에서 로그인 버튼 클릭
2️⃣ 클라이언트(웹/앱)가 OIDC 제공자(Identity Provider, OP)에 인증 요청
3️⃣ 사용자가 로그인 및 동의
4️⃣ OIDC 제공자가 Authorization Code를 반환
5️⃣ 클라이언트가 Authorization Code를 사용하여 OIDC 제공자에게 토큰 요청
6️⃣ OIDC 제공자가 Access Token + ID Token을 반환
7️⃣ 클라이언트가 ID Token을 검증하여 사용자를 인증
📌 OIDC에서 사용하는 토큰
토큰 종류설명
ID Token | 사용자의 신원 정보를 포함한 JWT (로그인 인증) |
Access Token | API 접근 권한을 부여하는 토큰 (OAuth 2.0) |
Refresh Token | Access Token을 갱신하는 토큰 |
OIDC 기반 인증, Ory
OIDC를 활용하면 강력한 사용자 인증 시스템을 구축할 수 있지만, 직접 구현하려면 생각보다 복잡한 과정이 필요합니다.
회사에서는 OIDC 기반 IAM 시스템을 구축하기 위해 Ory를 사용하고 있습니다. Ory의 대표적인 제품인 Ory Hydra와 Ory Kratos를 활용하면 OAuth 2.0 및 OIDC 기반의 인증 시스템을 쉽게 구축할 수 있습니다.
✅ Ory Hydra: OIDC 인증을 위한 솔루션
Ory Hydra는 OAuth 2.0 및 OIDC 기반의 인증 서버 역할을 합니다. 쉽게 말해 Google, Facebook 같은 OIDC Provider를 직접 구축할 수 있도록 도와줍니다.
📌 Ory Hydra의 역할
- OAuth 2.0 및 OIDC 기반 인증 제공
- Access Token 및 ID Token 발급
- OpenID Provider 역할 수행 (SSO 지원)
- 다양한 클라이언트(웹, 모바일 앱)에서 로그인 및 인증 가능
즉, Ory Hydra를 사용하면 OAuth 2.0 + OIDC 인증 서버를 직접 운영할 수 있습니다.
✅ Ory Kratos: 사용자 관리까지 해결!
Ory Kratos는 **사용자 계정 관리(User Management)**를 담당하는 제품입니다.
📌 Ory Kratos의 역할
- 사용자 계정 등록/로그인 관리
- OAuth 2.0 및 OIDC 연동 가능
- 비밀번호 로그인, 소셜 로그인(Google, GitHub 등) 지원
- 세션 및 다중 인증(MFA) 관리
즉, Ory Kratos를 사용하면 OIDC 기반 사용자 인증과 계정 관리를 모두 해결할 수 있습니다.
OIDC + Ory를 사용해야 하는 이유
✅ OAuth 2.0의 보안 문제 해결 (ID Token 포함)
✅ JWT 기반 인증 (서버 간 인증 가능)
✅ SSO(Single Sign-On) 지원
✅ 사용자 정보 보호 및 OAuth 2.0 기반 API 인증 가능
💡 즉, Ory Hydra와 Kratos를 조합하면 강력한 OIDC 기반 인증 시스템을 쉽게 구축할 수 있습니다! 🚀
- Ory Hydra 공식 문서: https://www.ory.sh/hydra/docs
- Ory Kratos 공식 문서: https://www.ory.sh/kratos/docs
- OIDC 공식 문서: https://openid.net/developers/specs/