소개

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

다음 섹션에서는 API 제품관련 주요 개념을 소개합니다.

API 제품이란 무엇인가요?

API 제공업체는 API 제품을 만들어 API를 번들로 묶고 앱 개발자가 사용할 수 있도록 제공합니다. API 제품을 제품군으로 생각할 수 있습니다.

특히 API 제품은 다음을 함께 번들로 제공합니다.

  • API 리소스 컬렉션(URI)
  • 서비스 요금제
  • 모니터링 또는 분석을 위해 비즈니스와 관련된 메타데이터(선택사항)

API 제품에 번들로 포함된 API 리소스는 하나 이상의 API에서 가져올 수 있으므로 다음 그림과 같이 리소스를 혼합하고 일치시켜서 특수 기능 세트를 만들 수 있습니다.

여러 API 제품을 만들면 특정 요구사항을 해결하는 사용 사례를 해결할 수 있습니다. 예를 들어 다양한 매핑 리소스를 번들로 제공하는 API 제품을 만들면 개발자가 지도를 애플리케이션에 쉽게 통합하도록 할 수 있습니다. 또한 각 API 제품마다 다른 가격 수준 등의 서로 다른 속성을 설정할 수 있습니다. 예를 들어 다음과 같은 API 제품 조합을 제공할 수 있습니다.

  • 하루 1,000건의 요청과 같이 낮은 액세스 한도를 저렴한 가격으로 제공하는 API 제품입니다. 동일한 리소스에 대한 액세스를 제공하지만 더 높은 액세스 한도와 더 높은 가격을 제공하는 두 번째 API 제품
  • 리소스에 대한 읽기 전용 액세스 권한을 제공하는 무료 API 제품입니다. 동일한 리소스에 대한 읽기/쓰기 액세스 권한을 소액의 요금으로 제공하는 두 번째 API 제품

또한 API 제품의 API 리소스에 대한 액세스를 제어할 수 있습니다. 예를 들어 내부 개발자만 액세스할 수 있는 리소스 또는 유료 고객만 액세스할 수 있는 리소스를 번들로 묶을 수 있습니다.

API 제품은 API에 대한 승인 및 액세스 제어를 위한 중앙 메커니즘입니다. Apigee에서는 API 자체가 아닌 API 제품용 API 키가 프로비저닝됩니다. 즉, API 키는 연결된 서비스 요금제가 있는 리소스 번들에 프로비저닝됩니다.

앱 개발자는 앱 등록에 설명된 대로 앱을 등록하여 API 제품에 액세스합니다. 앱에서 API 제품에 액세스하려고 하면 다음과 같은 사항을 보장하기 위해 Apigee에서 런타임 시 다음과 같은 승인을 시행합니다.

  • 요청하는 앱이 특정 API 리소스에 액세스할 수 있습니다.
  • 요청하는 앱이 허용된 할당량을 초과하지 않았습니다.
  • 정의 된 경우 API 제품에 정의 된 OAuth 범위는 앱에서 제공한 액세스 토큰과 연관된 범위와 일치합니다.

주요 개념 이해

API 제품을 만들기 전에 다음 주요 개념을 검토하세요.

API 키

조직에 개발자 앱을 등록하면 앱이 하나 이상의 API 제품에 연결되어야 합니다. 앱을 하나 이상의 API 제품과 페어링하면 Edge에서 앱에 고유한 고객 키를 할당합니다.

고객 키 또는 액세스 토큰은 요청 사용자 인증 정보 역할을 합니다. 앱 개발자가 앱에 고객 키를 삽입하므로 앱이 Edge에서 호스팅하는 API에 요청할 때 앱은 다음 방법 중 하나로 요청에 소비자 키를 전달합니다.

  • API가 API 키 확인을 사용하는 경우 앱은 고객 키를 직접 전달해야 합니다.
  • API가 OAuth 토큰 확인을 사용하는 경우 앱은 고객 키에서 파생된 토큰을 전달해야 합니다.

API 키 적용은 자동으로 수행되지 않습니다. 고객 키 또는 OAuth 토큰을 요청 사용자 인증 정보로 사용하는지에 관계없이 API 프록시는 적절한 흐름에 VerifyAPIKey 정책 또는 OAuth/VerifyAccessToken 정책을 포함하여 API 프록시에서 요청 사용자 인증 정보의 유효성을 검사합니다. API 프록시에 사용자 인증 정보 적용 정책을 포함하지 않으면 어떤 호출자든 API를 호출할 수 있습니다. 자세한 내용은 API 키 확인 정책을 참조하세요.

