Edge cho đám mây riêng tư phiên bản 4.19.01
Khi dùng SAML với API Edge, quy trình mà bạn dùng để lấy quyền truy cập và làm mới OAuth2 qua mã xác nhận SAML được gọi là quy trình mật mã. 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 để 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 tác vụ phát triển phổ biến, chẳng hạn như tự động kiểm thử 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 tính năng SAML bật, bạn cần có một 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ã trên trình duyệt.
Edge hỗ trợ việc tạo mã thông báo tự động thông qua sự sử dụng của người dùng máy trong các tổ chức SAML. Người dùng máy có thể lấy mã thông báo OAuth2 mà không cần phải chỉ định mật mã. Điều đó có nghĩa là bạn có thể hoàn toàn tự động hoá quá trình lấy và làm mới mã thông báo OAuth2 bằng cách sử dụng Edge Management API (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 một tổ chức không phải SAML.
Tạo người dùng 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 SAML. 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ả 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 nhà cung cấp danh tính SAML của bạn. 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 Ui và Edge Management API.
Khi tạo người dùng máy, bạn phải chỉ định một địa chỉ email và mật khẩu. Sau khi 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
:
- Sử dụng lệnh
apigee-ssoadminapi.sh
sau để tạo người dùng cho 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_NAME
xác định trong tệp cấu hình dùng để định cấu hình mô-đun SSO của Edge. Giá trị mặc định làssoadmin
. - SSO_ADMIN_SECRET là mật khẩu quản trị viên do thuộc tính
SSO_ADMIN_SECRET
chỉ định trong tệp cấu hình.
Trong ví dụ này, bạn có thể bỏ qua các giá trị cho
--port
và--ssl
vì mô-đunapigee-sso
sử dụng các giá trị mặc định là 9099 đối với--port
và http cho--ssl
. Nếu chế độ 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 chúng nếu thích 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 của Edge và thêm email của người dùng máy vào tổ chức của bạn, sau đó chỉ định vai trò cần thiết cho người dùng thiết bị đó. Hãy xem bài viết Thêm người dùng 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 một người dùng máy bằng cách sử dụng API Quản lý Edge thay vì dùng tiện ích apigee-ssoadminapi.sh
.
Cách tạo người dùng máy bằng API quản lý:
- Hãy dùng lệnh
curl
sau để lấy mã thông báo của người dùngssoadmin
, tên người dùng của tài khoản quản trị viên củaapigee-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ị viên mà bạn đặt khi cài đặt
apigee-sso
theo chỉ định của thuộc tínhSSO_ADMIN_SECRET
trong tệp cấu hình.Lệnh này 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.
- Dùng lệnh
curl
sau để 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 có mật khẩu người dùng máy trong các bước sau.
- Đăng nhập vào giao diện người dùng của Edge.
- Thêm email của người dùng thiết bị vào tổ chức của bạn và chỉ định người dùng thiết bị vào vai trò cần thiết. Hãy xem bài viết Thêm người dùng 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 của 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 xác thực của người dùng trên 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 để tạo mã truy cập và 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.
- Truyền mã truy cập đến một lệnh gọi API Quản lý Edge dưới dạng tiêu đề Mang:
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 vào lúc khác, hãy sử dụng lệnh gọi dưới đây (bao gồm 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'