라스트 마일 보안

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

라스트 마일 보안은 API 서비스로 프록시되는 백엔드 서비스를 보호합니다. 라스트 마일 보안의 기본 목표는 'end-run'이라는 공격을 방지하는 것입니다. 여기서 앱 개발자는 백엔드 서비스의 URL을 찾아 API 프록시를 우회하여 백엔드 URL에 직접 도달합니다.

다음은 라스트 마일 보안 설정의 기본 옵션입니다.

  • 클라이언트 TLS/SSL
  • 아웃바운드 인증
  • Node.js tls 모듈

클라이언트 TLS/SSL

라스트 마일을 보호하는 기본 메커니즘은 클라이언트 TLS/SSL이며 이를 '상호 인증'이라고도 합니다.

Edge에서 백엔드로 TLS 구성 (Cloud 및 프라이빗 클라우드)을 참고하세요.

아웃바운드 인증

API 프록시가 백엔드 서비스에 사용자 인증 정보를 제공하도록 요구하여 라스트 마일 보안을 적용할 수 있습니다.

예를 들어 API 프록시가 백엔드 서비스에 API 키를 제공하려고 할 수 있습니다. 또한 API 프록시가 OAuth 클라이언트 사용자 인증 정보 액세스 토큰을 가져오고 제공할 수도 있습니다.

API 키

API 키는 API 프록시에서 백엔드 서비스로의 아웃바운드 요청에 적용할 수 있습니다. 여기서 백엔드 서비스는 API 키를 발급하고 검증할 수 있는 API라고 가정합니다.

아웃바운드 요청에 API 키를 제공하도록 API 프록시를 설정한 경우 런타임 시 API 프록시가 검색할 수 있는 위치에 API 키를 저장해야 합니다. API 키를 저장하는 데 사용할 수 있는 위치 하나는 키-값 맵입니다. 키-값 맵 작업 정책을 참조하세요.

AssignMessage 정책 유형을 사용하여 API 키를 아웃바운드 요청에 HTTP 헤더, 쿼리 매개변수 또는 페이로드 요소로 추가할 수 있습니다. 메시지 할당 정책을 참조하세요.

OAuth 클라이언트 사용자 인증 정보

OAuth 클라이언트 사용자 인증 정보를 사용하여 API 키에 취소 가능한 레이어를 추가합니다. 백엔드 서비스가 OAuth 클라이언트 사용자 인증 정보를 지원하는 경우 각 요청에 대해 클라이언트 사용자 인증 정보 액세스 토큰을 제공하도록 API 프록시를 구성할 수 있습니다.

토큰 엔드포인트에서 액세스 토큰을 가져오는 콜아웃을 실행하도록 API 프록시를 구성해야 합니다. 또한 각 호출에 대해 새로운 액세스 토큰을 얻지 못하도록 액세스 토큰을 캐시하는 데 API 프록시가 필요합니다.

아웃바운드 클라이언트 사용자 인증 정보를 구현하는 데 여러 가지 방법을 사용할 수 있습니다.

토큰 엔드포인트를 호출하여 액세스 토큰을 가져오도록 이 샘플을 수정할 수 있습니다. 이 샘플은 자바스크립트를 사용하여 아웃바운드 요청에 토큰을 HTTP Authorization 헤더로 연결합니다. 이 목적으로 Assign Message 정책을 사용할 수도 있습니다.

SAML

GenerateSAMLAssertion 정책 유형을 사용하면 SAML 어설션을 API 프록시에서 백엔드 서비스로 전송되는 아웃바운드 XML 요청 메시지에 연결할 수 있습니다. 이렇게 하면 백엔드 서비스가 API 프록시에서 수신한 요청에 대한 인증 및 승인을 수행할 수 있습니다.

SAML 어설션 정책을 참조하세요.

Node.js

API 프록시 타겟이 Node.js 애플리케이션인 경우 Node.js tls 모듈을 사용하여 백엔드 서비스에 대한 보안 연결을 만들 수 있습니다. Node.js에서 일반적으로 하는 것과 동일한 방식으로 tls 모듈을 사용하여 발신 요청을 합니다. 기본적으로 클라이언트 측 키와 인증서 (.pem 파일)를 resources/node 디렉터리에 추가하고 스크립트 내부에서 로드해야 합니다. tls 모듈 및 메서드 사용에 관한 자세한 내용은 Node.js tls 모듈 문서를 참고하세요. 자세한 내용은 Node.js 모듈에 대한 Edge 지원 이해를 참고하세요.