요청에 전달된 사용자 인증 정보를 확인하기 위해 Edge는 다음 단계를 수행합니다.

  • 요청과 함께 전달된 사용자 인증 정보를 가져옵니다. OAuth 토큰 확인의 경우 Edge는 토큰이 만료되지 않았는지 확인한 후 토큰을 생성하는 데 사용된 고객 키를 조회합니다.
  • 고객 키와 연결된 API 제품의 목록을 가져옵니다.
  • 현재 API 프록시가 API 제품에 포함되어 있는지, API 제품에 현재 리소스 경로(URL 경로)가 사용 설정되어 있는지 확인합니다.
  • 고객 키가 만료되거나 취소되지 않았는지, 앱이 취소되지 않았는지 확인하고 앱 개발자가 활성 상태인지 확인합니다.

위의 모든 확인 결과가 통과되면 사용자 인증 정보 확인이 성공한 것입니다.

결과적으로 Edge는 자동으로 소비자 키를 생성하지만, API 게시자는 적절한 정책을 사용하여 API 프록시에서 키 확인을 시행해야 합니다.

자동 승인과 수동 승인 비교

기본적으로 앱에서 API 제품에 액세스하기 위한 키를 가져오는 모든 요청은 자동으로 승인됩니다. 또는 API 제품이 키를 수동으로 승인하도록 구성할 수 있습니다. 이 경우 API 제품을 추가하는 모든 앱의 키 요청을 승인해야 합니다. 자세한 내용은 앱 등록 및 API 키 관리를 참조하세요.

할당량

할당량은 트래픽이 많은 백엔드 서버를 보호하고 제품 라인을 차별화할 수 있습니다. 예를 들어 할당량이 높은 리소스를 프리미엄 제품으로 묶고, 할당량이 적은 동일한 번들을 기본 제품으로 사용할 수 있습니다. 할당량은 제품이 널리 사용되고 대량의 요청을 받는 경우 서버에 과부하가 걸리지 않도록 보호할 수 있습니다.

할당량 구성에 대한 자세한 내용은 할당량 정책을 참조하세요. 할당량 정책의 제품 할당량 설정 사용에 대한 자세한 내용은 다음 커뮤니티 문서 API 제품의 할당량 설정은 API 프록시의 할당량 정책과 어떻게 상호작용하나요?를 참조하세요.

OAuth 범위

보안을 한층 더 강화하기 위해 OAuth 범위를 쉼표로 구분된 목록으로 정의할 수 있으며 제품을 통해 전송된 액세스 토큰에 있어야 합니다. 제품을 생성할 때는 조직에서 사용하는 모든 범위를 알고 있어야 합니다. 제품에 추가하는 범위가 기존 범위와 일치해야 하며 그렇지 않으면 제품이 안전하지 않습니다.

Edge OAuth 정책에서 범위를 사용하는 방법에 대한 자세한 내용은 OAuth2 범위 작업을 참고하세요.

액세스 수준

API 제품을 정의할 때 다음과 같은 액세스 수준을 설정할 수 있습니다.

액세스 수준 설명
공개 모든 개발자가 사용할 수 있는 API 제품입니다. 통합 또는 Drupal 기반 개발자 포털을 추가할 수 있습니다.
비공개 또는 내부 전용

비공개 또는 내부용으로 설계된 API 제품입니다.

참고: 비공개 및 내부 전용 액세스 수준 간에는 기능 차이가 없습니다. API 제품의 주요 대상을 가장 잘 설명하는 라벨을 선택합니다.

통합 포털의 경우 비공개 또는 내부 전용 API 제품을 추가하고 필요에 따라 앱 개발자에게 제공할 수 있습니다.

Drupal 기반 개발자 포털의 경우 다음 섹션에 설명된 대로 개발자 포털에서 비공개 또는 내부 전용 API 제품에 대한 액세스를 관리할 수 있습니다.

  • Drupal 9 개발자 포털의 경우 API 제품에 대한 액세스 권한 구성에 설명된 대로 개발자 포털에서 비공개 또는 내부 전용 API 제품에 대한 액세스를 구성할 수 있습니다.
  • Drupal 7 개발자 포털의 경우 개발자 포털에 비공개 또는 내부 전용 API 제품을 추가할 수 없습니다. 앱 개발자가 비공개 또는 내부 전용 API 제품을 사용할 수 있도록 하려면 앱 등록 및 API 키 관리에 설명된 대로 에지 관리 UI 또는 API에서 등록된 앱에 제품을 수동으로 추가해야 합니다. 추가되면 앱에서 API 제품 관리에 설명된 대로 개발자는 포털에서 앱과 연결된 API 제품을 볼 수 있습니다. 앱 개발자가 내부 또는 비공개 API 제품에 대한 액세스를 사용 중지하면 API 제품이 앱에서 삭제되며 포털 관리자가 수동으로 다시 추가해야 합니다.