Tự động hoá công việc bằng người dùng máy

Khi sử dụng một nhà cung cấp dịch vụ danh tính (IDP) bên ngoài với Edge API, quy trình tiêu chuẩn để lấy mã truy cập OIDC/OAuth2 từ CLI là quy trình Mã thiết bị OAuth 2.0. Với quy trình này, bạn sẽ sử dụng tiện ích get_token. Tiện ích này sẽ nhắc bạn truy cập vào một URL trong trình duyệt để xác thực thông qua IDP, sau đó tự động bỏ chặn thiết bị đầu cuối của bạn.

Tuy nhiên, môi trường phát triển của bạn có thể hỗ trợ tính năng tự động hoá cho các tác vụ phát triển phổ biến, chẳng hạn như tự động hoá quy trình kiểm thử hoặc quy trình CI/CD. Để tự động hoá các tác vụ này khi bật IDP bên ngoài, bạn cần có cách để lấy và làm mới mã thông báo OAuth2 mà không cần tương tác với trình duyệt.

Edge hỗ trợ tính năng tự động tạo mã thông báo thông qua việc sử dụng người dùng máy không có giao diện người dùng. Người dùng máy có thể lấy mã thông báo OIDC/OAuth2 thông qua các cấp quyền mật khẩu tiêu chuẩn mà không cần trình trình duyệt. Điều đó có nghĩa là bạn có thể tự động hoá hoàn toàn quy trình lấy và làm mới mã thông báo cho các tập lệnh của mình.

Tạo người dùng máy

Bạn có thể tạo một người dùng máy được tất cả tổ chức của bạn sử dụng hoặc tạo một người dùng máy riêng cho từng tổ chức.

Người dùng máy được tạo và lưu trữ trực tiếp trong thư mục OpenLDAP cục bộ, đồng thời được gắn thẻ rõ ràng là người dùng máy (employeeType: machineuser). Điều này cho phép Apigee SSO xác thực người dùng máy một cách an toàn thông qua cấp quyền mật khẩu ngay cả khi SAML/OIDC liên kết được thực thi nghiêm ngặt đối với người dùng là con người.

Để biết hướng dẫn chi tiết về cách tạo, liệt kê và quản lý người dùng máy, hãy xem bài viết Quản lý người dùng máy bằng apigee-machineuser.sh.

Lấy và làm mới mã thông báo của người dùng máy

Bạn có thể sử dụng các tiện ích get_token và acurl được cung cấp trong /opt/apigee/apigee-openldap/bin/ hoặc curl tiêu chuẩn để lấy mã thông báo cho người dùng máy.

  • Sử dụng các tiện ích Apigee: Trình bao bọc get_token và acurl sẽ tự động xử lý việc lưu vào bộ nhớ đệm mã thông báo, tạo tải trọng và tự động làm mới. Để biết hướng dẫn chi tiết và ví dụ về cách sử dụng các công cụ này, hãy xem bài viết Sử dụng các tiện ích get_token và acurl.
  • Sử dụng curl tiêu chuẩn: Nếu tập lệnh tự động hoá không có quyền truy cập vào trình bao bọc Apigee, bạn có thể tương tác trực tiếp với Apigee SSO bằng các lệnh curl tiêu chuẩn sau:

Cách lấy và làm mới mã thông báo bằng curl tiêu chuẩn:

  1. Sử dụng lệnh gọi API sau để tạo mã truy cập và mã làm mới ban đầu trực tiếp từ Apigee SSO:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token -s \
        -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access'
      
  2. Truyền mã truy cập vào lệnh gọi API quản lý Edge trong tiêu đề Authorization: Bearer:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. Để làm mới mã truy cập sau này theo cách gốc, hãy sử dụng lệnh gọi sau có chứa mã làm mới:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'