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à:
SDK Identity Connector: ideale per i programmatori Java. L'SDK è un wrapper intorno all'API REST che ti consente di creare rapidamente connettori. Per utilizzare l'SDK, consulta Creare un connettore di identità utilizzando l'SDK Identity Connector.
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, consulta API Directory: User Accounts per il mapping degli utenti e Documentazione di Google Cloud Identity per il mapping dei gruppi.
Crea un connettore di identità utilizzando l'SDK Identity Connector
Un tipico connettore di identità esegue queste attività:
- Configura il connettore.
- Recupera gli utenti dal tuo sistema di identità e li invia a Google.
- Recupera i gruppi dal tuo 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'
Crea la configurazione del connettore
Ogni connettore utilizza un file di configurazione per parametri come l'ID repository.
Definisci i parametri come coppie chiave-valore, ad esempio
api.sourceId=1234567890abcdef.
Google Cloud Search SDK 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 tuo repository e la chiave privata necessaria per l'accesso.
- Connettore di identità: dichiara
api.identitySourceIdper identificare l'origine identità esterna. Per la sincronizzazione degli utenti, dichiara ancheapi.customerId(l'ID univoco del tuo account Google Workspace).
Dichiara altri parametri forniti da Google solo per eseguire l'override dei valori predefiniti. Per informazioni dettagliate sulla generazione di ID e chiavi, vedi Parametri forniti da Google.
Puoi anche definire parametri specifici per il repository nel file di configurazione.
Trasferisci 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.
Crea un connettore di identità di sincronizzazione completa utilizzando una classe modello
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.
Implementa il punto di ingresso del connettore
L'entry point è il metodo main(). Crea un'istanza di
Application
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 le chiamate al metodo main()
Application.build(). Il metodo initConfig():
- Garantisce che
Configurationnon sia già inizializzato. - Inizializza l'oggetto
Configurationcon le coppie chiave-valore fornite da Google.
Implementa l'interfaccia Repository
L'oggetto Repository sincronizza le identità del repository con le identità Google. Quando
utilizzi un modello, devi solo eseguire l'override di determinati metodi. Per
FullSyncIdentityConnector, esegui l'override di 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 dei parser di tipo della classe Configuration per analizzare i dati in blocchi discreti.
Il seguente snippet, dal connettore del tutorial, utilizza il metodo
getMultiValue
per ottenere un elenco di nomi di repository GitHub:
Recuperare la mappatura per tutti gli utenti
Esegui l'override di listUsers() per recuperare le mappature degli utenti. Questo metodo accetta un
checkpoint per riprendere la sincronizzazione in caso di interruzione. Per ogni utente:
- Recupera la mappatura tra l'identità Google e l'identità esterna.
- Inserisci la coppia nell'iteratore restituito da
listUsers().
Ottenere una mappatura degli utenti
Questo snippet mostra il recupero delle mappature delle identità da un file CSV:
Pacchettizzare una mappatura utente in un iteratore
Il metodo listUsers() restituisce un
CheckpointCloseableIterable
di oggetti
IdentityUser.
Ottieni un gruppo
Esegui l'override di listGroups() per recuperare i gruppi e i relativi membri. Questo metodo
accetta un checkpoint. Per ogni gruppo:
- Recupera il gruppo e i relativi membri.
- Raggruppali nell'iteratore restituito da
listGroups().
Ottieni l'identità del gruppo
Questo snippet mostra il recupero di gruppi e membri da un file CSV:
Raggruppa il gruppo e i membri in un iteratore
Il metodo listGroups() restituisce un CheckpointCloseableIterable di oggetti
IdentityGroup.
Passaggi successivi
- (Facoltativo) Implementa
close()per rilasciare le risorse. - (Facoltativo) Crea un connettore di contenuti.