Per impostazione predefinita, Google Cloud Search riconosce solo le identità Google in Google Cloud Directory. Utilizza i connettori di identità per sincronizzare le identità aziendali con le identità Google utilizzate da Cloud Search.
Google offre queste opzioni per lo sviluppo di connettori di identità:
L'SDK del connettore di identità: ideale per i programmatori Java. L'SDK è un wrapper dell'API REST che ti consente di creare rapidamente connettori. Per utilizzare l'SDK, vedi Creare un connettore di identità utilizzando l'SDK del connettore di identità.
Un'API REST di basso livello e librerie API: ideale per i programmatori non Java. Per creare un connettore di identità utilizzando l'API REST, vedi API Directory: account utente per la mappatura degli utenti e la documentazione di Google Cloud Identity per la mappatura dei gruppi.
Creare un connettore di identità utilizzando l'SDK del connettore di identità
Un connettore di identità tipico esegue queste attività:
- Configura il connettore.
- Recupera gli utenti dal sistema di identità e li invia a Google.
- Recupera i gruppi dal sistema di identità e li invia a Google.
Configurare le dipendenze
Includi queste dipendenze nel file di build.
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'
Creare la configurazione del connettore
Ogni connettore utilizza un file di configurazione per i parametri come l'ID del repository.
Definisci i parametri come chiave-valore coppie, ad esempio
api.sourceId=1234567890abcdef.
L'SDK Google Cloud Search include parametri forniti da Google per tutti i connettori. Devi dichiarare quanto segue nel file di configurazione:
- Connettore di contenuti: dichiara
api.sourceIdeapi.serviceAccountPrivateKeyFile. Questi identificano il repository e la chiave privata necessaria per l'accesso.
- Connettore di identità: dichiara
api.identitySourceIdper identificare la tua origine identità esterna. Per la sincronizzazione degli utenti, dichiara ancheapi.customerId(l'ID univoco del tuo account Google Workspace).
Dichiara gli altri parametri forniti da Google solo per sostituire i relativi valori predefiniti. Per informazioni dettagliate sulla generazione di ID e chiavi, vedi Parametri forniti da Google.
Puoi anche definire parametri specifici del repository nel file di configurazione.
Passare il file di configurazione al connettore
Imposta la proprietà di sistema config per passare il file di configurazione. Utilizza l'argomento -D quando avvii il connettore. Ad esempio:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Se ometti questo argomento, l'SDK tenta di utilizzare un file denominato connector-config.properties nella directory locale.
Creare un connettore di identità di sincronizzazione completa utilizzando una classe di modelli
L'SDK include un modello FullSyncIdentityConnector per sincronizzare tutti gli utenti e i gruppi dal repository. Questa sezione spiega come utilizzarlo.
Questa sezione fa riferimento al codice dell'esempio IdentityConnectorSample.java, che legge le identità dai file CSV.
Implementare il punto di accesso del connettore
Il punto di accesso è il metodo main(). Crea un'
Application
istanza e chiama
start()
per eseguire il connettore.
Prima di chiamare application.start(), utilizza
IdentityApplication.Builder
per creare un'istanza del modello FullSyncIdentityConnector.
L'SDK chiama initConfig() dopo che il metodo main() chiama Application.build(). Il metodo initConfig():
- Garantisce che il
Configurationnon sia già inizializzato. - Inizializza l'oggetto
Configurationcon le coppie chiave-valore fornite da Google.
Implementare l'interfaccia Repository
L'oggetto Repository sincronizza le identità del repository con le identità Google. Quando utilizzi un modello, devi sostituire solo determinati metodi. Per FullSyncIdentityConnector, sostituisci questi metodi:
init(): per la configurazione e l'inizializzazione.listUsers(): per sincronizzare tutti gli utenti.listGroups(): per sincronizzare tutti i gruppi.- (Facoltativo)
close(): Per la pulizia durante l'arresto.
Ottenere parametri di configurazione personalizzati
Recupera i parametri personalizzati dall'oggetto Configuration, in genere nel metodo init(). Il seguente snippet mostra come recuperare i percorsi CSV:
Per ottenere e analizzare un parametro contenente più valori, utilizza uno degli analizzatori di tipo della classe Configuration per analizzare i dati in blocchi discreti.
Il seguente snippet, dal connettore del tutorial, utilizza il
getMultiValue
metodo per ottenere un elenco di nomi di repository GitHub:
Ottenere la mappatura per tutti gli utenti
Sostituisci listUsers() per recuperare le mappature degli utenti. Questo metodo accetta un checkpoint per riprendere la sincronizzazione se viene interrotta. Per ogni utente:
- Ottieni la mappatura tra l'identità Google e l'identità esterna.
- Inserisci la coppia nell'iteratore restituito da
listUsers().
Ottenere una mappatura utente
Questo snippet mostra come recuperare le mappature delle identità da un file CSV:
Inserire una mappatura utente in un iteratore
Il metodo listUsers() restituisce un
CheckpointCloseableIterable
di
IdentityUser
oggetti.
Ottenere un gruppo
Sostituisci listGroups() per recuperare i gruppi e i relativi membri. Questo metodo accetta un checkpoint. Per ogni gruppo:
- Ottieni il gruppo e i relativi membri.
- Inseriscili nell'iteratore restituito da
listGroups().
Ottenere l'identità del gruppo
Questo snippet mostra come recuperare gruppi e membri da un file CSV:
Inserire il gruppo e i membri in un iteratore
Il metodo listGroups() restituisce un CheckpointCloseableIterable di
IdentityGroup
oggetti.
Passaggi successivi
- (Facoltativo) Implementa
close()per rilasciare le risorse. - (Facoltativo) Crea un connettore di contenuti.