Per impostazione predefinita, Google Cloud Search riconosce solo le identità Google archiviate in Google Cloud Directory (utenti e gruppi). I connettori di identità sono utilizzati per sincronizzare le identità della tua azienda con le identità Google utilizzate da Google Cloud Search.
Google offre le seguenti opzioni per lo sviluppo di connettori di identità:
SDK Identity Connector. Questa opzione è rivolta agli sviluppatori che programmano nel linguaggio di programmazione Java. L'SDK Identity Connector è un wrapper intorno all'API REST, consentendoti di creare rapidamente connettori. Per creare un connettore di identità utilizzando l'SDK, fai riferimento Crea un connettore di identità utilizzando l'SDK Identity Connector.
Un'API REST e librerie API di basso livello. Queste opzioni sono rivolte agli sviluppatori che potrebbero non programmare in Java o il cui codebase supporta meglio tramite un'API REST o una libreria. Per creare un connettore di identità utilizzando l'API REST, consulta a API Directory: Account utente per informazioni sulla mappatura degli utenti Documentazione di Cloud Identity per e informazioni sui gruppi di mappatura.
Crea un connettore di identità utilizzando l'SDK Identity Connector
Un tipico connettore di identità esegue le seguenti attività:
- Configura il connettore.
- Recupera tutti gli utenti dal tuo sistema di identità aziendale e inviali a Google per la sincronizzazione con le identità Google.
- Recupera tutti i gruppi dal tuo sistema di identità aziendale e inviali a Google per la sincronizzazione con le identità Google.
Configura le dipendenze
Per utilizzare l'SDK, devi includere determinate dipendenze nel file di build. Clic in una scheda riportata di seguito per visualizzare le dipendenze per il tuo ambiente 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 dispone di un file di configurazione contenente i parametri utilizzati dal
come l'ID del repository. I parametri sono definiti
coppie chiave-valore, come
api.sourceId=1234567890abcdef
.
L'SDK di Google Cloud Search contiene diverse configurazioni fornite da Google utilizzati da tutti i connettori. Devi dichiarare quanto segue Parametri forniti da Google nel tuo file di configurazione:
- Per un connettore di contenuti, devi dichiarare
api.sourceId
eapi.serviceAccountPrivateKeyFile
mentre questi parametri identificano la località del repository e della chiave privata necessari per accedere al repository.
- Per un connettore di identità, devi dichiarare
api.identitySourceId
come questo identifica la posizione dell'origine identità esterna. Se utenti sincronizzati, devi anche dichiarareapi.customerId
come ID univoco per l'account Google Workspace della tua azienda.
A meno che tu non voglia eseguire l'override dei valori predefiniti non occorre dichiararli nel file di configurazione. Per ulteriori informazioni sui parametri di configurazione forniti da Google, come come generare determinati ID e chiavi, consulta Parametri di configurazione forniti da Google.
Puoi anche definire parametri personalizzati per il repository da utilizzare nelle di configurazione del deployment.
Passa il file di configurazione al connettore
Imposta la proprietà di sistema config
per trasferire il file di configurazione al tuo
di rete. Puoi impostare la proprietà utilizzando l'argomento -D
quando inizi
il connettore. Ad esempio, il seguente comando avvia il connettore
con il file di configurazione MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Se questo argomento non è presente, l'SDK tenta di accedere a una configurazione predefinita
file denominato connector-config.properties
.
Crea un connettore di identità di sincronizzazione completo utilizzando una classe di modello
L'SDK Identity Connector contiene una classe modello FullSyncIdentityConnector
che puoi utilizzare per sincronizzare tutti gli utenti e i gruppi dall'identità
un repository con identità Google. In questa sezione viene illustrato come utilizzare
FullSyncIdentityConnector
modello per eseguire una sincronizzazione completa di utenti e gruppi da un'identità non Google
repository Git.
Questa sezione della documentazione fa riferimento agli snippet di codice
IdentityConnecorSample.java
campione. Questo esempio legge utente e gruppo
da due file CSV e le sincronizza con le identità Google.
Implementa il punto di ingresso del connettore
Il punto di ingresso di un connettore è
main()
. L'attività principale di questo metodo è creare un'istanza
Application
e richiamare la sua
start()
per eseguire il connettore.
Prima di chiamare
application.start()
,
utilizza la
IdentityApplication.Builder
per creare un'istanza
modello FullSyncIdentityConnector
. L'FullSyncIdentityConnector
accetta un
Repository
di cui implementerai i metodi.
Il seguente snippet di codice mostra come implementare il metodo main()
:
In background, l'SDK chiama
initConfig()
dopo le chiamate al metodo main()
del connettore
Application.build
.
Il metodo initConfig()
esegue le seguenti attività:
- Chiama il
Configuation.isInitialized()
per garantire cheConfiguration
non è stato inizializzato. - Inizializza un oggetto
Configuration
con la coppia chiave-valore fornita da Google in coppia. Ogni coppia chiave-valore è archiviata inConfigValue
all'interno dell'oggettoConfiguration
.
Implementa l'interfaccia di Repository
L'unico scopo dell'oggetto Repository
è eseguire
la sincronizzazione delle identità
del repository con le identità Google. Quando si utilizza
devi eseguire l'override solo di alcuni metodi all'interno
Repository
per creare un connettore di identità. Per
FullTraversalConnector
, probabilmente eseguirai l'override dei seguenti metodi:
La
init()
. Per eseguire qualsiasi configurazione e inizializzazione del repository di identità, sostituisci il metodo "init()".La
listUsers()
. Per sincronizzare tutti gli utenti nel repository di identità con gli utenti Google, sostituisci il metodolistUsers()
.La
listGroups()
. Per sincronizzare tutti i gruppi nel repository di identità con Google Gruppi: sostituisci il metodolistGroups()
.(Facoltativo) Il campo
close()
. Se devi eseguire la pulizia del repository, esegui l'override diclose()
. Questo metodo viene chiamato una volta durante l'arresto del connettore.
Ottieni parametri di configurazione personalizzati
Come parte della gestione della configurazione del connettore, dovrai ottenere
parametri personalizzati
Configuration
. Questa attività viene solitamente eseguita in uno
Repository
del corso
init()
.
La classe Configuration
offre diversi metodi per ottenere diversi tipi di dati
da una configurazione. Ogni metodo restituisce un
ConfigValue
. Userai quindi l'attributo ConfigValue
get()
per recuperare il valore effettivo.
Il seguente snippet mostra come recuperare userMappingCsvPath
e
Valore groupMappingCsvPath
da un oggetto Configuration
:
Per ottenere e analizzare un parametro contenente più valori, utilizza uno dei
Parser di tipo Configuration
per analizzare i dati in blocchi discreti.
Il seguente snippet del connettore tutorial utilizza la classe
getMultiValue
per ottenere un elenco di nomi di repository GitHub:
Ottieni il mapping per tutti gli utenti
Esegui override
listUsers()
per recuperare la mappatura di tutti gli utenti dal tuo repository di identità. La
Il metodo listUsers()
accetta un checkpoint che rappresenta l'ultima identità da eseguire
sincronizzati. Il checkpoint può essere utilizzato per riprendere la sincronizzazione nel caso in cui il processo venga
interrotto. Per ogni utente del tuo repository, eseguirai questi passaggi
il metodo listUsers()
:
- Ottieni una mappatura composta dall'identità Google e da quelli esterni associati e identità di base.
- Pacchettizza la coppia in un iteratore restituito dal metodo
listUsers()
.
Ottieni una mappatura utente
Il seguente snippet di codice mostra come recuperare le mappature delle identità archiviati in un file CSV:
Pacchettizzazione di una mappatura utente in un iteratore
La listUsers()
restituisce un Iterator
, in particolare un
CheckpointCloseableIterable
di
IdentityUser
di oggetti strutturati. Puoi utilizzare lo
CheckpointClosableIterableImpl.Builder
per creare e restituire un iteratore. Il seguente snippet di codice mostra come
per pacchettizzare ogni mappatura in un elenco di build
per l'iteratore
elenco:
Crea un gruppo
Esegui override
listGroups()
per recuperare tutti i gruppi e i loro membri dalla tua identità
repository Git. Il metodo listGroups()
accetta un checkpoint che rappresenta l'ultimo
identità da sincronizzare. Il checkpoint può essere utilizzato per riprendere la sincronizzazione nel caso in cui
l'interruzione del processo. Per ogni utente del tuo repository, eseguirai questi passaggi
passaggi nel metodo listGroups()
:
- Recupera il gruppo e i relativi membri.
- Pacchettizza ogni gruppo e i membri in un iteratore restituito dal
listGroups()
.
Recuperare l'identità del gruppo
Il seguente snippet di codice mostra come recuperare i gruppi e i membri archiviati in un file CSV:
Pacchettizzare il gruppo e i membri in un iteratore
La listGroups()
restituisce un Iterator
, in particolare un
CheckpointCloseableIterable
di
IdentityGroup
di oggetti strutturati.
Puoi utilizzare lo
CheckpointClosableIterableImpl.Builder
per creare e restituire un iteratore. Il seguente snippet di codice mostra come
pacchettizzare ogni gruppo e i membri in un elenco e creare l'iteratore partendo da quel
elenco:
Passaggi successivi
Di seguito sono riportati alcuni passaggi che puoi eseguire:
- (Facoltativo) Implementa la funzione close() per rilasciare risorse prima dell'arresto.
- (Facoltativo) Crea un connettore di contenuti utilizzando l'SDK Content Connector.