Việc kiểm soát quyền 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ả các ACL trên các mục phải phân giải tới người dùng Google hoặc mã nhóm (đị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ề Google tài khoản. Thay vào đó, người dùng có thể được đại diện bằng các tài khoản cục bộ hoặc sử dụng đăng nhập liên kết với nhà cung cấp danh tính và ID, khác ngoài địa chỉ email của người dùng để xác định từng tài khoản. Mã này đượ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 hệ thống nhận dạng bằng:
- Xác định 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 được dùng để phân giải mã nhận dạng bên ngoài cho tài khoản.
- Xác định không gian tên cho nhóm bảo mật do kho lưu trữ quản lý hoặc nhà cung cấp danh tính.
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 Google Cloud Directory.
- 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 cho các nhóm dựa trên email trong Google Workspace.
Các nguồn nhận dạng cải thiện hiệu quả lập chỉ mục bằng cách tách hoạt động lập chỉ mục khỏi quá trình liên kết danh tính. Việc phân tách này cho phép bạn trì hoãn việc tra cứu người dùng khi tạo các tệp ACL và mục lập chỉ mục.
Triển khai mẫu
Hình 1 minh hoạ một ví dụ về việc triển khai trong đó cả tại cơ sở riêng và trên đám mây do các doanh nghiệp sử dụng. Mỗi kho lưu trữ sử dụng một loại của mã nhận dạng bên ngoài để tham chiếu đến người dùng.
![Triển khai mẫu](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/identity-arch.png?authuser=7&hl=vi)
Kho lưu trữ 1 nhận dạng người dùng bằng địa chỉ email được xác nhận bằng SAML. Bởi vì kho lưu trữ 1 có biết địa chỉ email chính của người dùng trong Google Workspace hoặc Cloud Directory, là nguồn danh tính là không cần thiết.
Kho lưu trữ 2 tích hợp trực tiếp với một thư mục tại chỗ và
xác định người dùng bằng thuộc tính sAMAccountName
. Vì kho lưu trữ 2
sử dụng thuộc tính sAMAccountName
làm mã nhận dạng bên ngoài, nguồn nhận dạng sẽ
cần thiết.
Tạo 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 Bản đồ danh tính người dùng trong Cloud Search.
Bạn phải tạo nguồn nhận dạng trước khi tạo trình kết nối nội dung vì
bạn sẽ cần ID nguồn nhận dạng để tạo ACL và dữ liệu chỉ mục. Như đã đề cập
trước đây, việc tạo nguồn nhận dạng cũng sẽ tạo
thuộc tính người dùng tuỳ chỉnh
trong Cloud Directory. Sử dụng thuộc tính này để ghi lại mã nhận dạng bên ngoài cho mỗi
người dùng trong kho lưu trữ của bạn. Thuộc tính này được đặt tên bằng
quy ước IDENTITY_SOURCE_ID_identity
.
Bảng sau đây hiển thị hai nguồn nhận dạng, một nguồn lưu giữ tên tài khoản SAM (sAMAccountName) làm mã nhận dạng bên ngoài và một mã nhận dạng người dùng (uid) để lưu giữ mã nhận dạng bên ngoài.
Nguồn nhận dạng | thuộc tính người dùng | mã nhận dạng 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 mã nhận dạng bên ngoài có thể được dùng để đề cập đến một người dùng trong doanh nghiệp của bạn.
Bảng sau đây trình bày cách người dùng có một Tài khoản Google và hai mã nhận dạng bên ngoài (id1_identity và id2_identity) và giá trị của chúng sẽ xuất hiện trong Thư mục đám mây:
người dùng | id1_identity | id2_identity | |
---|---|---|---|
Ann | ann@example.com | ví dụ\ann | 1001 |
Bạn có thể tham chiếu đến cùng một người dùng bằng cách sử dụng ba mã nhận dạng khác nhau, (Email Google, sAMAccountName và uid) 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 getUserPrincpal() hoặc getGroupPrincipal() để tạo các hiệu ứng chính bằng cách sử dụng mã nhận dạng bên ngoài được cung cấp.
Ví dụ sau đây minh hoạ cách truy xuất các quyền đối với tệp. Các bao gồm tên của từng người dùng có quyền truy cập vào tệp.
Đoạn mã sau đây cho biết cách tạo người quản lý chính là chủ sở hữu
bằng cách sử dụng mã nhận dạng bên ngoài (externalUserName
) được lưu trữ trong các thuộc tính.
Cuối cùng, đoạn mã sau đây trình bày cách tạo những người quản lý là độc giả của tệp.
Sau khi có danh sách người đọc và chủ sở hữu, bạn có thể tạo Danh sách kiểm soát quyền truy cập (ACL):
API REST cơ bản sử dụng mẫu
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID
cho mã nhận dạng khi tạo đối tượng chính. Khi xem lại các bảng trước,
nếu bạn tạo ACL với id1_identity
của Ann (SAMAccountName) thì ID sẽ
phân giải thành:
identitysources/id1_identity/users/example/ann
Toàn bộ mã nhận dạng này được gọi là mã nhận dạng trung gian của người dùng vì mã nhận dạng này là cầu nối giữa mã nhận dạng bên ngoài và mã nhận dạng trên Google được lưu trữ với Cloud Directory.
Để biết thêm thông tin về cách lập mô hình các ACL được sử dụng cho kho lưu trữ, hãy xem 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 được sử dụng trong ACL. Bạn có thể sử dụng tính năng không gian tên này để tạo và liên kết các nhóm dùng cho mục đích bảo mật chỉ có mục đích hoặc chỉ là cục bộ trong kho lưu trữ.
Sử dụng API Nhóm Cloud Identity để tạo nhóm và quản lý các thành viên. Cách liên kết nhóm với một nguồn nhận dạng, hãy sử dụng tên tài nguyên nguồn nhận dạng làm không gian tên nhóm.
Đoạn mã sau đây cho biết cách tạo một nhóm bằng cách sử dụng API Nhóm Cloud Identity:
Tạo ACL nhóm
Để tạo ACL nhóm, hãy sử dụng getGroupPrincipal() để tạo người dùng chính của nhóm bằng cách sử dụng mã nhận dạng bên ngoài được cung cấp. Sau đó, hãy tạo Danh sách kiểm soát quyền truy cập (ACL) bằng Acl.Builder lớp như sau:
Trình kết nối danh tính
Mặc dù bạn có thể sử dụng ID bên ngoài, không phải của Google để tạo ACL và các mục chỉ mục, Người dùng không thể nhìn thấy các mục trong tìm kiếm cho đến khi ID bên ngoài của họ phân giải thành Mã nhận dạng trong Cloud Directory. Có 3 cách để đảm bảo rằng Cloud Directory biết cả mã Google và mã nhận dạng bên ngoài của một người dùng:
- Cập nhật từng hồ sơ người dùng cá nhân theo cách thủ công thông qua Bảng điều khiển dành cho quản trị viên Bạn chỉ nên sử dụng quy trình này để thử nghiệm và tạo nguyên mẫu bằng một vài hồ sơ người dùng.
- Liên kết mã nhận dạng bên ngoài với mã nhận dạng trên Google bằng cách sử dụng Directory API (API Thư mục). Những người không thể sử dụng SDK Trình kết nối danh tính nên thực hiện quy trình này.
- Tạo trình kết nối danh tính sử dụng SDK Trình kết nối danh tính. SDK này đơn giản hoá việc sử dụng API Thư mục để liên kết mã nhận dạng.
Trình kết nối danh tính là các chương trình dùng để liên kết các mã nhận dạng bên ngoài từ doanh nghiệp danh tính (người dùng và nhóm) với danh tính nội bộ của Google do Google sử dụng Cloud Search. Nếu phải tạo nguồn nhận dạng, bạn phải hãy tạo trình kết nối danh tính.
Google Cloud Directory Sync (GCDS) hiện là ví dụ về trình kết nối danh tính. Trình kết nối danh tính này liên kết người dùng và thông tin nhóm từ Active Directory của Microsoft đến Cloud Directory cùng với các thuộc tính người dùng có thể đại diện cho danh tính của họ trong các hệ thống khác.
Đồng bộ hoá danh tính bằng API REST
Sử dụng phương thức update
để đồng bộ hoá danh tính bằng API REST.
Ánh xạ lại danh tính
Sau khi gán lại danh tính của một mục với danh tính khác, bạn phải lập chỉ mục lại các mục để nhận dạng mới. Ví dụ:
- nếu bạn cố gắng xoá ánh xạ của một người dùng hoặc gán lại ánh xạ đó cho một người dùng khác, thì mối liên kết ban đầu vẫn được lưu giữ cho đến khi bạn lập chỉ mục lại.
- Nếu bạn xoá một nhóm đã được ánh xạ có trong Danh sách kiểm soát quyền truy cập (ACL) của mục, sau đó tạo một
nhóm mới có cùng
groupKey
, thì nhóm mới sẽ không cung cấp quyền truy cập vào cho đến khi mặt hàng được lập chỉ mục lại.