Theo mặc định, Google Cloud Search chỉ nhận dạng các danh tính của Google được lưu trữ trong Google Cloud Directory (người dùng và nhóm). Trình kết nối danh tính dùng để đồng bộ hoá danh tính của doanh nghiệp với danh tính trên Google mà Google Cloud Search sử dụng.
Google cung cấp các phương án sau đây để phát triển trình kết nối danh tính:
SDK Trình kết nối danh tính. Tuỳ chọn này dành cho các nhà phát triển đang lập trình bằng ngôn ngữ lập trình Java. SDK Trình kết nối danh tính là một trình bao bọc xoay quanh API REST, cho phép bạn nhanh chóng tạo các trình kết nối. Để tạo trình kết nối danh tính bằng SDK, hãy tham khảo bài viết Tạo trình kết nối danh tính bằng SDK Trình kết nối danh tính.
API REST và thư viện API cấp thấp. Các lựa chọn này dành cho các nhà phát triển có thể không lập trình bằng Java hoặc có cơ sở mã phù hợp hơn với API REST hoặc thư viện. Để tạo trình kết nối danh tính bằng API REST, hãy tham khảo Directory API: User Accounts (API Thư mục: Tài khoản người dùng) để biết thông tin về người dùng liên kết và Tài liệu Cloud Identity để biết thông tin về nhóm liên kết.
Tạo trình kết nối danh tính bằng SDK Trình kết nối danh tính
Trình kết nối danh tính thông thường sẽ thực hiện các tác vụ sau:
- Định cấu hình trình kết nối.
- Truy xuất tất cả người dùng từ hệ thống thông tin nhận dạng của doanh nghiệp và gửi họ cho Google để đồng bộ hoá với thông tin nhận dạng trên Google.
- Truy xuất tất cả các nhóm từ hệ thống thông tin nhận dạng của doanh nghiệp rồi gửi cho Google để đồng bộ hoá với thông tin nhận dạng trên Google.
Thiết lập phần phụ thuộc
Bạn phải đưa một số phần phụ thuộc nhất định vào tệp bản dựng để sử dụng SDK. Hãy nhấp vào một thẻ bên dưới để xem các phần phụ thuộc cho môi trường tạo bản dựng của bạn:
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Tạo cấu hình trình kết nối
Mỗi trình kết nối đều có một tệp cấu hình chứa các tham số mà trình kết nối sử dụng, chẳng hạn như mã nhận dạng cho kho lưu trữ của bạn. Thông số được xác định là các cặp khoá-giá trị, chẳng hạn như api.sourceId=1234567890abcdef
.
SDK Google Cloud Search chứa một số tham số cấu hình do Google cung cấp mà tất cả các trình kết nối sử dụng. Bạn phải khai báo các tham số do Google cung cấp sau đây trong tệp cấu hình:
- Đối với trình kết nối nội dung, bạn phải khai báo
api.sourceId
vàapi.serviceAccountPrivateKeyFile
vì các tham số này xác định vị trí của kho lưu trữ và khoá riêng tư cần thiết để truy cập vào kho lưu trữ.
- Đối với trình kết nối danh tính, bạn phải khai báo
api.identitySourceId
vì tham số này xác định vị trí của nguồn danh tính bên ngoài. Nếu đang đồng bộ hoá người dùng, bạn cũng phải khai báoapi.customerId
là mã nhận dạng duy nhất cho tài khoản Google Workspace của doanh nghiệp.
Bạn không cần phải khai báo các tham số đó trong tệp cấu hình, trừ phi muốn ghi đè các giá trị mặc định của các tham số khác do Google cung cấp. Để biết thêm thông tin về tham số cấu hình do Google cung cấp, chẳng hạn như cách tạo một số mã nhận dạng và khoá nhất định, hãy tham khảo các tham số cấu hình do Google cung cấp.
Bạn cũng có thể xác định các tham số dành riêng cho kho lưu trữ của riêng mình để sử dụng trong tệp cấu hình.
Truyền tệp cấu hình đến trình kết nối
Đặt thuộc tính hệ thống config
để truyền tệp cấu hình đến trình kết nối của bạn. Bạn có thể đặt thuộc tính bằng cách sử dụng đối số -D
khi bắt đầu trình kết nối. Ví dụ: lệnh sau đây khởi động trình kết nối bằng tệp cấu hình MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Nếu thiếu đối số này, thì SDK sẽ cố gắng truy cập vào tệp cấu hình mặc định có tên là connector-config.properties
.
Tạo trình kết nối danh tính đồng bộ hoá đầy đủ bằng lớp mẫu
SDK Trình kết nối danh tính chứa một lớp mẫu FullSyncIdentityConnector
mà bạn có thể dùng để đồng bộ hoá tất cả người dùng và nhóm trong kho lưu trữ danh tính với danh tính Google. Phần này giải thích cách sử dụng mẫu FullSyncIdentityConnector
để đồng bộ hoá toàn bộ người dùng và nhóm từ một kho lưu trữ danh tính không phải của Google.
Phần này của tài liệu đề cập đến các đoạn mã từ mẫu IdentityConnecorSample.java
. Mẫu này đọc danh tính người dùng và nhóm trong 2 tệp CSV, đồng thời đồng bộ hoá các tệp đó với thông tin nhận dạng của Google.
Triển khai điểm truy cập của trình kết nối
Điểm truy cập đến một trình kết nối là phương thức main()
. Nhiệm vụ chính của phương thức này là tạo một bản sao của lớp
Application
và gọi phương thức
start()
để chạy trình kết nối.
Trước khi gọi application.start()
, hãy sử dụng lớp IdentityApplication.Builder
để tạo thực thể cho mẫu FullSyncIdentityConnector
. FullSyncIdentityConnector
chấp nhận đối tượng Repository
có các phương thức mà bạn sẽ triển khai.
Đoạn mã sau đây cho biết cách triển khai phương thức main()
:
Trong thực tế, SDK sẽ gọi phương thức initConfig()
sau khi phương thức main()
của trình kết nối gọi Application.build
.
Phương thức initConfig()
thực hiện các tác vụ sau:
- Gọi phương thức
Configuation.isInitialized()
để đảm bảo rằngConfiguration
chưa được khởi động. - Khởi động đối tượng
Configuration
bằng các cặp khoá-giá trị do Google cung cấp. Mỗi cặp khoá-giá trị được lưu trữ trong một đối tượngConfigValue
bên trong đối tượngConfiguration
.
Triển khai giao diện Repository
Mục đích duy nhất của đối tượng Repository
là thực hiện việc đồng bộ hoá danh tính kho lưu trữ với danh tính của Google. Khi sử dụng mẫu, bạn chỉ cần ghi đè một số phương thức trong giao diện Repository
để tạo trình kết nối danh tính. Đối với FullTraversalConnector
, có thể bạn sẽ ghi đè các phương thức sau:
Phương thức
init()
. Để thực hiện mọi hoạt động thiết lập và khởi chạy kho lưu trữ danh tính, hãy ghi đè phương thức "init()".Phương thức
listUsers()
. Để đồng bộ hoá tất cả người dùng trong kho lưu trữ danh tính với người dùng Google, hãy ghi đè phương thứclistUsers()
.Phương thức
listGroups()
. Để đồng bộ hoá tất cả các nhóm trong kho lưu trữ danh tính với Google Groups, hãy ghi đè phương thứclistGroups()
.(không bắt buộc) Phương thức
close()
. Nếu bạn cần dọn dẹp kho lưu trữ, hãy ghi đè phương thứcclose()
. Phương thức này được gọi một lần trong khi tắt trình kết nối.
Nhận thông số cấu hình tuỳ chỉnh
Trong quá trình xử lý cấu hình của trình kết nối, bạn cần lấy mọi thông số tuỳ chỉnh từ đối tượng Configuration
. Tác vụ này thường được thực hiện theo phương thức init()
của lớp Repository
.
Lớp Configuration
có một số phương thức để lấy các loại dữ liệu khác nhau từ một cấu hình. Mỗi phương thức trả về một đối tượng ConfigValue
. Sau đó, bạn sẽ sử dụng phương thức get()
của đối tượng ConfigValue
để truy xuất giá trị thực tế.
Đoạn mã sau đây cho biết cách truy xuất giá trị userMappingCsvPath
và groupMappingCsvPath
qua đối tượng Configuration
:
Để lấy và phân tích cú pháp một tham số chứa nhiều giá trị, hãy sử dụng một trong các trình phân tích cú pháp loại của lớp Configuration
để phân tích cú pháp dữ liệu thành các phần riêng biệt.
Đoạn mã sau đây từ trình kết nối hướng dẫn sử dụng phương thức getMultiValue
để lấy danh sách tên kho lưu trữ GitHub:
Tải bản đồ cho tất cả người dùng
Ghi đè listUsers()
để truy xuất mối liên kết cho tất cả người dùng từ kho lưu trữ danh tính của bạn. Phương thức
listUsers()
chấp nhận một điểm kiểm tra đại diện cho danh tính mới nhất cần
đồng bộ hoá. Bạn có thể dùng điểm kiểm tra này để tiếp tục quá trình đồng bộ hoá nếu quá trình này bị gián đoạn. Đối với mỗi người dùng trong kho lưu trữ, bạn sẽ thực hiện các bước sau trong phương thức listUsers()
:
- Nhận ánh xạ bao gồm danh tính Google và danh tính bên ngoài được liên kết.
- Đóng gói cặp này vào một biến lặp do phương thức
listUsers()
trả về.
Tải bản đồ người dùng
Đoạn mã sau đây minh hoạ cách truy xuất mối liên kết danh tính được lưu trữ trong tệp CSV:
Đóng gói bản đồ ánh xạ người dùng vào một đối tượng lặp
Phương thức listUsers()
trả về một Iterator
, cụ thể là một CheckpointCloseableIterable
của các đối tượng IdentityUser
. Bạn có thể sử dụng lớp CheckpointClosableIterableImpl.Builder
để tạo và trả về một đối tượng lặp. Đoạn mã sau đây cho biết cách đóng gói từng mối liên kết vào danh sách, tạo biến lặp từ danh sách đó:
Tạo nhóm
Ghi đè listGroups()
để truy xuất tất cả các nhóm và thành viên của các nhóm đó từ kho lưu trữ danh tính của bạn. Phương thức listGroups()
chấp nhận một điểm kiểm tra đại diện cho danh tính cuối cùng sẽ được đồng bộ hoá. Điểm kiểm tra này có thể được dùng để tiếp tục quá trình đồng bộ hoá nếu quá trình bị gián đoạn. Đối với mỗi người dùng trong kho lưu trữ, bạn sẽ thực hiện các bước sau trong phương thức listGroups()
:
- Xem nhóm và các thành viên trong nhóm.
- Đóng gói từng nhóm và các thành phần vào một biến lặp do phương thức
listGroups()
trả về.
Lấy thông tin nhận dạng nhóm
Đoạn mã sau đây minh hoạ cách truy xuất các nhóm và thành viên được lưu trữ trong tệp CSV:
Đóng gói nhóm và các thành viên vào một biến lặp
Phương thức listGroups()
trả về một Iterator
, cụ thể là một CheckpointCloseableIterable
của các đối tượng IdentityGroup
.
Bạn có thể sử dụng lớp CheckpointClosableIterableImpl.Builder
để tạo và trả về một đối tượng lặp. Đoạn mã sau đây cho biết cách đóng gói từng nhóm và thành viên vào một danh sách, đồng thời tạo biến lặp từ danh sách đó:
Các bước tiếp theo
Dưới đây là một vài bước tiếp theo bạn có thể thực hiện:
- (không bắt buộc) Triển khai phương thức close() để giải phóng mọi tài nguyên trước khi tắt.
- (không bắt buộc) Tạo trình kết nối nội dung bằng SDK Trình kết nối nội dung.