Sử dụng SAML với API quản lý Edge

Edge for Private Cloud phiên bản 4.18.05

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. Cho ví dụ: bạn có thể gửi yêu cầu cURL sau đây tớ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 để chuyển thông tin xác thực cơ bản. Ngoài ra, bạn có thể chuyển mã thông báo OAuth2 trong tiêu đề Bearer để tạo API quản lý Edge cuộc gọi. 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 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 Edge các lệnh gọi API quản lý hỗ trợ tính năng Xác thực cơ bản 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à các tập lệnh sử dụng Xác thực cơ bản để chuyển mã truy cập OAuth2 trong tiêu đề Bearer.

Dùng get_token để lấy và làm mới mã thông báo

Tiện ích get_token trao đổi thông tin xác thực Xác thực cơ bản và mật mã để truy cập OAuth2 và mã thông báo làm mới. Chiến lược phát hành đĩa đơn Tiện ích get_token chấp nhận thông tin xác thực và in mã truy cập hợp lệ. Nếu có thể làm mới một mã thông báo, mã đó sẽ được làm mới và in ra. Nếu mã làm mới hết hạn, mã sẽ nhắc nhập thông tin đăng nhập của người dùng.

Cửa hàng tiện ích get_token các mã thông báo trên đĩa, sẵn sàng để sử dụng khi được yêu cầu. Thao tác này cũng in mã thông báo truy cập hợp lệ vào stdout. Từ đó, bạn có thể sử dụng Postman hoặc nhúng đoạn mã này vào một biến môi trường để sử dụng trong curl.

Quy trình sau đây mô tả cách dùng get_token để lấy mã truy cập OAuth2 để thực hiện lệnh gọi API quản lý Edge:

  1. Tải sso-cli xuống gói:
    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 trong dịch vụ SSO của cạnh, hãy dùng https và số cổng TLS chính xác.

  2. Giải nén gói ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Cài đặt get_token trong /usr/local/bin:
    > ./install Sử dụng -b để chỉ định a vị trí khác: > ./install -b đường dẫn
  4. Đặt SSO_LOGIN_URL biến môi trường vào URL đăng nhập của bạn, dưới dạng:
    xuất 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 trong dịch vụ SSO của cạnh, hãy sử dụng https và số cổng TLS chính xác.
  5. Trên trình duyệt, hãy truy cập vào URL sau để nhận mật mã một lần:
    http://edge_sso_IP_DNS:9099/passcode

    Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của cạnh, 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ã một lần vẫn có hiệu lực cho đến khi bạn làm mới URL đó để nhận 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.
  6. Gọi get_token để lấy mã truy cập OAuth2:
    > get_token -u emailAddress

    trong đó emailAddress là địa chỉ email của một người dùng Edge. Bạn lời 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 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 quyền truy cập OAuth2 mã thông báo, hãy in ra màn hình rồi ghi mã này và 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 trong biểu mẫu:
    > get_token -u emailAddress -p mật mã
  7. Truyền mã truy cập vào lệnh gọi API quản lý Edge dưới dạng tiêu đề Bearer:
    > curl -H "Uỷ quyền: Trình mang access_token" https://ms_IP:8080/v1/organizations/orgName

    Sau lần đầu có được mã truy cập mới, bạn có thể lấy mã truy cập và truyền mã đó đến lệnh gọi API trong một lệnh, như minh hoạ dưới đây:
    > tiêu đề=`get_token` && curl -H "Uỷ quyền: Người dùng $header" https://ms_IP:8080/v1/o/orgName

    Với hình thức lệnh này, nếu mã truy cập đã hết hạn, mã truy cập 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 Bạn phải truy cập URL hiển thị trong Bước 3 ở trên và tạo 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ý để nhận và làm mới mã thông báo

Sử dụng OAuth2 bằng API quản lý Apigee Edge có chứa hướng dẫn về cách sử dụng Edge Management API để lấy và làm mới mã thông báo. Bạn cũng có thể dùng lệnh gọi API Edge để lấy mã thông báo được tạo từ thông tin xác nhận SAML.

Sự khác biệt duy nhất giữa các lệnh gọi API được ghi lại trong bài viết Sử dụng phương thức bảo mật OAuth2 với API quản lý Apigee Edge là URL của cuộc gọi phải tham chiếu đế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ư như được trình bày ở bước 3 của quy trình trên.

Ví dụ: sử dụng lệnh gọi API sau đây để tạo mã truy cập ban đầu và 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 -s /
  -d 'grant_type=password&response_type=token&passcode=passcode'  

Để uỷ quyền, hãy chuyển thông tin đăng nhập dành riêng cho ứng dụng OAuth2 trong tiêu đề Uỷ quyền. Cuộc gọi in truy cập và làm mới mã vào màn hình.

Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi có chứa mã làm mới sau đây:

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'