Theo mặc định, Google Cloud Search chỉ nhận dạng các danh tính 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 được 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. Lựa 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 xung quanh API REST, giúp bạn nhanh chóng tạo trình kết nối. Để tạo một trình kết nối danh tính bằng SDK, hãy tham khảo 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. Đây là những lựa chọn dành cho các nhà phát triển có thể không được lập trình bằng Java hoặc có cơ sở mã phù hợp hơn với REST API hoặc một thư viện. Để tạo trình kết nối danh tính bằng API REST, hãy tham khảo đến Directory API: User Account (API thư mục: Tài khoản người dùng) cho về việc liên kết người dùng và Tài liệu về Cloud Identity dành cho 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ọ tới Google để đồng bộ hoá với thông tin nhận dạng 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 tới Google để đồng bộ hoá với thông tin nhận dạng 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. Nhấp chuột trên thẻ dưới đây để xem các phần phụ thuộc cho môi trường tạo bản dựng:
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 có một tệp cấu hình chứa các thông số được sử dụng bởi
trình kết nối, chẳng hạn như mã nhận dạng cho kho lưu trữ của bạn. Các thông số được định nghĩa 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ố cấu hình do Google cung cấp tham số mà tất cả trình kết nối sử dụng. Bạn phải khai báo các thông tin sau Các tham số do Google cung cấp trong tệp cấu hình của bạn:
- Đố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ì những thông số này xác định vị trí kho lưu trữ và khoá riêng tư cần thiết để truy cập 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
là trình kết nối danh tính thông số này xác định vị trí của nguồn nhận dạng bên ngoài. Nếu bạn khi đồ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.
Trừ phi bạn muốn ghi đè các giá trị mặc định của các nền tảng khác do Google cung cấp tham số, bạn không cần khai báo chúng trong tệp cấu hình. Để biết thêm thông tin về các thông 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 thông 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 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 vào
trình kết nối. Bạn có thể đặt thuộc tính này 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 sẽ khởi động trình kết nối
với tệp cấu hình MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Nếu đối số này bị thiếu thì SDK cố gắng truy cập cấu hình mặc định
tệp có tên 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
bạn có thể dùng để đồng bộ hoá tất cả người dùng và nhóm trong mã nhận dạng
kho lưu trữ có 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 danh tính không phải của Google
kho lưu trữ.
Phần này của tài liệu này đề cập đến các đoạn mã từ
IdentityConnecorSample.java
mẫu. Mẫu này đọc thông tin về người dùng và nhóm
danh tính từ hai tệp CSV và đồng bộ hoá chúng với danh tính Google.
Triển khai điểm truy cập của trình kết nối
Điểm vào cho trình kết nối là
main()
. Nhiệm vụ chính của phương thức này là tạo một bản sao của
Application
lớp và gọi lớp
start()
để chạy trình kết nối.
Trước khi gọi
application.start()
,
sử dụng
IdentityApplication.Builder
để tạo thực thể
Mẫu FullSyncIdentityConnector
. FullSyncIdentityConnector
chấp nhận một
Repository
mà có các phương thức bạn sẽ triển khai.
Đoạn mã sau đây cho biết cách triển khai phương thức main()
:
Đằng sau đó, SDK gọi
initConfig()
sau khi phương thức main()
của trình kết nối được gọi
Application.build
.
Phương thức initConfig()
thực hiện các tác vụ sau:
- Gọi hàm
Configuation.isInitialized()
để đảm bảo rằngConfiguration
chưa được khởi chạy. - Khởi động đối tượng
Configuration
bằng khoá-giá trị do Google cung cấp cặp. Mỗi cặp khoá-giá trị được lưu trữ trong mộtConfigValue
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
đồng bộ hoá danh tính kho lưu trữ với danh tính Google. Khi sử dụng
một mẫu, bạn chỉ cần ghi đè một số phương thức nhất định trong
Giao diện Repository
để tạo trình kết nối danh tính. Đối với
FullTraversalConnector
, bạn có thể sẽ ghi đè các phương thức sau:
Chiến lược phát hành đĩa đơn
init()
. Để thiết lập và khởi chạy kho lưu trữ danh tính, hãy ghi đè phương thức `init().Chiến lược phát hành đĩa đơn
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()
.Chiến lược phát hành đĩa đơn
listGroups()
. Cách đồng bộ hoá tất cả các nhóm trong kho lưu trữ danh tính với Google Groups: ghi đè phương thứclistGroups()
.(không bắt buộc)
close()
. Nếu bạn cần dọn dẹp kho lưu trữ, hãy ghi đèclose()
. 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 tải mọi
thông số tùy chỉnh từ
Configuration
. Tác vụ này thường được thực hiện trong
Repository
của lớp
init()
.
Lớp Configuration
có một số phương thức để lấy nhiều loại dữ liệu
từ một cấu hình. Mỗi phương thức trả về một
ConfigValue
. Sau đó, bạn sẽ sử dụng mã của đối tượng ConfigValue
get()
để truy xuất giá trị thực.
Đoạn mã sau đây cho biết cách truy xuất userMappingCsvPath
và
Giá trị groupMappingCsvPath
từ đối tượng Configuration
:
Để tải 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
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 đoạn riêng biệt.
Đoạn mã sau đây, từ trình kết nối hướng dẫn, sử dụng
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 bản đồ ánh xạ cho tất cả người dùng từ kho lưu trữ danh tính của bạn. Chiến lược phát hành đĩa đơ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
đã đồng bộ hoá. Bạn có thể dùng điểm kiểm tra đó để 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 này trong
phương thức listUsers()
:
- Nhận bản đồ ánh xạ bao gồm thông tin nhận dạng trên Google và danh tính bên ngoài được liên kết nhận dạng.
- Đó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 các mục ánh xạ 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
listUsers()
trả về một Iterator
, cụ thể là một
CheckpointCloseableIterable
,
trong số
IdentityUser
. Bạn có thể sử dụng
CheckpointClosableIterableImpl.Builder
để tạo và trả về một biến lặp. Đoạn mã sau đây cho biết cách
để đóng gói từng ánh xạ vào danh sách, hãy 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 trong các nhóm đó từ danh tính của bạn
kho lưu trữ. Phương thức listGroups()
chấp nhận một điểm kiểm tra đại diện cho
danh tính cần đồng bộ hoá. Điểm kiểm tra đó có thể được dùng để tiếp tục quá trình đồng bộ hoá nếu
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 những quy tắc này
các bước 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 viên vào một biến lặp do
listGroups()
.
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
listGroups()
trả về một Iterator
, cụ thể là một
CheckpointCloseableIterable
,
trong số
IdentityGroup
.
Bạn có thể sử dụng
CheckpointClosableIterableImpl.Builder
để tạo và trả về một biến lặp. Đoạn mã sau đây cho biết cách
để đóng gói từng nhóm và các thành viên vào một danh sách rồ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 close() để giải phóng bất kỳ tài nguyên nào trước khi tắt.
- (không bắt buộc) Tạo trình kết nối nội dung thông qua SDK Trình kết nối nội dung.