Phương thức: delegate

Lệnh gọi này trả về một JSON Web Token (JWT) xác thực mới, cho phép một thực thể truy cập vào một tài nguyên cụ thể thay cho người dùng được xác thực trong JWT xác thực ban đầu. Thường dùng để uỷ quyền quyền truy cập có phạm vi cho wrap hoặc unwrap cho một thực thể khác khi thực thể đó cần hành động thay mặt cho người dùng.

Yêu cầu HTTP

POST https://<base_url>/delegate

Thay thế <base_url> bằng URL của Dịch vụ danh sách kiểm soát quyền truy cập khoá (KACLS).

Tham số đường dẫn

Không có.

Nội dung yêu cầu

Nội dung yêu cầu chứa một bản trình bày JSON của yêu cầu:

Biểu diễn dưới dạng JSON
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
Trường
authentication

string

Một JWT do bên thứ ba phát hành để xác nhận danh tính của người dùng. Hãy xem phần xác thực để biết thông tin chi tiết.

authorization

string

Một JWT có các khai báo delegated_toresource_name khẳng định rằng thực thể được xác định bằng khai báo delegated_to được phép truy cập vào resource_name thay mặt cho người dùng. Để biết thêm thông tin, hãy xem phần Mã thông báo uỷ quyền.

reason

string (UTF-8)

Một chuỗi JSON truyền qua cung cấp thêm ngữ cảnh về thao tác. Bạn nên dọn dẹp JSON đã cung cấp trước khi hiển thị. Kích thước tối đa: 1 KB.

Các bước xử lý bắt buộc

KACLS phải thực hiện ít nhất những bước sau:

  • Xác thực cả mã thông báo uỷ quyền và mã thông báo xác thực. Để biết thêm thông tin, hãy xem phần Mã thông báo uỷ quyềnMã thông báo xác thực.
  • Kiểm tra để đảm bảo mã thông báo uỷ quyền và xác thực là của cùng một người dùng. Để biết thêm thông tin, hãy xem bài viết Mã hoá và giải mã dữ liệu.
  • Kiểm tra để đảm bảo rằng yêu cầu kacls_url trong mã thông báo uỷ quyền khớp với URL KACLS hiện tại. Điều này cho phép phát hiện các máy chủ trung gian tiềm ẩn do người dùng nội bộ hoặc quản trị viên miền giả mạo định cấu hình.
  • Nếu yêu cầu kacls_owner_domain có trong mã thông báo uỷ quyền, hãy kiểm tra để đảm bảo giá trị khớp với miền Google Workspace của chủ sở hữu KACLS. Điều này giúp ngăn người dùng trái phép đăng ký KACLS của bạn với Google.
  • Ghi lại thao tác, bao gồm cả người dùng bắt đầu thao tác, delegated_to, resource_name và lý do được truyền trong yêu cầu.
  • Tạo, ký và trả về mã thông báo JWT chứa các yêu cầu delegated_toresource_name từ mã thông báo uỷ quyền.

KACLS có thể thực hiện các quy trình kiểm tra bảo mật bổ sung, bao gồm cả các quy trình dựa trên xác nhận quyền sở hữu JWT.

Nội dung phản hồi

Nếu thành công, phương thức này sẽ trả về một JWT xác thực chứa các khai báo delegated_toresource_name. Sau này, bạn có thể dùng mã thông báo này để xác thực trong các lệnh gọi đến phương thức Wrap và Unwrap. Trong trường hợp xảy ra lỗi, bạn nên trả về một phản hồi lỗi có cấu trúc.

Biểu diễn dưới dạng JSON
{
  "delegated_authentication": string
}
Trường
delegated_authentication

string

Một JWT xác thực được uỷ quyền hợp lệ để người dùng truy cập vào resource_name được đề cập trong JWT xác thực ban đầu. Để biết thêm thông tin, hãy xem Mã thông báo xác thực KACLS cho delegate.

Ví dụ:

Yêu cầu

POST https://mykacls.example.com/v1/delegate
{
  "authentication": "eyJhbGciOi...",
  "authorization": "eyJhbGciOi...delegated_to\":\"other_entity_id\",\"resource_name\":\"meeting_id\"...}",
  "reason": "{client:'meet' op:'delegate_access'}"
}

Phản hồi

{
  "delegated_authentication": "eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}"
}