Quyền kiểm soát truy cập trong Google Cloud Search dựa trên Tài khoản Google của người dùng. Khi lập chỉ mục nội dung, tất cả ACL của mục phải phân giải thành mã nhận dạng người dùng hoặc nhóm hợp lệ của Google (địa chỉ email).
Trong nhiều trường hợp, kho lưu trữ không có kiến thức trực tiếp về Tài khoản Google. Thay vào đó, tài khoản cục bộ đại diện cho người dùng hoặc người dùng sử dụng tính năng đăng nhập liên kết với một nhà cung cấp danh tính. Thông tin nhận dạng này (ngoài địa chỉ email) được gọi là mã nhận dạng bên ngoài.
Được tạo bằng Bảng điều khiển dành cho quản trị viên, nguồn nhận dạng giúp thu hẹp khoảng cách giữa các hệ thống nhận dạng bằng cách:
- Xác định một trường người dùng tuỳ chỉnh để lưu trữ mã nhận dạng bên ngoài. Trường này phân giải mã nhận dạng bên ngoài thành một Tài khoản Google.
- Xác định không gian tên cho các nhóm bảo mật do một kho lưu trữ hoặc nhà cung cấp danh tính quản lý.
Sử dụng nguồn nhận dạng khi:
- Kho lưu trữ không biết địa chỉ email chính của người dùng trong Google Workspace hoặc Danh mục Google Cloud.
- Kho lưu trữ xác định các nhóm kiểm soát quyền truy cập không tương ứng với các nhóm dựa trên email trong Google Workspace.
Nguồn nhận dạng giúp cải thiện hiệu quả bằng cách tách lập chỉ mục khỏi việc liên kết danh tính. Điều này cho phép bạn trì hoãn việc tra cứu người dùng khi tạo ACL và lập chỉ mục các mục.
Ví dụ về việc triển khai
Hình 1 cho thấy một doanh nghiệp sử dụng cả kho lưu trữ tại chỗ và trên đám mây. Mỗi loại sử dụng một loại mã nhận dạng bên ngoài riêng.
Kho lưu trữ 1 xác định người dùng bằng địa chỉ email thông qua SAML. Vì biết địa chỉ email chính trong Google Workspace hoặc Cloud Directory, nên ứng dụng này không cần nguồn nhận dạng.
Kho lưu trữ 2 tích hợp với một thư mục tại cơ sở và xác định người dùng bằng sAMAccountName. Vì sử dụng thuộc tính này làm mã nhận dạng bên ngoài, nên thuộc tính này yêu cầu một nguồn nhận dạng.
Tạo một nguồn nhận dạng
Nếu bạn cần một nguồn nhận dạng, hãy xem phần Ánh xạ danh tính người dùng trong Cloud Search.
Tạo nguồn nhận dạng trước khi tạo trình kết nối nội dung; bạn cần có mã nhận dạng của nguồn nhận dạng để tạo danh sách kiểm soát truy cập và lập chỉ mục dữ liệu. Việc tạo một nguồn nhận dạng cũng sẽ tạo ra một thuộc tính người dùng tuỳ chỉnh trong Cloud Directory để lưu trữ mã nhận dạng bên ngoài. Tên thuộc tính sử dụng quy ước IDENTITY_SOURCE_ID_identity.
Bảng này cho thấy 2 nguồn nhận dạng: một cho tên tài khoản SAM và một cho mã nhận dạng người dùng (uid).
| Nguồn nhận dạng | Thuộc tính người dùng | ID bên ngoài |
|---|---|---|
id1 |
id1_identity |
sAMAccountName |
id2 |
id2_identity |
uid |
Tạo một nguồn nhận dạng cho từng loại mã nhận dạng bên ngoài được dùng trong doanh nghiệp của bạn.
Bảng này cho biết cách một người dùng có Tài khoản Google và hai mã nhận dạng bên ngoài xuất hiện trong Cloud Directory:
| Người dùng | id1_identity |
id2_identity |
|
|---|---|---|---|
| Ann | ann@example.com |
example\ann |
1001 |
Bạn có thể tham chiếu cùng một người dùng bằng cách sử dụng bất kỳ mã nhận dạng nào trong số này khi tạo ACL để lập chỉ mục.
Ghi danh sách kiểm soát quyền truy cập (ACL) của người dùng
Sử dụng getUserPrincipal() hoặc getGroupPrincipal() để tạo các đối tượng chính bằng mã nhận dạng bên ngoài.
Ví dụ này truy xuất các quyền đối với tệp, bao gồm cả những người dùng có quyền truy cập:
Đoạn mã này tạo các thực thể chính cho chủ sở hữu bằng cách sử dụng thuộc tính externalUserName:
Đoạn mã này tạo ra các đối tượng chính cho người đọc:
Sau khi bạn có người đọc và chủ sở hữu, hãy tạo ACL:
REST API sử dụng mẫu identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID.
id1_identity của Ann phân giải thành identitysources/id1_identity/users/example/ann. Đây là mã nhận dạng trung gian của người dùng.
Để biết thêm thông tin về việc mô hình hoá ACL kho lưu trữ, hãy xem phần ACL.
Nhóm bản đồ
Nguồn nhận dạng cũng đóng vai trò là không gian tên cho các nhóm ACL. Sử dụng lệnh này để tạo và liên kết các nhóm chỉ dùng cho mục đích bảo mật hoặc cục bộ với một kho lưu trữ.
Sử dụng Cloud Identity Groups API để tạo nhóm và quản lý tư cách thành viên. Liên kết nhóm với một nguồn nhận dạng bằng cách sử dụng tên nguồn nhận dạng làm không gian tên.
Đoạn mã này tạo một nhóm:
Tạo một ACL nhóm
Sử dụng getGroupPrincipal() để tạo một nhóm chính có mã nhận dạng bên ngoài, sau đó tạo ACL:
Trình kết nối danh tính
Người dùng không thể thấy các mục trong kết quả tìm kiếm cho đến khi mã nhận dạng bên ngoài của họ phân giải thành một mã nhận dạng Google trong Cloud Directory. Bạn có thể đảm bảo điều này theo 3 cách:
- Cập nhật hồ sơ người dùng theo cách thủ công trong Bảng điều khiển dành cho quản trị viên (chỉ nên dùng cho mục đích kiểm thử).
- Ánh xạ mã nhận dạng bằng Directory API.
- Tạo một trình kết nối nhận dạng bằng Identity Connector SDK.
Trình kết nối danh tính liên kết các mã nhận dạng bên ngoài của danh tính doanh nghiệp với danh tính nội bộ của Google. Nếu tạo một nguồn nhận dạng, bạn cũng phải tạo một trình kết nối nhận dạng.
Google Cloud Directory Sync (GCDS) là một ví dụ về trình kết nối danh tính. Thao tác này ánh xạ thông tin người dùng và nhóm từ Active Directory sang Cloud Directory.
Đồng bộ hoá danh tính bằng REST API
Sử dụng phương thức update để đồng bộ hoá danh tính.
Liên kết lại danh tính
Sau khi ánh xạ lại một danh tính, bạn phải lập chỉ mục lại các mục để thay đổi có hiệu lực.
- Nếu bạn xoá hoặc thay đổi một mối liên kết người dùng, mối liên kết ban đầu vẫn giữ nguyên cho đến khi lập chỉ mục lại.
- Nếu bạn xoá một nhóm được liên kết và tạo một nhóm mới có cùng
groupKey, thì nhóm mới sẽ không cấp quyền truy cập cho đến khi bạn lập chỉ mục lại.