API7 Enterprise v3.2.15: 다중 자격 증명 인증

Zhihuang Lin

Zhihuang Lin

September 18, 2024

Products

API 서비스가 점점 더 복잡해짐에 따라, 단순히 IP 주소나 기본 요청 헤더에만 의존하는 전통적인 접근 제어 방법은 더 이상 충분하지 않습니다. API7 Enterprise는 "Consumers"라는 개념을 도입하여, 개발자들이 동일한 인증 플러그인이 활성화된 특정 API 경로나 서비스에 소비자를 바인딩할 수 있도록 합니다. 소비자가 요청을 보낼 때, API 게이트웨이는 요청에 제공된 자격 증명을 기반으로 소비자를 식별하고, 바인딩 관계에 따라 해당 접근 제어 정책을 적용합니다.

API7 Enterprise v3.2.15는 기존 소비자 인증 메커니즘을 강화했습니다. 일반적으로 사용되는 플러그인의 상호 작용을 최적화하고, 권한 제어를 개선하며, 플러그인당 여러 인증 자격 증명을 지원합니다. 이를 통해 더 유연한 자격 증명 관리 및 교체가 가능해졌습니다.

최적화된 소비자 인증 플러그인 상호 작용

단일 인증 플러그인에서 여러 인증 자격 증명을 쉽게 추가할 수 있습니다. 구성이 코딩에서 직관적인 폼 작업으로 업그레이드되어 구성 과정이 더 간단해졌습니다.

자격 증명 추가

현재 소비자는 다음 네 가지 인증 방법을 여러 자격 증명과 함께 지원합니다.

키 인증

키 인증은 키 기반의 인증 방법입니다. 소비자는 요청에 고유한 키를 포함해야 하며, 이 키는 쿼리 문자열 매개변수나 HTTP 헤더에 포함될 수 있습니다. 요청을 구성할 때 소비자는 키가 요청에 올바르게 포함되도록 해야 합니다.

키 인증 추가

경로 또는 서비스 구성에서 Key Auth 플러그인을 활성화하고 적절한 규칙을 설정하여 요청의 키를 검증해야 합니다. 게이트웨이는 요청에 예상된 키가 포함되어 있는지, 그리고 키가 구성과 일치하는지 확인합니다. 키 검증이 통과되면 요청이 백엔드 서비스에 접근할 수 있도록 허용되고, 실패하면 요청이 거부됩니다.

기본 인증

기본 인증은 사용자 이름과 비밀번호를 기반으로 한 방법입니다. 소비자는 요청에 사용자 이름과 비밀번호를 포함한 인증 정보를 포함해야 하며, 일반적으로 HTTP 요청의 Authorization 헤더에 인코딩되어 전달됩니다. 하지만 쿼리 문자열 매개변수를 통해 전달할 수도 있지만, 이는 민감한 정보가 노출될 수 있으므로 권장되지 않습니다. 소비자는 요청을 구성할 때 인코딩된 인증 정보가 올바르게 포함되도록 해야 합니다.

기본 인증 자격 증명 추가

경로 또는 서비스 구성에서 Basic Auth 플러그인을 활성화하고 적절한 규칙을 설정하여 인증 정보를 검증해야 합니다. 게이트웨이는 요청에 Authorization 헤더가 포함되어 있고 기본 인증 형식을 따르는지 확인합니다. 형식은 Basic <encoded-value>이며, <encoded-value>는 사용자 이름과 비밀번호를 콜론으로 구분한 후 Base64로 인코딩한 결과입니다. 게이트웨이는 이 값을 디코딩하고 디코딩된 사용자 이름과 비밀번호를 구성된 정보와 비교합니다. 일치하면 요청이 백엔드 서비스에 접근할 수 있도록 허용되고, 그렇지 않으면 요청이 거부됩니다.

기본 인증은 사용자 이름과 비밀번호를 평문으로 전송하며, Base64로만 인코딩되어 있으므로(암호화되지 않음) 높은 보안이 필요한 시나리오에는 적합하지 않습니다.

JWT 인증

JWT 인증은 JSON Web Tokens(JWT)를 기반으로 한 방법입니다. 소비자는 요청에 유효한 JWT 토큰을 포함해야 하며, 일반적으로 Authorization 헤더에 Bearer <token> 형식으로 포함됩니다. 하지만 필요에 따라 쿼리 문자열 매개변수나 쿠키에 포함할 수도 있습니다. 소비자는 요청을 구성할 때 JWT 토큰의 정확성과 유효성을 보장해야 합니다.

JWT 자격 증명을 추가할 때, JWT 토큰 생성의 주요 요소를 구성할 수 있습니다. 여기에는 서명 및 검증을 위한 키(공개 또는 개인 키), 대칭 암호화를 위한 비밀키, 사용할 알고리즘(예: HMAC-SHA256 또는 RSA-SHA256), 토큰의 유효 기간을 설정하기 위한 만료 시간이 포함됩니다. 유효하고 만료되지 않은 토큰을 가진 소비자만 보호된 백엔드 서비스에 성공적으로 접근할 수 있습니다.

JWT 인증 자격 증명 추가

HMAC 인증

HMAC 인증은 Hash-based Message Authentication Code(HMAC)를 기반으로 한 방법입니다. 소비자는 요청에 대한 HMAC 값을 생성해야 하며, 일반적으로 미리 공유된 키와 요청의 특정 부분(예: 요청 메서드, URI, 요청 본문)을 사용하여 계산됩니다. 이 HMAC 값은 쿼리 문자열 매개변수나 HTTP 헤더에 포함될 수 있습니다.

요청을 구성할 때, 소비자는 지정된 알고리즘과 형식에 따라 HMAC 값을 올바르게 생성하고 포함해야 합니다. 구체적으로, 소비자는 알려진 키와 요청 정보를 사용하여 해시 알고리즘(예: SHA-256)을 통해 HMAC을 생성하고 이를 요청에 추가합니다.

HMAC 인증 자격 증명 추가

경로 또는 서비스 구성에서 HMAC Auth 플러그인을 활성화하고 적절한 규칙을 설정하여 요청의 HMAC 값을 검증해야 합니다. 게이트웨이는 요청에 HMAC 값이 포함되어 있는지 확인하고, 동일한 미리 공유된 키와 알고리즘을 사용하여 HMAC을 다시 계산하여 유효성을 검증합니다. 다시 계산된 HMAC이 요청의 값과 일치하면 요청이 백엔드 서비스에 접근할 수 있도록 허용됩니다.

세분화된 소비자 권한 정책

자격 증명 관리 최적화 외에도, 소비자 권한 관리를 더욱 세분화했습니다. 이제 개별 소비자 수준에서 권한을 정의할 수 있어 더 세밀한 접근 제어가 가능합니다. 인증 자격 증명에 대한 읽기 및 쓰기 권한은 이제 소비자 권한과 별도로 독립적으로 제어되어 더 큰 유연성을 제공합니다.

요약

API7 Enterprise의 최신 버전은 소비자 인증 및 권한 관리에 큰 개선을 도입했습니다. 플러그인 상호 작용을 최적화하고, 독립적인 자격 증명 관리를 가능하게 하며, 여러 인증 방법을 지원하고, 소비자 권한 전략을 세분화했습니다. 이러한 개선 사항은 자격 증명 관리의 유연성, 시스템 보안 및 전반적인 사용자 경험을 향상시킵니다.

향후 업데이트에서는 추가적인 인증 방법을 도입하고 자격 증명 관리를 더욱 세분화하여 더 많은 혁신적인 기능과 개선된 사용자 경험을 제공할 예정입니다.

Tags: