2017-02-14 1 views
5

http 트리거를 사용하여 C# Azure 함수를 만들고 싶습니다. API Key으로 보안을 설정하고 고객마다 별도의 키를 제공하며 기능은 고객 별 데이터를 제공해야하며이를 통해 누가 호출하고 있는지 식별해야합니다.Azure 함수에 대한 고객 별 API 키를 구성하는 방법

Azure Function API 키를 사용하여 고객을 식별 할 수 있습니까? 통과 된 열쇠의 이름을 얻으시겠습니까? 아니면 청록색 함수 내에서 요청을 인증하는 데 사용 된 키를 알 수있는 방법이 없습니까?

GetApiKeyName()과 같은 방법이 있다면 키 데이터베이스 이름을 내 데이터베이스의 고객 목록과 대조하여 누가 해당 함수를 호출했는지에 따라 다른 데이터를 반환 할 수 있습니다. 예 : 내가 판매 추적 시스템을 가지고 있고 기능이 /api/GetMonthlySales이라고 상상해보십시오. 고객 1이 API 키를 사용하여 함수를 호출하면 매월 판매가 발생하고 고객 2가 호출하면 다른 금액을 받게됩니다.

이것이 가능하지 않다면 각 고객에게 각 고객에게 각 인증 요청에 추가 인증 데이터를 제공해야 함을 의미합니다 (예 : 고객 ID 및 비밀 키. 그러나 이것은 Azure 함수 API 키를 사용하는 목적을 무효로합니다.

고객이 내 기능을 호출 할 때 고객에게 요금을 청구하려는 경우에도 유사한 시나리오가 있습니다. 어떤 고객이 내 기능을 호출하는지 어떻게 식별합니까?

+0

지금은 Azure 인증을 사용하기로 결정하고 동일한 api 키를 db에 넣기로 결정했습니다. 그런 다음 Azure가 유효한 키를 가진 사람 만이 함수를 호출하도록하고 있는지, 나는 누가 querystring의'code' 매개 변수를 잡고 DB에서 찾았는지 찾아 봅니다. 신규 고객을 프로비저닝하려면 Azure Function auth에 추가 한 다음 내 DB에 추가해야합니다. 다행히도 앞으로는이 문제에 대한 지원이있을 것입니다.하지만 고객이 거의 없다면이 방법으로 성 가실 필요가 없습니다. – Rory

답변

5

로리,

오늘은 유감스럽게도 지원되지 않습니다. 인증은 사용 된 키를 기반으로 이루어지며 개별 클라이언트 키를 취소/갱신 할 수 있지만 해당 정보는 현재 해당 기능에 표시되지 않습니다.

관리 API를 사용하여 키를 매핑하고 요청 키를 일치시켜 클라이언트를 식별하는 것과 같은 몇 가지 해결 방법이 있지만 성 가시고 비효율적입니다.

나는이 here을 추적하는 문제를 겪었으며, 우리가이 문제를 곧 해결할 수 있는지보기 위해 다시 분류를 위해 표시했습니다.

+0

Fabio에게 감사 드리며, 이용 가능할 때 매우 유용 할 것입니다. api 키 관리에 대한 포털 지원을 좋아합니다. 많은 코드를 작성하지 않고 auth를 쉽게 설정할 수 있습니다. 하지만 확실히 인증은 누가 인증되었는지를 식별 할 수 있어야합니다. 그렇지 않으면 유스 케이스가 상당히 제한됩니다! – Rory

관련 문제