Keycloak: 오픈 소스 IAM 솔루션

날아올라돼지야·2024년 8월 30일
0

OAuth2와 OpenID Connect 제품 소개

이 강의에서는 OAuth2OpenID Connect 사양에 기반한 다양한 제품에 대해 살펴보겠습니다. 이전 강의에서 우리는 OAuth2와 OpenID Connect에 대해 간략히 다루었으며, 이들이 웹 애플리케이션의 보안을 구현하는 데 필요한 표준을 제공한다는 것을 배웠습니다. 하지만 이러한 사양만으로는 보안을 구현할 수 없으며, 실제로 이를 구현하기 위해서는 사양에 따라 개발된 제품이 필요합니다.


Keycloak: 오픈 소스 IAM 솔루션

먼저 소개할 제품은 Keycloak입니다. Keycloak은 오픈 소스 Identity and Access Management(IAM) 제품으로, OAuth2와 OpenID Connect 표준에 따라 인증 서버를 쉽게 설정할 수 있게 도와줍니다. Keycloak은 Red Hat에서 후원하는 제품으로, 아래쪽에서 Red Hat 로고를 확인할 수 있습니다.

Keycloak은 대규모 조직뿐만 아니라, 자체 인증 서버를 구축할 여력이 없는 중소기업이나 IT 인프라를 효율적으로 관리하려는 조직에 매우 유용합니다. Google, GitHub, Facebook, Twitter와 같은 대기업은 OAuth2와 OpenID Connect 사양을 기반으로 자체 인증 서버를 구축할 수 있지만, 모든 조직이 이를 감당할 수 있는 것은 아닙니다.

Keycloak은 OpenID Connect, OAuth2, SAML과 같은 표준 프로토콜을 지원하며, 소셜 로그인싱글 사인 온(SSO) 기능도 제공합니다. 이 강의에서는 Keycloak을 사용하여 인증 서버를 설정하고, OAuth2 기반의 보안을 구현할 것입니다. Keycloak은 오픈 소스이므로, 이 강의에서 다루는 내용을 연습하기에 적합한 선택입니다.


다른 상용 제품들

Keycloak 외에도 OAuth2와 OpenID Connect 사양을 기반으로 한 여러 상용 제품들이 존재합니다. 다음은 그 중 몇 가지입니다:

  • Okta: Okta는 기업용 애플리케이션에서 매우 유명한 인증 서버 솔루션입니다. 예산이 충분한 조직에서는 Okta를 사용하여 손쉽게 인증 서버를 설정할 수 있습니다.

  • Amazon Cognito: Amazon Cognito는 아마존에서 제공하는 IAM 솔루션으로, 높은 트래픽을 처리할 수 있는 확장 가능한 인증 및 액세스 관리 기능을 제공합니다.

  • FusionAuthForgeRock: 이들은 또 다른 상용 IAM 솔루션으로, 다양한 기능을 제공하며, 기업의 요구에 맞게 커스터마이징할 수 있습니다.


Spring Authorization Server

최근 Spring 팀에서는 Spring Authorization Server라는 새로운 프로젝트를 개발했습니다. 이를 통해 조직은 자체 인증 서버를 구축할 수 있습니다. 그러나 이 프로젝트는 현재 Spring 생태계에서 비교적 새로운 프로젝트이며, Keycloak, Okta, Cognito와 같은 성숙한 제품에 비해 아직 발전할 여지가 많습니다. 따라서 이 강의에서는 Spring Authorization Server 대신 Keycloak을 사용합니다. 하지만 자체 인증 서버를 구축하고자 하는 경우, Spring Authorization Server의 문서를 참고하여 인증 서버를 개발할 수 있습니다.


결론

이 강의에서는 Keycloak을 사용하여 OAuth2와 OpenID Connect 사양에 따라 인증 서버를 설정하고, 보안을 구현할 것입니다. Keycloak은 오픈 소스이므로, 학습 및 실습에 적합한 선택입니다. Keycloak을 사용함으로써 우리는 인증 및 인가 관련 로직을 효율적으로 관리하고, 강력한 보안 기능을 제공할 수 있습니다.

감사합니다, 다음 강의에서 뵙겠습니다. 안녕히 계세요!

profile
무슨 생각하며 사니

0개의 댓글