[Auth] IDP(Identity Provider)

JUJU·2025년 3월 6일

Auth

목록 보기
1/5

✏️ IDP란?

IDP(Identity Provider)

: 사용자가 웹사이트나 앱에 로그인할 때, 그 사용자가 누구인지 확인해 주는 시스템이다.
쉽게 말해, IDP는 사용자의 신원을 증명해 주는 역할을 한다.

예를 들어, 어떤 웹사이트에서 "Google 계정으로 로그인" 버튼을 눌렀다고 가정해 보자. 그러면 Google이 사용자의 신원을 확인하고, 해당 웹사이트에 "이 사람은 인증된 사용자입니다"라고 알려준다. 이때 Google이 바로 IDP의 역할을 하는 것이다.




✏️ IDP의 역할

  • 사용자 인증(Authentication): 사용자가 입력한 아이디와 비밀번호가 맞는지 확인한다.
  • 권한 부여(Authorization): 사용자가 특정 서비스나 기능을 사용할 수 있는 권한이 있는지 결정한다.
  • 싱글 사인온(SSO, Single Sign-On): 한 번 로그인하면 여러 서비스에 자동으로 로그인할 수 있도록 해 준다.
  • 다중 인증(MFA, Multi-Factor Authentication): 보안을 강화하기 위해 비밀번호 외에도 OTP, 지문 인식 등 추가 인증 방식을 사용할 수 있다.
  • 사용자 계정 관리: 새 계정을 만들거나 삭제하는 등의 기능을 제공한다.
  • 로그 및 보안 감시: 누가 언제 로그인했는지 기록하고, 이상한 로그인 시도를 감지한다.

◼︎ OAuth와 무엇이 다른가?

OAuth는 IDP와 다르게, 인증(Authentication)이 아니라 권한 부여(Authorization)를 담당하는 프로토콜이다.
쉽게 말해, OAuth는 사용자가 특정 애플리케이션이 자신의 데이터에 접근할 수 있도록 허용하는 데 초점을 맞춘다.

비교 항목IDP (Identity Provider)OAuth (Open Authorization)
목적사용자의 신원을 확인 (로그인)애플리케이션이 사용자 데이터에 접근할 권한 부여
사용 예시Google 계정 로그인, SSOGoogle이 사용자 대신 YouTube API에 접근 허용
역할인증 및 사용자 관리인증은 수행하지 않고, 인증된 사용자에 대한 권한 부여
대표 프로토콜SAML, OpenID Connect (OIDC)OAuth 2.0
로그인 기능 포함 여부포함됨포함되지 않음 (OIDC 필요)

즉, IDP는 "누구인지"를 확인하고, OAuth는 "무엇을 할 수 있는지"를 결정하는 차이가 있다.


◼︎ 자체 제작하는 로그인 기능과 무엇이 다른가?

비교 항목Java Controller + DB 로그인IDP 사용
인증 방식직접 DB에서 사용자 확인IDP가 인증 담당
보안 수준개발자가 직접 관리보안 전문가들이 설계한 검증된 시스템
SSO 지원
MFA 지원직접 구현해야 함기본 제공 (OTP, 지문, 보안 키 등)
유지보수직접 개발 및 유지보수 필요외부 서비스 활용 가능
확장성개별 서비스마다 인증 구현 필요여러 서비스에서 쉽게 인증 가능
표준 준수개발자가 직접 구현 필요SAML, OAuth, OIDC 같은 표준 지원
  • 보안성 강화
  • SSO 및 MFA 같은 기능을 쉽게 추가 가능
profile
백엔드 개발자

0개의 댓글