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ể thực hiện yêu cầu cURL sau đây đối với API quản lý Edge để truy cập 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. Ví dụ:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
Sau khi bật SAML, bạn có thể tuỳ ý tắt tính năng Xác thực cơ bản. Nếu bạn tắt tính năng Xác thực cơ bản, tất cả các tập lệnh (tập lệnh Maven, tập lệnh shell, apigeetool, v.v.) 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.
Sử dụng get_token để lấy và làm mới mã làm mới
Tiện ích get_token sẽ trao đổi thông tin đăng nhập Xác thực cơ bản và mật mã của bạn để 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à in mã truy cập hợp lệ. Nếu có thể làm mới mã thông báo, thì mã thông báo đó sẽ được làm mới và in ra. 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 Postman hoặc nhúng mã thông báo vào một biến môi trường để sử dụng trong curl.
Quy trình sau đây mô tả cách sử dụng get_token để lấy mã truy cập OAuth2 nhằm thực hiện lệnh gọi API quản lý Edge:
- Tải gói sso-cli xuố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 của tên DNS của máy lưu trữ mô-đun SSO của Edge. Nếu bạn đã định cấu hình TLS trên Edge SSO, hãy sử dụng
httpsvà số cổng TLS chính xác. - Giải nén gói
ssocli-bundle.zip:unzip ssocli-bundle.zip
- Cài đặt get_token trong /usr/local/bin:
> ./install Sử dụng tuỳ chọn -b để chỉ định một vị trí khác: > ./install -b path - Đặt biến môi trường SSO_LOGIN_URL thành URL đăng nhập của bạn, ở dạng:
export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
trong đó edge_sso_IP_DNS là địa chỉ IP của tên DNS của máy lưu trữ mô-đun SSO của Edge. Nếu bạn đã định cấu hình TLS trên Edge SSO, hãy sử dụng https và số cổng TLS chính xác. - Trong trình duyệt, hãy truy cập vào 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 Edge SSO, hãy sử dụng https và số cổng TLS chính xác.
Lưu ý: Nếu hiện chưa đăng nhập bằng nhà cung cấp danh tính, bạn sẽ được nhắc đăng nhập.
URL này trả về một mật mã một lần và 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. - Gọi get_token để lấy mã truy cập OAuth2:
> get_token -u emailAddress
trong đó emailAddress là địa chỉ email của người dùng Edge. Bạn sẽ được nhắc nhập mật mã một lần mà bạn đã nhận được ở bước 3:
Mã một lần ( Nhận mã tại https://edge_sso_IP.com/passcode)
Nhập mật mã nếu SAML được bật hoặc nhấn phím ENTER:
Nhập mật mã. Tiện ích get_token lấ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.
Bạn có thể nhập mật mã trên dòng lệnh bằng lệnh get_token ở dạng:
> get_token -u emailAddress -p passcode - Truyền mã truy cập đến lệnh gọi API quản lý Edge dưới dạng tiêu đề Bearer:
> 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ể nhận mã truy cập và truyền mã đó đến lệnh gọi API trong một lệnh duy nhất, như minh hoạ dưới đây:
> 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ã đó sẽ tự động được làm mới cho đến khi mã làm mới hết hạn.
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 truy cập vào URL nêu trên ở Bước 3 và tạo một mật mã mới trước khi 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 bảo mật OAuth2 với API quản lý Apigee Edge có hướng dẫn về 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 Edge API cho 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ạn phải thêm mật mã, như minh hoạ trong bước 3 của quy trình nêu trên.
Ví dụ: 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'
Để 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 này sẽ in mã truy cập và mã làm mới ra màn hình.
Để 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'