Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Nội dung
Chính sách Kiểm soát quyền truy cập cho phép bạn cấp hoặc từ chối quyền truy cập vào các API của bạn theo địa chỉ IP cụ thể của bạn.
Video: Xem một video ngắn để tìm hiểu thêm về cách cho phép hoặc từ chối quyền truy cập vào API của bạn theo địa chỉ IP cụ thể.
Mặc dù có thể đính kèm chính sách này ở bất cứ đâu trong luồng proxy API, nhưng rất có thể bạn vẫn muốn kiểm tra địa chỉ IP ở đầu luồng ( Request / ProxyEndpoint / PreFlow), ngay cả trước xác thực hoặc kiểm tra hạn mức.
Mẫu
Giá trị mặt nạ trong các mẫu IPv4 sau đây xác định bộ bát nào trong số bốn octet (8, 16, 24, 32
bit) mà quy tắc so khớp sẽ xem xét khi cho phép hoặc từ chối quyền truy cập. Giá trị mặc định là 32. Xem
Thuộc tính mask
trong tệp tham chiếu phần tử để biết thêm thông tin
của bạn.
Từ chối 198.51.100.1
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Từ chối tất cả các yêu cầu từ địa chỉ máy khách: 198.51.100.1
Cho phép yêu cầu từ bất kỳ địa chỉ ứng dụng khách nào khác.
Từ chối bằng cách sử dụng các biến
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="{kvm.mask.value}">{kvm.ip.value}</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Giả sử bạn đang sử dụng bản đồ giá trị khoá (KVM) để lưu trữ các giá trị cho tính năng che giấu và IP.
Đây là một cách tiếp cận tiện lợi để thay đổi IP và che giấu trong thời gian chạy mà không cần phải cập nhật
và triển khai lại proxy API. Bạn có thể sử dụng chính sách KeyValueMapOperations để truy xuất
các biến chứa giá trị kvm.mask.value
và
kvm.ip.value
(giả sử bạn đã đặt tên cho các biến trong chính sách KVM của mình
chứa các giá trị mặt nạ và giá trị IP từ KVM).
Nếu giá trị bạn truy xuất là 24
cho mặt nạ và 198.51.100.1
đối với địa chỉ IP, chính sách AccessControl sẽ từ chối mọi yêu cầu từ: 198.51.100.*
Tất cả các địa chỉ khách hàng khác sẽ được cho phép.
Từ chối 198.51.100.*
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Từ chối tất cả các yêu cầu từ địa chỉ máy khách: 198.51.100.*
Cho phép yêu cầu từ bất kỳ địa chỉ ứng dụng khách nào khác.
198,51.*.*
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="16">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Từ chối tất cả các yêu cầu từ địa chỉ máy khách: 198.51.*.*
Cho phép yêu cầu từ bất kỳ địa chỉ ứng dụng khách nào khác.
Từ chối 198.51.100.*, cho phép 192.0.2.1
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="32">192.0.2.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Từ chối tất cả các yêu cầu từ địa chỉ máy khách: 198.51.100.*, nhưng cho phép 192.0.2.1.
Cho phép yêu cầu từ bất kỳ địa chỉ ứng dụng khách nào khác.
Cho phép 198,51.*.*
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "DENY"> <MatchRule action = "ALLOW"> <SourceAddress mask="16">198.51.100.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Cho phép tất cả các yêu cầu từ địa chỉ: 198,51.*.*
Từ chối yêu cầu từ bất kỳ địa chỉ ứng dụng khách nào khác.
Cho phép nhiều IP
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "DENY"> <MatchRule action = "ALLOW"> <SourceAddress mask="24">198.51.100.1</SourceAddress> <SourceAddress mask="24">192.0.2.1</SourceAddress> <SourceAddress mask="24">203.0.113.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Cho phép yêu cầu từ các địa chỉ máy khách: 198.51.100.* 192.0.2.* 203.0.113.*
Từ chối tất cả các địa chỉ khác.
Từ chối nhiều IP
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> <SourceAddress mask="24">192.0.2.1</SourceAddress> <SourceAddress mask="24">203.0.113.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Từ chối yêu cầu từ các địa chỉ máy khách: 198.51.100.* 192.0.2.* 203.0.113.*
Cho phép tất cả các địa chỉ khác.
Cho phép nhiều IP, từ chối nhiều IP
<AccessControl name="ACL"> <IPRules noRuleMatchAction = "DENY"> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> <SourceAddress mask="24">192.0.2.1</SourceAddress> <SourceAddress mask="24">203.0.113.1</SourceAddress> </MatchRule> <MatchRule action = "ALLOW"> <SourceAddress mask="16">198.51.100.1</SourceAddress> <SourceAddress mask="16">192.0.2.1</SourceAddress> <SourceAddress mask="16">203.0.113.1</SourceAddress> </MatchRule> </IPRules> </AccessControl>
Cho phép: 198,51.*.* 192.0.*.* 203.0.*.*
Từ chối một tập hợp con của danh sách cho phép: 198.51.100.* 192.0.2.* 203.0.113.*
Lưu ý về cách sử dụng
Ngoài việc bảo vệ API khỏi IP độc hại, chính sách Kiểm soát quyền truy cập cũng cho phép bạn kiểm soát quyền truy cập hợp pháp của địa chỉ IP. Ví dụ: nếu bạn chỉ muốn máy tính trong quyền kiểm soát doanh nghiệp của mình để truy cập vào các API hiển thị trong môi trường thử nghiệm, bạn có thể cho phép dải địa chỉ IP cho mạng nội bộ của bạn. Các nhà phát triển làm việc tại nhà có thể truy cập vào các API này bằng VPN.
Cấu hình và thực thi Chính sách kiểm soát quyền truy cập bao gồm những việc sau:
- Xác định một bộ quy tắc so khớp có một trong hai hành động (ALLOW hoặc DENY) được liên kết với mỗi từ khoá.
- Đối với mỗi quy tắc so khớp, hãy chỉ định địa chỉ IP (phần tử SourceAddress).
- Xem phần Cách chính sách chọn địa chỉ IP để đánh giá để xác định(các) địa chỉ IP trong thông báo mà bạn đang định cấu hình quy tắc để xử lý.
- Định cấu hình mặt nạ cho từng địa chỉ IP. Bạn cho phép hoặc từ chối cấp quyền truy cập dựa trên giá trị mặt nạ đang bật địa chỉ IP. Xem phần Giới thiệu về tính năng che giấu IP bằng ký hiệu CIDR.
- Chỉ định thứ tự thử nghiệm các quy tắc.
- Tất cả quy tắc so khớp được thực thi theo thứ tự nhất định. Khi quy tắc phù hợp,
hành động tương ứng sẽ được thực thi và bỏ qua các quy tắc so khớp tuân theo.
- Nếu cùng một quy tắc được định cấu hình với cả thao tác ALLOW và DENY, thì quy tắc được xác định đầu tiên theo thứ tự được kích hoạt và quy tắc tiếp theo (với hành động khác) được đã bỏ qua.
Cách chính sách chọn địa chỉ IP để đánh giá
Địa chỉ IP có thể đến từ nhiều nguồn trong một yêu cầu. Ví dụ:
True-Client-IP
tiêu đề thư có thể chứa địa chỉ IP và
Tiêu đề X-Forwarded-For
có thể chứa một hoặc nhiều địa chỉ IP. Phần này
mô tả cách định cấu hình chính sách AccessControl để đánh giá(các) địa chỉ IP chính xác mà bạn
mà bạn muốn công cụ này đánh giá.
Sau đây là logic mà chính sách AccessControl sử dụng để quyết định địa chỉ IP nào được gửi đến đánh giá:
1. Tiêu đề True-Client-IP
Trước tiên, chính sách này sẽ kiểm tra địa chỉ IP trong tiêu đề True-Client-IP
. Nếu
tiêu đề chứa địa chỉ IP hợp lệ, chính sách sẽ đánh giá địa chỉ đó.
2. Tiêu đề X-Forwarded-For
Nếu không có tiêu đề True-Client-IP
hoặc nếu bạn đã đặt
Phần tử <IgnoreTrueClientIPHeader> để
true, chính sách này đánh giá(các) địa chỉ IP trong tiêu đề X-Forwarded-For
.
Edge sẽ tự động điền tiêu đề X-Forwarded-For
bằng địa chỉ IP nhận được từ lần bắt tay TCP bên ngoài gần nhất (chẳng hạn như IP của ứng dụng khách hoặc
bộ định tuyến). Nếu có nhiều địa chỉ IP trong tiêu đề, thì các địa chỉ đó
có thể là chuỗi máy chủ xử lý yêu cầu. Tuy nhiên, danh sách địa chỉ
cũng có thể chứa địa chỉ IP giả mạo. Vậy làm cách nào để chính sách biết được địa chỉ nào
đánh giá?
Cấu hình tổ chức và cấu hình chính sách của bạn sẽ xác định
X-Forwarded-For
địa chỉ mà chính sách này đánh giá.
Trước tiên, hãy kiểm tra xem thuộc tính feature.enableMultipleXForwardCheckForACL
được thiết lập cho tổ chức của bạn. Bạn có thể sử dụng
Tải API tổ chức để kiểm tra. Sau đó:
- Nếu bạn không thấy
feature.enableMultipleXForwardCheckForACL
trong danh sách thuộc tính của tổ chức, điều đó có nghĩa là thuộc tính được đặt thành false (mặc định). Khi thuộc tính này được đặt thành false, chính sách sẽ đánh giá địa chỉ cuối cùng trong tiêu đề (hiển thị trong Công cụ theo dõi), tức là địa chỉ IP Cạnh nhận được từ lần bắt tay TCP bên ngoài gần đây nhất. - Nếu
feature.enableMultipleXForwardCheckForACL
trong tổ chức của bạn được đặt thành true, hãy định cấu hình thuộc tính <ValidateBasedOn> để xác định địa chỉ IP mà chính sách đánh giá.
Thay đổi thuộc tính feature.enableMultipleXForwardCheckForACL
Quản trị viên của tổ chức Edge có thể sử dụng
Cập nhật API thuộc tính của tổ chức để đặt
thuộc tính feature.enableMultipleXForwardCheckForACL
.
Ví dụ về API sau đây đặt thuộc tính trong Edge cho Đám mây riêng tư. Nếu tổ chức của bạn có các thuộc tính khác được đặt, hãy nhớ cung cấp cả các thuộc tính đó. Nếu không, chúng sẽ bị xoá.
curl -u email:password -X POST -H "Content-type:application/xml" http://host:8080/v1/o/myorg -d \ "<Organization type="trial" name="MyOrganization"> <DisplayName>MyOrganization</DisplayName> <Properties> <Property name="feature.enableMultipleXForwardCheckForACL">true</Property> <!-- Include other existing properties as well. --> </Properties> </Organization>"
Trong Edge dành cho Cloud riêng tư, sau khi thay đổi giá trị của
feature.enableMultipleXForwardCheckForACL
thuộc tính,
bạn phải khởi động lại trình xử lý tin nhắn, như được mô tả trong
Bắt đầu/dừng/khởi động lại từng thành phần.
Các phương diện X-Forwarded-For trong công cụ Phân tích Apigee
Edge Analytics ghi giá trị của tiêu đề X-Forwarded-For
vào
Phương diện x_forwarded_for_ip
. Để xác định IP ứng dụng khách đã thực hiện
yêu cầu đến Edge, hãy sử dụng các giá trị trong ax_true_client_ip
hoặc
ax_resolved_client_ip
kích thước. Xem
chỉ số, phương diện trong Analytics
và bộ lọc tham khảo để biết thêm thông tin.
Giới thiệu về tính năng che giấu IP bằng ký hiệu CIDR
Ký hiệu CIDR (Định tuyến giữa các miền không phân lớp) là một cách để chỉ ra một dải địa chỉ IP thông qua việc che giấu. Chính sách này áp dụng cho cả IPv4 và IPv6. Dưới đây là cách thức hoạt động. Chúng tôi sẽ sử dụng IPv4 trong ví dụ về tính đơn giản.
Địa chỉ IP là các nhóm số được phân tách bằng dấu chấm. Trong thuật ngữ nhị phân, mỗi nhóm là một số lượng bit cụ thể (8 đối với IPv4 và 16 bit đối với IPv6). Địa chỉ IPv4 198.51.100.1 trông giống như đoạn mã này dưới dạng tệp nhị phân:
11000110.00110011.01100100.00000001
Đó là 4 nhóm 8 bit hoặc 32 tổng số bit. Với CIDR, bạn có thể biểu thị một dải ô bằng cách thêm một /number (1-32) vào địa chỉ IP, như sau:
198.51.100.1/24
Trong trường hợp này, 24 là số bạn sẽ sử dụng cho thuộc tính mask
giá trị trong chính sách này.
Ký hiệu này có nghĩa là "Giữ nguyên 24 bit đầu tiên, các bit còn lại có thể bất kỳ giá trị nào từ 0 đến 255". Ví dụ:
Giữ nguyên các mã này | Các giá trị có thể có cho nhóm cuối cùng |
---|---|
198.51.100. | 0 – 255 |
Lưu ý rằng mặt nạ xảy ra ở cuối nhóm ba. Việc này giúp mọi thứ trở nên gọn gàng và đẹp mắt Tinh chất tạo ra mặt nạ như thế này: 198.51.100.*. Trong hầu hết các trường hợp, sử dụng bội số của 8 (IPv4) và 16 (IPv6) sẽ cung cấp cho bạn cấp độ che phủ mà bạn muốn:
IPv4: 8, 16, 24, 32
IPv6: 16, 32, 48, 64, 80, 96, 112, 128
Tuy nhiên, bạn có thể sử dụng các số khác để kiểm soát chi tiết hơn, bao gồm một chút nhị phân tính toán. Dưới đây là một ví dụ về cách sử dụng mặt nạ 30, như trong 198.51.100.1/30, trong đó mã cuối cùng 1 là 00000001 ở dạng nhị phân:
Giữ nguyên các mã này | Giá trị được phép |
---|---|
11000110,00110011,01100100.000000 (30 bit đầu tiên) | 00000000, 00000001, 00000010 hoặc 00000011 |
198.51.100. | 0, 1, 2 hoặc 3 |
Trong ví dụ này, với cấu hình được đặt thành <SourceAddress
mask="30">198.51.100.1</SourceAddress>
, các IP sau sẽ được cho phép (hoặc
bị từ chối, tuỳ thuộc vào quy tắc của bạn):
- 198.51.100.0
- 198.51.100.1
- 198.51.100.2
- 198.51.100.3
Tham chiếu phần tử
Tài liệu tham khảo phần tử mô tả các phần tử và thuộc tính của chính sách Kiểm soát quyền truy cập.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> <DisplayName>Access Control 1</DisplayName> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules> <ValidateBasedOn>X_FORWARDED_FOR_ALL_IP</ValidateBasedOn> </AccessControl>
<AccessControl> thuộc tính
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1">
Bảng sau đây mô tả những thuộc tính chung cho tất cả phần tử mẹ của chính sách:
Thuộc tính | Mô tả | Mặc định | Sự hiện diện |
---|---|---|---|
name |
Tên nội bộ của chính sách. Giá trị của thuộc tính (Không bắt buộc) Bạn có thể dùng phần tử |
Không áp dụng | Bắt buộc |
continueOnError |
Đặt thành Đặt thành |
false | Không bắt buộc |
enabled |
Hãy đặt thành Đặt thành |
đúng | Không bắt buộc |
async |
Thuộc tính này không được dùng nữa. |
false | Không được dùng nữa |
<DisplayName> phần tử
Hãy sử dụng cùng với thuộc tính name
để gắn nhãn chính sách trong phần
trình chỉnh sửa proxy giao diện người dùng quản lý có tên ngôn ngữ tự nhiên khác.
<DisplayName>Policy Display Name</DisplayName>
Mặc định |
Không áp dụng Nếu bạn bỏ qua phần tử này, giá trị của thuộc tính |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Chuỗi |
<IgnoreTrueClientIPHeader> phần tử
Khi bạn đặt giá trị này thành true, chính sách sẽ bỏ qua tiêu đề True-Client-IP
và đánh giá địa chỉ IP trong tiêu đề X-Forwarded-For
, theo sau
Hành vi đánh giá X-Forwarded-For mà bạn đã thiết lập.
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> <DisplayName>Access Control-1</DisplayName> <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader> ... </AccessControl>
Mặc định | false |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Boolean |
<IPRules> phần tử
Phần tử mẹ chứa các quy tắc cho phép hoặc từ chối địa chỉ IP. Chiến lược phát hành đĩa đơn
Thuộc tính noRuleMatchAction
cho phép bạn xác định cách xử lý mọi địa chỉ IP
không thuộc phạm vi áp dụng của quy tắc so khớp.
<IPRules noRuleMatchAction = "ALLOW">
Mặc định | Không áp dụng |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
Thuộc tính
Thuộc tính | Nội dung mô tả | Loại | Mặc định | Sự hiện diện |
---|---|---|---|---|
noRuleMatchAction |
Hành động cần thực hiện (cho phép hoặc từ chối quyền truy cập) nếu quy tắc so khớp đã chỉ định không được giải quyết
(chưa khớp).
Giá trị hợp lệ: ALLOW hoặc DENY
|
Chuỗi | CHO PHÉP | Bắt buộc |
<IPRules>/<MatchRule> phần tử
Hành động cần thực hiện (cho phép hoặc từ chối quyền truy cập) nếu địa chỉ IP khớp với(các) SourceAddress mà bạn định nghĩa.
<IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">198.51.100.1</SourceAddress> </MatchRule> </IPRules>
Mặc định | Không áp dụng |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
Thuộc tính
Thuộc tính | Nội dung mô tả | Loại | Mặc định | Sự hiện diện |
---|---|---|---|---|
hành động |
Hành động cần thực hiện (cho phép hoặc từ chối quyền truy cập) nếu quy tắc so khớp đã chỉ định không được giải quyết (chưa khớp). Giá trị hợp lệ: ALLOW hoặc DENY |
Chuỗi | CHO PHÉP | Bắt buộc |
<IPRules>/<MatchRule>/<SourceAddress> phần tử
Dải địa chỉ IP của một ứng dụng.
Giá trị hợp lệ: Địa chỉ IP hợp lệ (ký hiệu thập phân có dấu chấm). Đối với hành vi ký tự đại diện, hãy sử dụng
Thuộc tính mask
.
<IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "ALLOW"> <SourceAddress mask="{variable}">198.51.100.1</SourceAddress> </MatchRule> <MatchRule action = "DENY"> <SourceAddress mask="24">{variable}</SourceAddress> </MatchRule> </IPRules>
Như trong ví dụ trước, phần tử SourceAddress
cũng hỗ trợ
Mẫu tin nhắn cho
thuộc tính mask
hoặc địa chỉ IP.
nghĩa là bạn có thể đặt các giá trị bằng cách sử dụng các biến hiện có sẵn trong
Luồng proxy API.
Ví dụ: bạn có thể lưu trữ địa chỉ IP trong bản đồ khoá-giá trị (KVM) và sử dụng
Chính sách KeyValueMapOperations để truy xuất địa chỉ IP và gán địa chỉ đó cho một biến (chẳng hạn như
kvm.ip.value
). Sau đó, bạn có thể sử dụng biến đó cho địa chỉ IP:
<SourceAddress mask="24">{kvm.ip.value}</SourceAddress>
Việc thiết lập mặt nạ và/hoặc địa chỉ IP bằng một biến cho phép bạn linh hoạt thay đổi các giá trị tại thời gian chạy của bạn mà không phải sửa đổi và triển khai lại proxy API.
Mặc định | Không áp dụng |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Chuỗi (chỉ một địa chỉ IP) |
Thuộc tính
Thuộc tính | Nội dung mô tả | Loại | Mặc định | Sự hiện diện |
---|---|---|---|---|
đeo-khẩu-trang |
Thuộc tính
tương đương với ký hiệu CIDR sau: 198.51.100.1/24 Giá trị hợp lệ: IPv4: 1-32 IPv6: 1-128 Giá trị không (0) chỉ hợp lệ đối với IP 0.0.0.0, do đó không thực tế. Đặt mặt nạ bằng một biến Thuộc tính
|
Số nguyên | Không áp dụng | Bắt buộc |
<ValidateBasedOn> phần tử
Khi tiêu đề HTTP X-Forwarded-For
chứa nhiều IP
địa chỉ IP, hãy sử dụng phần tử ValidateBasedOn
này để kiểm soát địa chỉ IP nào
đánh giá.
Chỉ sử dụng phương pháp này để đánh giá địa chỉ IP khi bạn chắc chắn về tính hợp lệ
địa chỉ IP mà bạn muốn đánh giá. Ví dụ: nếu bạn chọn đánh giá tất cả
Địa chỉ IP trong tiêu đề X-Forwarded-For
, bạn phải tin tưởng
tính hợp lệ của các địa chỉ đó và/hoặc thiết lập quy tắc DENY hoặc ALLOW toàn diện để chỉ cho phép các địa chỉ đáng tin cậy
IP gọi proxy API của bạn.
Địa chỉ IP ở ngoài cùng bên trái trong tiêu đề thuộc về ứng dụng, còn ngoài cùng bên phải là máy chủ đã chuyển tiếp yêu cầu đến dịch vụ hiện tại. Địa chỉ IP ngoài cùng bên phải hoặc cuối cùng, là địa chỉ mà Edge nhận được từ lần bắt tay TCP bên ngoài gần đây nhất.
Giá trị bạn nhập vào phần tử này cho phép bạn xác định xem có kiểm tra tất cả địa chỉ IP trong tiêu đề (mặc định), chỉ địa chỉ IP đầu tiên hoặc chỉ địa chỉ IP cuối cùng.
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> <DisplayName>Access Control 1</DisplayName> <IPRules noRuleMatchAction = "ALLOW"> <MatchRule action = "DENY"> <SourceAddress mask="32">198.51.100.1</SourceAddress> </MatchRule> </IPRules> <ValidateBasedOn>X_FORWARDED_FOR_ALL_IP</ValidateBasedOn> </AccessControl>
Mặc định | X_FORWARDED_FOR_ALL_IP |
---|---|
Sự hiện diện | Không bắt buộc |
Giá trị hợp lệ |
|
Giản đồ
Mỗi loại chính sách được xác định bằng lược đồ XML (.xsd). Để tham khảo, giản đồ chính sách có trên GitHub.
Tham chiếu lỗi
Phần này mô tả các mã lỗi và thông báo lỗi được trả về cũng như các biến lỗi do Edge đặt khi chính sách này kích hoạt lỗi. Thông tin này rất quan trọng nếu bạn đang phát triển các quy tắc lỗi để xử lý lỗi. Để tìm hiểu thêm, hãy xem bài viết Những điều bạn cần biết về lỗi chính sách và Cách xử lý lỗi.
Lỗi thời gian chạy
Những lỗi này có thể xảy ra khi chính sách này thực thi.
Mã lỗi | Trạng thái HTTP | Nguyên nhân | Khắc phục |
---|---|---|---|
accesscontrol.IPDeniedAccess |
403 | Địa chỉ IP của ứng dụng khách hoặc địa chỉ IP được truyền
trong yêu cầu API, khớp với địa chỉ IP được chỉ định trong phần tử <SourceAddress> trong
phần tử <MatchRule> của Chính sách kiểm soát quyền truy cập và thuộc tính action của chính sách
Phần tử <MatchRule> được đặt thành DENY . |
build |
Biến lỗi
Các biến này được đặt khi xảy ra lỗi thời gian chạy. Để biết thêm thông tin, hãy xem bài viết Các biến dành riêng cho lỗi chính sách.
Biến | Trong đó | Ví dụ: |
---|---|---|
fault.name="fault_name" |
fault_name là tên của lỗi, như được liệt kê trong bảng Lỗi thời gian chạy ở trên. Tên lỗi là phần cuối cùng của mã lỗi. | fault.name Matches "IPDeniedAccess" |
acl.policy_name.failed |
policy_name là tên do người dùng chỉ định của chính sách gây ra lỗi. | acl.AC-AllowAccess.failed = true |
Ví dụ về phản hồi khi gặp lỗi
{ "fault":{ "faultstring":"Access Denied for client ip : 52.211.243.3" "detail":{ "errorcode":"accesscontrol.IPDeniedAccess" } } }
Ví dụ về quy tắc lỗi
<FaultRule name="IPDeniedAccess"> <Step> <Name>AM-IPDeniedAccess</Name> <Condition>(fault.name Matches "IPDeniedAccess") </Condition> </Step> <Condition>(acl.failed = true) </Condition> </FaultRule>