Khi sử dụng một IDP bên ngoài với Edge API, quy trình mà bạn dùng để lấy mã truy cập và mã làm mới OAuth2 từ hoạt động tương tác IDP được gọi là luồng mã truy cập. Với quy trình mật mã, bạn sử dụng trình duyệt để lấy mật mã một lần, sau đó dùng mật mã này để 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ự động hoá cho các tác vụ phát triển phổ biến, chẳng hạn như tự động hoá kiểm thử hoặc 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 sao chép/dán mật mã từ 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 trong các tổ chức đã bật IDP. 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ã. Điều đó có nghĩa là bạn có thể hoàn toàn tự động hoá 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 có bật IDP:
Mỗi phương thức 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 những tổ chức chưa bật IDP bên ngoài.
Tạo người dùng máy bằng apigee-ssoadminapi.sh
Sử dụng tiện ích apigee-ssoadminapi.sh để tạo người dùng máy trong một tổ chức có bật IDP. Hãy xem phần Sử dụng apigee-ssoadminapi.sh để biết thêm thông tin. Bạn có thể tạo một người dùng máy duy nhất mà tất cả các tổ chức của bạn đều 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ữ trong kho dữ liệu Edge, chứ không phải trong IDP của bạn. Do đó, bạn không chịu trách nhiệm duy trì người dùng máy bằng cách sử dụng giao diện người dùng Edge và API quản lý 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 khi tạo người dùng máy, bạn sẽ 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:
- Sử dụng lệnh
apigee-ssoadminapi.shsau đâ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ị do thuộc tính
SSO_ADMIN_NAMExác định trong tệp cấu hình dùng để định cấu hình mô-đun Apigee SSO. Giá trị mặc định làssoadmin. - SSO_ADMIN_SECRET là mật khẩu quản trị do thuộc tính
SSO_ADMIN_SECRETchỉ định trong tệp cấu hình.Trong ví dụ này, bạn có thể bỏ qua các giá trị cho
--portvà--sslvì mô-đunapigee-ssosử dụng các giá trị mặc định là 9099 cho--portvà http cho--ssl. Nếu quá trình cài đặt của bạn không sử dụng các giá trị mặc định này, hãy chỉ định các giá trị đó cho phù hợp.
- SSO_ADMIN_NAME là tên người dùng quản trị do thuộc tính
- Đăng nhập vào giao diện người dùng Edge, 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. Hãy xem phần Thêm người dùng trên toàn cầu để biết thêm thông tin.
Tạo người dùng máy bằng API quản lý Edge
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ý:
- Sử dụng lệnh
curlsau đây để lấy mã thông báo cho người dùngssoadmin, tên người dùng của tài khoản quản trị choapigee-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-ssotheo chỉ định của thuộc tínhSSO_ADMIN_SECRETtrong tệp cấu hình.Lệnh này sẽ hiển thị một mã thông báo mà bạn cần để thực hiện lệnh gọi tiếp theo.
- Sử dụng lệnh
curlsau đây để tạo người dùng máy, truyề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 cần mật khẩu người dùng máy ở các bước sau.
- Đăng nhập vào giao diện người dùng Edge.
- Thêm email của người dùng máy vào tổ chức của bạn và chỉ định vai trò cần thiết cho người dùng máy. Hãy xem phần Thêm người dùng trên toàn cầu để biết thêm thông tin.
Lấy và làm mới mã thông báo người dùng máy
Sử dụng Edge API để lấy và làm mới mã thông báo OAuth2 bằng cách truyền thông tin đăng nhập của người dùng máy, thay vì mật mã.
Cách lấy mã thông báo OAuth2 cho người dùng máy:
- Sử dụng lệnh gọi API sau đây để 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 \ 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.
- Truyền mã truy cập vào một lệnh gọi API quản lý Edge dưới dạng tiêu đề
Bearer, như trong ví dụ sau: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 chứa người dùng máy.
- Để làm mới mã truy cập sau này, hãy sử dụng lệnh gọi sau đây 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" \ -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \ http://edge_sso_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken'