Sử dụng SAML với các tác vụ tự động

Edge for Private Cloud phiên bản 4.19.01

Khi dùng SAML với API Edge, đây là quy trình mà bạn dùng để lấy quyền truy cập OAuth2 và mã làm mới từ thông tin xác nhận SAML được gọi là quy trình mật mã. Với luồng mật mã, bạn dùng trình duyệt để lấy mật mã một lần mà sau đó bạn sẽ dùng để lấy mã thông báo OAuth2.

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 nhiệm vụ phát triển phổ biến, chẳng hạn như tự động hoá thử nghiệm hoặc Tích hợp liên tục/Triển khai liên tục (CI/CD). Để tự động hoá những tác vụ này khi SAML được bật, bạn cần có cách nào đó để lấy và làm mới mã thông báo OAuth2 mà không phải sao chép/dán mật mã từ trình duyệt.

Edge hỗ trợ tạo mã thông báo tự động thông qua việc sử dụng người dùng máy trong SAML tổ chức. Người dùng máy có thể lấy mã thông báo OAuth2 mà không cần chỉ định mật mã. Tức 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 OAuth2 bằng cách sử dụng API quản lý Edge.

Có hai cách để tạo người dùng máy cho một tổ chức SAML:

Mỗi phương pháp trong số này được mô tả trong các phần tiếp theo.

Bạn không thể tạo người dùng máy cho tổ chức không phải SAML.

Tạo người dùng máy bằng apigee-ssoadminapi.sh

Sử dụng apigee-ssoadminapi.sh để tạo người dùng máy trong tổ chức SAML. Xem phần Sử dụng apigee-ssoadminapi.sh để biết thêm. Bạn có thể tạo một người dùng máy duy nhất được sử dụng bởi tất cả tổ chức của bạn hoặc tạo một người dùng máy riêng cho mỗi tổ chức.

Người dùng máy được tạo và lưu trữ trong kho dữ liệu của Edge, không phải trong danh tính SAML của bạn Google Cloud. Do đó, bạn không có trách nhiệm duy trì người dùng máy bằng cách sử dụng Edge API quản lý giao diện người dùng và Edge.

Khi tạo người dùng máy, bạn phải chỉ định địa chỉ email và mật khẩu. Sau tạo người dùng máy, bạn chỉ định người dùng đó cho một hoặc nhiều tổ chức.

Cách tạo người dùng máy bằng apigee-ssoadminapi.sh:

  1. Hãy sử dụng lệnh apigee-ssoadminapi.sh sau đây để tạo người dùng máy:
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    Trong trường hợp:

    • SSO_ADMIN_NAME là tên người dùng quản trị viên do Cơ sở lưu trú SSO_ADMIN_NAME ở tệp cấu hình dùng để định cấu hình mô-đun SSO của cạnh. Mặc định là ssoadmin.
    • SSO_ADMIN_SECRET là mật khẩu quản trị viên như được chỉ định bởi Thuộc tính SSO_ADMIN_SECRET trong tệp cấu hình.
    • Trong ví dụ này, bạn có thể bỏ qua các giá trị cho --port--ssl vì mô-đun apigee-sso sử dụng chế độ mặc định giá trị là 9099 cho --port và http cho --ssl. Nếu quá trình cài đặt không sử dụng các giá trị mặc định này, hãy chỉ định chúng nếu thích hợp.

  2. Đăng nhập vào giao diện người dùng Edge rồi thêm email của người dùng trên máy vào tổ chức của bạn rồi chỉ định người dùng máy vào vai trò cần thiết. Xem phần Thêm người dùng toàn cầu cho khác.

Tạo người dùng máy bằng Edge API quản lý

Bạn có thể tạo người dùng máy bằng cách sử dụng API quản lý Edge thay vì sử dụng Tiện ích apigee-ssoadminapi.sh.

Cách tạo người dùng máy bằng API quản lý:

  1. Dùng lệnh curl sau để lấy mã thông báo cho người dùng ssoadmin, tên người dùng của tài khoản quản trị viên apigee-sso:
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    Trong đó SSO_ADMIN_SECRET là mật khẩu quản trị mà bạn đã đặt khi cài đặt apigee-sso theo chỉ định của thuộc tính SSO_ADMIN_SECRET trong config của bạn.

    Lệnh này hiện một mã thông báo mà bạn cần để thực hiện lệnh gọi tiếp theo.

  2. Sử dụng lệnh curl sau đây để tạo người dùng trên máy, chuyển mã thông báo mà bạn nhận được ở bước trước:
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    Bạn sẽ cần mật khẩu của người dùng máy ở các bước sau.

  3. Đăng nhập vào giao diện người dùng Edge.
  4. Thêm email của người dùng máy vào tổ chức của bạn và chỉ định người dùng máy đó vào vai trò cần thiết. Xem phần Thêm người dùng toàn cầu để tìm hiểu thêm.

Lấy và làm mới mã thông báo người dùng trên máy

Sử dụng API Edge để lấy và làm mới mã thông báo OAuth2 bằng cách truyền mã thông tin xác thực thay vì mật mã.

Cách lấy mã thông báo OAuth2 cho người dùng máy:

  1. 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 \
      http://Edge_SSO_IP_DNS:9099/oauth/token -s \
      -d 'grant_type=password&username=m_user_email&password=m_user_password'

    Lưu mã thông báo để sử dụng sau này.

  2. 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 "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    Trong đó org_name là tên của tổ chức có chứa người dùng máy.

  3. Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi sau bao gồm cả quá trình 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 \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'