Sử dụng một nhà cung cấp danh tính (IDP) bên ngoài với API quản lý Edge

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 tới API Quản lý Edge để truy cập thông tin về tổ chức của bạn:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

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/ORG_NAME

Sau khi bật một IDP bên ngoài để xác thực, 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ả tập lệnh (chẳng hạn như Maven, shell và apigeetool) dựa vào các 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. Bạn phải cập nhật bất kỳ lệnh gọi API và tập lệnh nào sử dụng Xác thực cơ bản để chuyển mã thông báo truy cập OAuth2 trong Tiêu đề Bearer.

Lấy và làm mới mã thông báo bằng get_token

Tiện ích get_token trao đổi thông tin xác thực cơ bản của bạn (và trong một số trường hợp là mã xác thực) để lấy mã truy cập và làm mới OAuth2. Tiện ích get_token chấp nhận thông tin xác thực và trả về mã truy cập hợp lệ. Nếu có thể làm mới mã thông báo, tiện ích này sẽ làm mới và trả lại. Nếu mã thông báo làm mới hết hạn, thì mã này sẽ nhắc người dùng nhập thông tin xác thực.

Tiện ích get_token lưu trữ các mã thông báo trên đĩa, sẵn sàng để sử dụng khi cần. Nó 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 một tiện ích 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 các lệnh gọi API quản lý Edge:

  1. 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 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 trong dịch vụ SSO của Apigee, hãy dùng https và đúng cách Số cổng TLS.

  2. Giải nén gói ssocli-bundle.zip như trong ví dụ sau:
    unzip ssocli-bundle.zip
  3. Cài đặt get_token trong /usr/local/bin, như trong ví dụ sau:
    ./install -b PATH

    Tuỳ chọn -b chỉ định một vị trí khác.

  4. Đặt biến môi trường SSO_LOGIN_URL thành URL đăng nhập của bạn, theo cách sau biểu mẫu:
    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ữ SSO của Apigee . Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của Apigee, hãy sử dụng https và đúng cổng TLS số.

  5. (chỉ với SAML) Trong trình duyệt, hãy chuyển đến URL sau để nhận mã xác minh một lần mật mã:
    http://EDGE_SSO_IP_DNS:9099/passcode

    Nếu bạn đã định cấu hình TLS trong dịch vụ SSO của Apigee, hãy sử dụng https và đúng cổng TLS số.

    Yêu cầu 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ột 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) dựa trên SAML. Bạn không thể sử dụng mật mã để xác thực với IDP LDAP.

  6. Gọi get_token để lấy mã truy cập OAuth2, như ví dụ sau đây:
    get_token -u EMAIL_ADDRESS

    Trong đó EMAIL_ADDRESS là địa chỉ email của một người dùng Edge.

    (Chỉ dành cho SAML) Ngoài email, hãy nhập mật mã trên dòng lệnh của Google, như trong ví dụ sau đây:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    Tiện ích get_token lấy mã truy cập OAuth2, in mã này lên màn hình, đồng thời ghi mã này và mã làm mới vào ~/.sso-cli.

  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, như trong ví dụ sau đây:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. Sau khi nhận 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 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/ORG_NAME

    Với hình thức lệnh này, nếu mã truy cập đã hết hạn, mã sẽ tự động được làm mới cho đến khi mã làm mới hết hạn.

(Chỉ 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 điều hướng đến URL hiển thị ở bước 3 ở trên và tạo mật mã mới trước khi bạn có thể tạo mã truy cập OAuth mới.

Sử dụng API quản lý để tải và làm mới mã thông báo

Bài viết Sử dụng tính năng bảo mật OAuth2 bằng 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ã thông báo. Bạn cũng có thể dùng lệnh gọi API Edge để nhận mã thông báo được tạo từ thông tin xác nhận SAML.

Điểm 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 tính năng bảo mật OAuth2 bằng 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 một nhà cung cấp danh tính (IDP) dựa trên SAML, bạn phải cung cấp mật mã, như được hiển thị trong bước 3 của quy trình trên.

Để uỷ quyền, hãy truyền thông tin xác thực ứng dụng khách OAuth2 được đặt trước trong tiêu đề Authorization. Lệnh gọi sẽ in mã truy cập và mã làm mới lên màn hình.

Lấy mã truy cập

(LDAP) Sử dụng lệnh gọi API sau để tạo quyền truy cập ban đầu và làm mới mã thông báo:

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 \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) Sử dụng lệnh gọi API sau để tạo quyền truy cập ban đầu và làm mới mã thông báo:

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 nhà cung cấp danh tính (IDP) dựa trên SAML yêu cầu mật mã tạm thời, trong khi nhà cung cấp danh tính 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 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=REFRESH_TOKEN'