Xác thực cơ bản là một cách để xác thực khi thực hiện lệnh gọi đến API quản lý Edge.
Ví dụ: bạn có thể gửi yêu cầu curl sau đây đến API quản lý Edge để truy cập vào thông tin về tổ chức của bạn:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
Trong ví dụ này, bạn sử dụng tuỳ chọn curl -u để truyền thông tin xác thực cơ bản. Ngoài ra, bạn có thể truyền mã thông báo OAuth2 trong tiêu đề Bearer để thực hiện lệnh gọi API quản lý Edge, như trong ví dụ sau:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
Sau khi bật một IDP bên ngoài để xác thực, bạn có thể tắt tính năng xác thực Cơ bản (không bắt buộc). Nếu bạn tắt tính năng Xác thực cơ bản, thì tất cả các tập lệnh (chẳng hạn như Maven, shell và apigeetool) dựa vào lệnh gọi API quản lý Edge hỗ trợ tính năng Xác thực cơ bản sẽ không còn hoạt động nữa. Bạn phải cập nhật
mọi lệnh gọi API và tập lệnh sử dụng phương thức xác thực cơ bản để truyền mã truy cập OAuth2 trong
tiêu đề Bearer.
Lấy và làm mới mã làm mới bằng get_token
Tiện ích get_token trao đổi thông tin xác thực cơ bản (và trong một số trường hợp là mật mã) để lấy mã truy cập và mã làm mới OAuth2. Tiện ích get_token chấp nhận thông tin đăng nhập của bạn và trả về một mã truy cập hợp lệ. Nếu có thể làm mới mã thông báo, thì tiện ích sẽ làm mới và trả về mã thông báo đó. Nếu mã làm mới hết hạn, hệ thống sẽ nhắc người dùng nhập thông tin đăng nhập.
Tiện ích get_token lưu trữ mã thông báo trên ổ đĩa, sẵn sàng để sử dụng khi cần. Lệnh này cũng in mã truy cập hợp lệ vào stdout. Từ đó, bạn có thể sử dụng một tiện ích của trình duyệt như Postman hoặc nhúng tiện ích đó vào một biến môi trường để sử dụng trong curl.
Cách lấy mã truy cập OAuth2 để thực hiện lệnh gọi API quản lý Edge:
- Tải gói
sso-clixuống:curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
Trong đó edge_sso_IP_DNS là địa chỉ IP hoặc tên DNS của máy lưu trữ mô-đun SSO của Apigee. Nếu bạn đã định cấu hình TLS trên Apigee SSO, hãy sử dụng
httpsvà số cổng TLS chính xác. - Giải nén gói
ssocli-bundle.zipnhư trong ví dụ sau:unzip ssocli-bundle.zip
- Cài đặt
get_tokentrong/usr/local/bin, như trong ví dụ sau:./install -b path
Tuỳ chọn
-bchỉ định một vị trí khác. - Đặt biến môi trường
SSO_LOGIN_URLthành URL đăng nhập của bạn, theo biểu mẫu sau:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
Trong đó, edge_sso_IP_DNS là địa chỉ IP của máy lưu trữ mô-đun SSO của Apigee. Nếu bạn đã định cấu hình TLS trên Apigee SSO, hãy sử dụng
httpsvà số cổng TLS chính xác. - (Chỉ dành cho SAML) Trong trình duyệt, hãy chuyển đến URL sau để lấy mật mã một lần:
http://edge_sso_IP_DNS:9099/passcode
Nếu bạn đã định cấu hình TLS trên Apigee SSO, hãy sử dụng
httpsvà số cổng TLS chính xác.Yêu cầu này trả về một mật mã một lần, mật mã này vẫn có hiệu lực cho đến khi bạn làm mới URL đó để lấy mật mã mới hoặc bạn sử dụng mật mã với
get_tokenđể tạo mã truy cập.Xin lưu ý rằng bạn chỉ có thể sử dụng mật mã khi xác thực bằng nhà cung cấp danh tính (IDP) SAML. Bạn không thể sử dụng mật mã để xác thực bằng IDP LDAP.
- Gọi
get_tokenđể lấy mã truy cập OAuth2, như trong ví dụ sau:get_token -u emailAddress
Trong đó emailAddress là địa chỉ email của người dùng Edge.
(Chỉ dành cho SAML) Nhập mật mã trên dòng lệnh ngoài địa chỉ email, như trong ví dụ sau:
get_token -u emailAddress -p passcode
Tiện ích
get_tokenlấy mã truy cập OAuth2, in mã đó ra màn hình và ghi mã đó cũng như mã làm mới vào~/.sso-cli. - Truyền mã truy cập đến lệnh gọi API quản lý Edge dưới dạng tiêu đề
Bearer, như trong ví dụ sau:curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
- Sau khi nhận được mã truy cập mới lần đầu tiên, bạn có thể lấy mã truy cập và
chuyển mã đó đến một lệnh gọi API trong một lệnh duy nhất, như trong ví dụ sau:
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
Với dạng lệnh này, nếu mã truy cập đã hết hạn, thì mã này sẽ tự động được làm mới cho đến khi mã làm mới hết hạn.
(Chỉ dành cho SAML) Sau khi mã làm mới hết hạn, get_token sẽ nhắc bạn nhập mật mã mới. Bạn
phải chuyển đến URL hiển thị ở bước 3 ở trên và tạo một mật mã mới thì mới có thể tạo
mã truy cập OAuth mới.
Sử dụng API quản lý để lấy và làm mới mã thông báo
Sử dụng tính năng bảo mật OAuth2 với API quản lý Apigee Edge cho biết cách sử dụng API quản lý Edge để lấy và làm mới mã làm mới. Bạn cũng có thể sử dụng lệnh gọi API Edge để nhận mã thông báo được tạo từ câu nhận định SAML.
Sự khác biệt duy nhất giữa các lệnh gọi API được ghi lại trong phần Sử dụng bảo mật OAuth2 với API quản lý Apigee Edge là URL của lệnh gọi phải tham chiếu đến tên vùng của bạn. Ngoài ra, để tạo mã truy cập ban đầu bằng IDP SAML, bạn phải thêm mật mã, như trong bước 3 của quy trình nêu trên.
Để uỷ quyền, hãy truyền thông tin xác thực ứng dụng khách OAuth2 dành riêng trong tiêu đề Authorization. Lệnh gọi sẽ in mã truy cập và mã làm mới ra màn hình.
Lấy mã truy cập
(LDAP) Sử dụng lệnh gọi API sau đây để tạo mã truy cập và mã làm mới ban đầu:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" / -H "accept: application/json;charset=utf-8" / -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST / https://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token'
(SAML) Sử dụng lệnh gọi API sau để tạo mã truy cập và mã làm mới ban đầu:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" / -H "accept: application/json;charset=utf-8" / -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST / https://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token&passcode=passcode'
Xin lưu ý rằng việc xác thực bằng IDP SAML yêu cầu mật mã tạm thời, trong khi IDP LDAP thì không.
Làm mới mã truy cập
Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi sau đây, trong đó có mã làm mới:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" / -H "Accept: application/json;charset=utf-8" / -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST / https://edge_sso_IP_DNS:9099/oauth/token / -d 'grant_type=refresh_token&refresh_token=refreshToken'