🔐 Kích Hoạt Xác Thực Dễ Dàng cho Azure Logic Apps (Standard)
Khi bạn triển khai một workflow Logic App qua một HTTP trigger, bạn thường bảo mật nó bằng một Shared Access Signature (SAS) key (sig=...
). Mặc dù phương pháp này có thể hoạt động, nhưng không phải là lý tưởng — bất kỳ ai có URL đều có thể gọi workflow của bạn.
Một phương pháp tốt hơn là kích hoạt Xác Thực/Ủy Quyền Dịch Vụ Ứng Dụng (còn gọi là Xác Thực Dễ Dàng) trước Logic App của bạn. Cách này chỉ cho phép những người gọi có token Microsoft Entra ID (Azure AD) hợp lệ mới có thể khởi động các workflows của bạn.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách kích hoạt Xác Thực Dễ Dàng cho Logic Apps Standard (đơn thuê).
🚦 Điều Kiện Tiên Quyết
- Một Logic App (Standard) đã được triển khai trong Azure
- Một Đăng Ký Ứng Dụng trong Microsoft Entra ID (Azure AD)
- Quyền Sở Hữu hoặc Người Đóng Góp trên tài nguyên Logic App
⚠️ Lưu ý: Xác Thực Dễ Dàng không khả dụng cho Logic Apps (Consumption). Đối với Consumption, bạn cần API Management hoặc các hạn chế IP.
🔧 Bước 1: Kích Hoạt, Cấu Hình và Thực Thi Xác Thực
-
Vào Logic App của bạn trong Azure Portal.
-
Dưới Cài đặt, chọn Xác thực.
-
Nhấn Thêm nhà cung cấp danh tính → chọn Microsoft.
-
Chọn Đăng Ký Ứng Dụng hiện có của bạn (hoặc tạo mới) và Lưu lại.
-
Sau khi thêm, nhấn Chỉnh sửa trên nhà cung cấp Microsoft và cấu hình:
- Issuer URL Sử dụng endpoint v2.0 cho tenant của bạn:
https://login.microsoftonline.com/<tenantId>/v2.0
- Đối tượng token được phép
api://<your-client-id>
<your-client-id>
(GUID thô)
- Kiểm tra bổ sung
- Yêu cầu ứng dụng khách
- Cho phép yêu cầu từ các ứng dụng khách cụ thể (được khuyến nghị, danh sách các client ID đáng tin cậy)
- hoặc Cho phép yêu cầu từ bất kỳ ứng dụng nào (để thử nghiệm)
- Yêu cầu danh tính
- Cho phép yêu cầu từ bất kỳ danh tính nào (mặc định)
- hoặc Cho phép yêu cầu từ các danh tính cụ thể (giới hạn cho những người dùng/nhóm đã chọn)
- Yêu cầu tenant
- Chỉ từ tenant này (được khuyến nghị cho đơn thuê)
- hoặc Cho phép yêu cầu từ bất kỳ tenant Microsoft Entra nào (đa thuê)
- Yêu cầu ứng dụng khách
-
Mở Xác thực → Cài đặt và xem xét:
- Xác thực dịch vụ ứng dụng → Đã bật
- Hạn chế truy cập → Yêu cầu xác thực (chặn các yêu cầu không được xác thực)
-
Lưu lại thay đổi của bạn.
-
Nhận một token cho Logic App của bạn (sử dụng Postman, Azure CLI hoặc ứng dụng của bạn).
- Ví dụ: trong Postman, sử dụng
grant_type=client_credentials
vớiclient_id
,client_secret
, vàscope
của bạn. - Phản hồi sẽ bao gồm một
access_token
.
- Ví dụ: trong Postman, sử dụng
-
Giải mã token tại https://jwt.ms.
- Dán
access_token
vào bộ giải mã. - Tìm claim
"oid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
trong payload. - Giá trị này là Object ID (OID) của người dùng hoặc service principal.
- Dán
-
Cấu hình Yêu cầu Danh tính trong Logic App của bạn.
- Vào Xác thực → Nhà cung cấp Microsoft → Yêu cầu danh tính.
- Chọn Cho phép yêu cầu từ các danh tính cụ thể.
- Dán OID(s) bạn đã thu thập vào danh sách được phép.
✅ Xác Thực & Kiểm Tra
Dưới đây là cách mà Logic App hoạt động với các phương pháp xác thực khác nhau:
- Sử dụng SAS Key (mặc định) → hoạt động, nhưng kém an toàn — bất kỳ ai có URL + sig đều có thể gọi nó.
- Sử dụng Xác Thực Dễ Dàng (Bearer Token) → hoạt động ✅ — chỉ chấp nhận các token Entra ID hợp lệ.
- Thiếu Tiền Tố
Bearer
→ thất bại với 401 Unauthorized.
⚡ Tổng Kết
Với Xác Thực Dễ Dàng được kích hoạt và Yêu cầu danh tính bị giới hạn cho các OID cụ thể:
- Các điểm cuối Logic App của bạn được bảo vệ bởi Microsoft Entra ID.
- Chỉ các ứng dụng khách, tenant, và danh tính cụ thể mới có thể truy cập chúng.
- Điều này đưa Logic App của bạn phù hợp với các thực tiễn bảo mật API cấp doanh nghiệp.
Thực Hành Tốt Nhất
- Sử dụng token một lần: Để tăng cường bảo mật, hãy sử dụng token một lần cho mỗi yêu cầu.
- Giới hạn quyền truy cập: Chỉ cấp quyền cho các ứng dụng và người dùng cần thiết.
Cạm Bẫy Thường Gặp
- Quên xác thực: Đảm bảo xác thực được cấu hình đúng để tránh lỗi 401.
- Sử dụng token không hợp lệ: Kiểm tra tính hợp lệ của token trước khi gửi yêu cầu.
Mẹo Hiệu Suất
- Giảm thiểu số lần gọi API: Sử dụng caching để giảm tải cho Logic App khi có thể.
- Tối ưu hóa quy trình Logic App: Xem xét cách thức hoạt động của Logic App và loại bỏ các bước không cần thiết.
Câu Hỏi Thường Gặp (FAQ)
Q: Xác thực dễ dàng có ảnh hưởng đến hiệu suất không?
A: Có thể, nhưng nếu được cấu hình đúng, nó sẽ không gây ra vấn đề đáng kể.
Q: Tôi có thể sử dụng Easy Auth với Logic Apps Consumption không?
A: Không, bạn cần sử dụng API Management cho Logic Apps Consumption.
Q: Làm thế nào để kiểm tra token?
A: Bạn có thể sử dụng jwt.ms để giải mã và kiểm tra token của mình.