2017-02-14 17 views
5

Tôi muốn tạo hàm C# Azure với trình kích hoạt http. Tôi muốn bảo mật nó bằng API Key, cung cấp khóa riêng cho mỗi khách hàng và chức năng sẽ cung cấp dữ liệu khách hàng cụ thể để cần xác định ai đang gọi nó.Cách định cấu hình các khóa API dành riêng cho khách hàng cho các hàm Azure

Tôi có thể sử dụng Khóa API chức năng Azure để xác định khách hàng không, ví dụ: lấy tên của Khóa đã được chuyển? Hoặc là không có cách nào để biết trong chức năng xanh mà chìa khóa đã được sử dụng để xác thực yêu cầu?

Nếu có phương thức như GetApiKeyName() Tôi có thể kiểm tra tên khóa đối với danh sách khách hàng trong cơ sở dữ liệu của tôi và trả về dữ liệu khác nhau dựa trên người đang gọi hàm. ví dụ. hãy tưởng tượng tôi có một hệ thống theo dõi bán hàng và chức năng của tôi là /api/GetMonthlySales. Nếu khách hàng 1 gọi hàm bằng khóa API của họ, họ sẽ nhận được doanh số hàng tháng của họ và nếu khách hàng 2 gọi họ là họ sẽ nhận được số tiền khác.

Nếu điều này là không thể, điều đó có nghĩa là tôi cần phải cung cấp dữ liệu xác thực bổ sung cho từng khách hàng để họ chuyển đến từng cuộc gọi chức năng, ví dụ: Id khách hàng và Khóa bí mật. Nhưng điều này đánh bại mục đích của việc sử dụng các phím chức năng Azure API, phải không?

Một kịch bản tương tự sẽ là nếu tôi muốn tính phí khách hàng khi họ gọi chức năng của tôi. Làm cách nào để xác định khách hàng nào đang gọi chức năng của tôi?

+0

Hiện tại tôi đã quyết định sử dụng xác thực Azure * và * đặt cùng các khóa api đó vào db. Sau đó, tôi biết rằng Azure là đảm bảo chỉ có một ai đó với một khóa hợp lệ là gọi chức năng, và tôi tìm kiếm người đó là bằng cách lấy tham số chuỗi truy vấn 'code' và tìm nó trong DB. Để cung cấp cho khách hàng mới, tôi cần phải thêm chúng vào auth chức năng Azure và sau đó thêm chúng vào DB của tôi. Hy vọng rằng trong tương lai sẽ có hỗ trợ sẵn có cho điều này nhưng nó không quá cồng kềnh theo cách này nếu bạn có vài khách hàng. – Rory

Trả lời

5

Rory,

Rất tiếc, hôm nay không được hỗ trợ. Việc xác thực sẽ xảy ra dựa trên khóa được sử dụng và bạn có thể thu hồi/gia hạn các khóa máy khách riêng lẻ, nhưng thông tin đó hiện không được hiển thị với các hàm.

Có một số cách giải quyết như ánh xạ khóa bằng cách sử dụng API quản lý và khớp với khóa yêu cầu để xác định ứng dụng khách, nhưng chúng cồng kềnh và không hiệu quả.

Tôi đã gặp sự cố theo dõi số here và tôi vừa đánh dấu nó để phân loại lại để xem liệu chúng tôi có thể sớm giải quyết vấn đề này không.

+0

Cảm ơn Fabio, nó sẽ rất hữu ích khi có sẵn. Tôi thích hỗ trợ cổng thông tin cho quản lý khóa api; giúp dễ dàng thiết lập auth mà không cần viết nhiều mã. Nhưng chắc chắn xác thực cần phải có khả năng xác định ai được xác thực, nếu không thì các trường hợp sử dụng khá hạn chế! – Rory

Các vấn đề liên quan