Xác thực
AstroAPI hỗ trợ nhiều phương thức xác thực tùy thuộc vào trường hợp sử dụng của bạn.
Xác thực bằng API Key
API key là phương thức được khuyến nghị cho giao tiếp giữa các máy chủ.
Lấy API Key
- Đăng nhập vào AstroAPI Dashboard
- Điều hướng đến Settings > API Keys
- Nhấn Create API Key
- Cấu hình quyền hạn và giới hạn tốc độ
- Sao chép key được tạo ra (key sẽ không được hiển thị lại)
Sử dụng API Key
Thêm API key của bạn vào header X-Api-Key:
curl -X GET "https://api.astroapi.cloud/api/calc/natal" \
-H "X-Api-Key: ak_live_xxxxxxxxxxxx"Quyền hạn API Key
API key có thể được giới hạn cho các quyền hạn cụ thể:
| Quyền hạn | Mô tả |
|---|---|
calc:read | Truy cập các endpoint tính toán |
content:read | Truy cập các endpoint nội dung/giải thích |
chart:read | Truy cập các endpoint hiển thị lá số |
modules:read | Truy cập các module đã mua |
Vai trò
AstroAPI sử dụng kiểm soát truy cập dựa trên vai trò trong các tổ chức:
| Vai trò | Mô tả |
|---|---|
owner | Toàn quyền truy cập vào tất cả tính năng của tổ chức |
manager | Có thể quản lý người dùng, thanh toán và nội dung |
member | Truy cập cơ bản để tính toán và đọc nội dung |
Quyền hạn theo Vai trò
| Quyền hạn | owner | manager | member | Mô tả |
|---|---|---|---|---|
org:create | ✅ | Tạo tổ chức | ||
org:read | ✅ | ✅ | ✅ | Đọc thông tin tổ chức |
org:update | ✅ | ✅ | Cập nhật tổ chức | |
org:users:read | ✅ | ✅ | Đọc danh sách người dùng | |
org:users:create | ✅ | ✅ | Mời người dùng | |
org:users:update | ✅ | ✅ | Cập nhật người dùng | |
org:users:delete | ✅ | ✅ | Xóa người dùng | |
billing:read | ✅ | ✅ | Xem thông tin thanh toán | |
billing:manage | ✅ | ✅ | Quản lý thanh toán | |
content:read | ✅ | ✅ | ✅ | Đọc nội dung |
content:create | ✅ | ✅ | Tạo nội dung | |
content:update | ✅ | ✅ | Cập nhật nội dung | |
content:delete | ✅ | ✅ | Xóa nội dung | |
content:custom-copy | ✅ | ✅ | ✅ | Tạo bản sao tùy chỉnh |
content:restore | ✅ | ✅ | Khôi phục nội dung | |
calc:use | ✅ | ✅ | ✅ | Sử dụng các endpoint tính toán |
chart:use | ✅ | ✅ | ✅ | Sử dụng các endpoint lá số |
modules:read | ✅ | ✅ | ✅ | Đọc thông tin module |
admin:access | ✅ | Truy cập quản trị |
Ngữ cảnh Tổ chức
Đối với các ứng dụng đa người thuê, API key được gắn với các tổ chức. Ngữ cảnh tổ chức được áp dụng tự động dựa trên API key được sử dụng.
Hạn chế Tên miền
API key có thể được cấu hình với hạn chế tên miền để giới hạn những website nào có thể sử dụng chúng:
example.com- Khớp tên miền chính xác*.example.com- Tất cả tên miền phụ*- Cho phép tất cả tên miền (không khuyến nghị)
Cấu hình hạn chế tên miền trong dashboard khi tạo hoặc chỉnh sửa API key.
Hạn chế Quan trọng
Hạn chế tên miền chỉ bảo vệ khỏi lạm dụng trên trình duyệt. Chúng phụ thuộc vào header Origin và Referer, mà trình duyệt thực thi nhưng có thể dễ dàng giả mạo bên ngoài trình duyệt (ví dụ: curl, script, mã phía máy chủ).
Sử dụng Phía Máy khách vs Phía Máy chủ
Máy chủ-đến-Máy chủ (Khuyến nghị)
Đối với các ứng dụng sản xuất, luôn sử dụng API key trên máy chủ backend của bạn:
┌─────────────┐ ┌─────────────────┐ ┌─────────────┐
│ Browser │ ───► │ Your Backend │ ───► │ AstroAPI │
│ (no keys) │ │ (API key here) │ │ │
└─────────────┘ └─────────────────┘ └─────────────┘Phương pháp này:
- Giữ API key của bạn an toàn và được ẩn
- Cho phép bạn thêm lớp xác thực riêng
- Ngăn người dùng cuối trích xuất API key
- Cho phép ký yêu cầu và các biện pháp bảo mật bổ sung
Sử dụng Phía Máy khách / Trình duyệt
Nếu bạn phải sử dụng API key trực tiếp trong trình duyệt (ví dụ: widget nhúng trên các trang web tĩnh), hãy lưu ý các hạn chế sau:
- API key hiển thị trong mã nguồn JavaScript và các yêu cầu mạng
- Bất kỳ ai cũng có thể trích xuất key từ website của bạn
- Hạn chế tên miền chỉ ngăn các website khác sử dụng key của bạn qua JavaScript - chúng không ngăn ai đó sao chép key và sử dụng ở nơi khác
Đối với sử dụng phía máy khách, chúng tôi khuyến nghị:
- Bật hạn chế tên miền
- Đặt giới hạn tốc độ nghiêm ngặt
- Sử dụng thời gian hết hạn ngắn
- Giám sát việc sử dụng để phát hiện bất thường
Trách nhiệm của Khách hàng
Quan trọng
Bạn có trách nhiệm về bảo mật và việc sử dụng API key của mình.
Tất cả các yêu cầu API được thực hiện bằng API key của bạn đều tính vào hạn mức và được tính phí vào tài khoản của bạn, bất kể các yêu cầu được thực hiện bởi bạn hay bởi người đã lấy được key của bạn.
Nếu bạn để lộ API key trong mã phía máy khách và nó bị lạm dụng, bạn chịu trách nhiệm về việc sử dụng và chi phí phát sinh. AstroAPI không thể phân biệt giữa các yêu cầu hợp lệ và các yêu cầu trái phép được thực hiện bằng API key hợp lệ.
Để giảm thiểu rủi ro:
- Sử dụng giao tiếp máy chủ-đến-máy chủ bất cứ khi nào có thể
- Không bao giờ commit API key vào hệ thống kiểm soát phiên bản
- Xoay vòng key ngay lập tức nếu bạn nghi ngờ chúng đã bị xâm phạm
- Thiết lập cảnh báo sử dụng để phát hiện các đột biến bất thường
Thực hành Bảo mật Tốt nhất
- Sử dụng giao tiếp máy chủ-đến-máy chủ cho các ứng dụng sản xuất
- Không bao giờ để lộ API key trong mã phía máy khách trừ khi thực sự cần thiết
- Xoay vòng API key định kỳ
- Sử dụng quyền hạn tối thiểu cần thiết
- Bật hạn chế tên miền cho các key phía máy khách
- Đặt giới hạn tốc độ phù hợp
- Giám sát việc sử dụng API key trong dashboard