Azure API Management에서 구독 만들기

완료됨

API Management를 사용하여 API를 게시하는 경우 게이트웨이를 통해 API에 액세스할 수 있는 사용자를 정의합니다.

기상 앱의 경우, 서비스를 구독한 고객만 API에 액세스하고 예측 데이터를 사용할 수 있도록 해야 합니다. 액세스를 제어하려면 구독 키를 발급해야 합니다.

중요

이 때의 구독은 Azure 계정 관리에 사용되는 Azure 구독과 완전히 다릅니다.

여기서는 구독 키를 사용하여 API를 보호하는 방법에 대해 알아봅니다.

구독 및 키

API 및 API에 포함된 정보를 자유롭게 사용 가능하게 설정하도록 선택할 수 있습니다. 그러나 대개 유료 사용자나 업무 관계에 있는 조직에 대한 액세스를 제한할 수 있습니다. 구독을 사용하여 API에 대한 액세스를 제어하는 하나의 방법입니다. 구독은 API에 대한 사용자 액세스를 분할하는 데 사용됩니다.

구독 키는 이러한 구독에 액세스할 수 있는 권한 부여를 구성합니다. 클라이언트가 보호된 API에 요청할 때마다 유효한 구독 키를 HTTP 요청에 포함해야 합니다. 그렇지 않으면 해당 호출이 거부됩니다.

구독 키는 API 호출의 일부로 전달될 수 있는 고유한 자동 생성 키입니다. 키는 다른 영역으로 범위를 지정할 수 있는 구독과 직접 관련이 있습니다. 구독은 사용 권한 및 정책에 대한 세부적인 제어를 제공합니다.

세 가지 기본 구독 범위는 다음과 같습니다.

범위 세부 정보
모든 API 게이트웨이에서 액세스할 수 있는 모든 API에 적용됩니다.
단일 API 가져온 단일 API 및 해당 엔드포인트 모두에 적용됩니다.
제품 제품은 API Management에서 구성한 둘 이상의 API의 컬렉션입니다. API는 둘 이상의 제품에 할당할 수 있습니다. 제품에는 서로 다른 액세스 규칙, 사용 할당량 및 사용 약관이 있을 수 있습니다. 따라서 파트너와 공급업체가 WeatherData API에 대해 서로 다른 액세스 권한을 가지도록 하려면 해당 API를 제품에 할당한 다음 Azure Portal을 사용하여 API를 제품과 연결합니다.

보호된 API를 호출하는 애플리케이션은 모든 요청에 구독 키를 포함해야 합니다.

이러한 구독 키는 언제든지 다시 생성할 수 있습니다. 예를 들어 키가 권한 없는 사용자와 공유되었다고 의심되는 경우 새 구독 키를 생성할 수 있습니다.

Subscription keys.

모든 구독에는 기본 키와 보조 키라는 두 개의 키가 있습니다. 두 개의 키가 있으면 키를 다시 생성해야 할 때 더 쉽게 생성할 수 있습니다. 예를 들어 기본 키를 변경하고 가동 중지 시간을 방지하려면 앱에서 보조 키를 사용합니다.

구독을 사용하도록 설정된 제품의 경우 클라이언트는 해당 제품에서 API를 호출할 때 키를 제공해야 합니다. 개발자는 구독 요청을 제출하여 키를 얻을 수 있습니다. 요청을 승인하는 경우 구독 키를 암호화된 메시지 등을 통해 안전하게 보내야 합니다. 이 단계는 API Management 워크플로의 핵심 부분입니다.

구독 키를 사용하여 API 호출

애플리케이션은 구독으로 보호되는 API 엔드포인트를 호출하는 모든 HTTP 요청에 유효한 키를 포함시켜야 합니다. 키는 요청 헤더에서 전달하거나 또는 URL에서 쿼리 문자열 매개 변수로 전달할 수 있습니다.

기본 구독 키 헤더 이름은 Ocp-Apim-Subscription-Key이고, 기본 쿼리 문자열 이름은 subscription-key입니다.

API 호출을 테스트하기 위해 Azure Portal의 테스트 콘솔, 개발자 포털 또는 명령줄 도구(예: curl)를 사용할 수 있습니다. 다음은 구독 키 헤더를 보여 주는 개발자 포털을 사용하는 GET 요청 예입니다.

Screenshot that shows how to call your API from developer portal.

curl을 사용하여 요청 헤더에 키를 전달하는 방법의 예는 다음과 같습니다.

curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path

다음은 curl 명령을 사용하여 URL에서 키를 쿼리 문자열로 전달하는 방법의 예입니다.

curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>

필요한 키가 헤더에서 전달되지 않았거나 URL의 쿼리 문자열로 전달되지 않은 경우 API 게이트웨이에서 401 액세스 거부 응답을 받게 됩니다.