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?
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