구독 키를 사용하여 API 호출
API를 게시할 때 게이트웨이를 통해 API에 액세스할 수 있는 사용자에 대한 일부 제어 수준이 필요한 경우가 많습니다. 구독 키는 API에 대한 액세스를 제한하는 데 사용됩니다.
여기서는 구독 키를 사용하여 API를 보호하는 방법에 대해 알아봅니다.
구독 및 키
구독 키는 API를 보호하는 데 사용할 수 있습니다.
참고 항목
API Management 운영 환경에서는 일반적으로 구독 키를 다른 메커니즘과 결합하여 인증서 인증 또는 OAuth 2.0 권한 부여와 같은 방법으로 무단 사용으로부터 API를 보호합니다. 이 모듈의 범위를 벗어납니다.
구독 키는 자동 생성된 고유 문자열이며 클라이언트 요청의 헤더에서 또는 URL의 쿼리 문자열로서 통과됩니다. 키는 다른 영역으로 범위를 지정할 수 있는 구독과 직접 관련되어 있으므로 권한과 정책을 자세히 제어할 수 있습니다. 주요 구독 범위는 다음과 같습니다.
- 모든 API
- 단일 API
- 제품
보호된 API를 호출하는 애플리케이션은 요청에 키를 포함해야 합니다.
이러한 구독 키는 언제든지 다시 생성할 수 있습니다. 예를 들어, 키가 무단 사용자와 공유된 것으로 의심되는 경우 구독 키를 다시 생성합니다.
모든 구독에는 기본 키와 보조 키라는 두 개의 키가 있습니다. 두 개의 키가 있으면 키를 다시 생성해야 할 때 더 쉬워질 수 있습니다. 예를 들어 기본 키를 변경하고 가동 중지 시간을 방지하려면 앱에서 보조 키를 사용합니다.
구독을 사용하도록 설정된 제품의 경우 해당 제품에서 API를 호출할 때 키를 제공해야 합니다. 개발자는 구독 요청을 제출하여 키를 얻을 수 있습니다. 이 프로세스는 API Management 워크플로의 핵심 부분입니다.
참고
API에 액세스할 수 있도록 새 사용자를 만들고 구독 키를 제공합니다. API Management 워크플로의 핵심 부분이지만 이 모듈의 범위를 벗어납니다.
구독 키를 사용하여 API 호출
구독으로 보호되는 API 엔드포인트를 호출할 때 애플리케이션에서 모든 HTTP 요청에 유효한 키를 포함시켜야 합니다. 키는 요청 헤더에서 전달하거나 또는 URL에서 쿼리 문자열로 전달할 수 있습니다.
기본 헤더 이름은 Ocp-Apim-Subscription-Key이고, 기본 쿼리 문자열은 subscription-key입니다.
API 호출을 테스트하려면 개발자 포털(서비스 계층에서 사용 가능한 경우), curl과 같은 명령줄 도구 또는 기타 REST 클라이언트 도구를 사용할 수 있습니다.
curl 명령을 사용하여 요청 헤더에 키를 전달하는 GET 요청의 예시는 다음과 같습니다.
curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path
URL에서 키를 쿼리 문자열로 전달하는 curl 명령의 예제는 다음과 같습니다.
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
키가 헤더에서 전달되지 않거나 URL의 쿼리 문자열로서 전달되지 않는 경우 API 게이트웨이에서 401 액세스 거부 응답을 받게 됩니다.