OIDC는 OpenID Connect의 약자로, 사용자 인증 및 권한 부여를 위한 오픈 표준 프로토콜입니다. OAuth 2.0 기반으로 구축되어 있어, 사용자의 인증 및 권한 부여를 위한 프레임워크로 사용됩니다. 이 프로토콜은 웹 및 모바일 애플리케이션에서 안전하게 사용자를 인증하고, 인증된 사용자에게 자원에 대한 액세스 권한을 부여하는 데 사용됩니다.
OIDC의 주요 개념은 다음과 같습니다.
- 유저 인증 (Authentication): OIDC는 사용자를 안전하게 인증하기 위해 기존의 OpenID 프로토콜을 기반으로 합니다. 사용자는 클라이언트 애플리케이션에 로그인하고, 클라이언트는 인증 서버를 통해 사용자를 인증합니다.
- 권한 부여 (Authorization): OAuth 2.0과 마찬가지로, OIDC는 클라이언트 애플리케이션이 특정 리소스에 대한 권한을 얻을 수 있도록 하는 권한 부여 프로세스를 제공합니다.
- ID 토큰 (ID Token): OIDC는 인증된 사용자에게 ID 토큰을 제공합니다. 이 토큰은 사용자의 식별 정보를 포함하고 있어, 클라이언트 애플리케이션이 사용자를 인증한 후에도 사용자에 대한 정보를 안전하게 전달할 수 있습니다.
OAuth와 OIDC의 주요 차이점은 다음과 같습니다.
- Authentication vs. Authorization: OAuth는 주로 권한 부여에 중점을 두고 있으며, 클라이언트가 리소스 서버로부터 액세스 토큰을 얻어 리소스에 접근할 수 있게 합니다. 반면 OIDC는 사용자 인증에 중점을 두고, 사용자에 대한 정보를 클라이언트에 안전하게 전달하는 데에 초점을 둡니다.
- ID Token: OIDC는 OAuth 2.0에 ID 토큰을 추가한 것이 주된 차이입니다. 이를 통해 클라이언트는 사용자에 대한 추가 정보를 안전하게 받을 수 있습니다.
보안 측면에서 OIDC는 HTTPS를 사용하여 통신을 보호하고, ID 토큰은 서명되어 변조를 방지합니다. 또한, 클라이언트와 인증 서버 간에 안전한 통신을 위해 여러 보안 메커니즘을 제공합니다.
OAuth 2.0, OpenID Connect, 그리고 SAML은 각각 다른 목적으로 사용되는 웹 인증 및 인가 표준입니다. 이러한 표준을 통해 페더레이션된 아이덴티티를 안전하게 보호하고, 각각의 시나리오에 맞게 적절한 표준을 선택합니다.
- OAuth 2.0:
- 목적: 안전한 위임 액세스를 제공하여 애플리케이션이 사용자의 승인을 받아 서버에서 리소스에 접근할 수 있게 합니다.
- 예시: Facebook 또는 휴대전화 연락처를 통해 새로운 연락처를 자동으로 제공하는 애플리케이션.
- 동작: 사용자의 승인을 받은 Identity Provider가 토큰을 발행하고, 이 토큰을 통해 다른 서비스에 접근 가능.
- OpenID Connect:
- 목적: 사용자 인증에 사용되며, 사용자가 한 번 로그인한 후에 다른 웹사이트와 앱에 로그인 정보를 공유하지 않고도 액세스할 수 있게 합니다.
- 예시: Google을 사용해 여러 애플리케이션에 로그인하는 경우.
- 동작: 사용자가 Identity Provider에 로그인한 후, 다른 서비스에서도 인증 정보를 공유해 사용자를 식별.
- SAML (Security Assertion Markup Language):
- 목적: XML 기반 표준으로, 업무 환경에서 신뢰성 있는 인증과 권한 부여를 제공합니다.
- 예시: 기업 인트라넷에 로그인한 후 Salesforce, Box, Workday와 같은 서비스에 자동으로 접근하는 경우.
- 동작: Identity Provider와 서비스 공급업체 간에 XML 기반의 데이터를 교환하여 사용자의 아이덴티티와 권한을 확인하고, 서비스에 대한 액세스를 허용하거나 거부.
이러한 표준을 통해 데이터를 안전하게 보호하며, 각 표준의 사용 시점을 파악하여 보안 요구에 맞게 구현합니다. OAuth 2.0은 안전한 위임 액세스를 위해, OpenID Connect는 사용자 인증을 위해, 그리고 SAML은 업무 환경에서의 편리한 인증 및 권한 부여를 위해 사용됩니다.
728x90
댓글