Varsayılan olarak, Google Cloud Search yalnızca Google Cloud Directory'de depolanan Google kimliklerini (kullanıcılar ve gruplar) tanır. Kimlik bağlayıcıları, kuruluşunuzun kimliklerini Google Cloud Search tarafından kullanılan Google kimlikleriyle senkronize etmek için kullanılır.
Google, kimlik bağlayıcıları geliştirmek için aşağıdaki seçenekleri sunar:
Identity Connector SDK'sı. Bu seçenek, Java programlama dilinde programlama yapan geliştiriciler içindir. Identity Connector SDK, REST API etrafında hızlıca bağlayıcılar oluşturmanıza olanak tanıyan bir sarmalayıcıdır. SDK'yı kullanarak bir kimlik bağlayıcı oluşturmak için Identity Connector SDK'sını kullanarak kimlik bağlayıcısı oluşturma bölümüne bakın.
Alt düzey bir REST API ve API kitaplıkları. Bu seçenekler, Java'da programlama yapmayan veya kod tabanı REST API'ye veya bir kitaplığa daha uygun olan geliştiricilere yöneliktir. REST API'yi kullanarak bir kimlik bağlayıcısı oluşturmak istiyorsanız kullanıcıları eşleme hakkında bilgi için Directory API: Kullanıcı Hesapları, eşleme grupları hakkında bilgi için Cloud Identity Belgeleri sayfasını inceleyin.
Identity Connector SDK'sını kullanarak kimlik bağlayıcısı oluşturma
Tipik bir kimlik bağlayıcısı aşağıdaki görevleri gerçekleştirir:
- Bağlayıcıyı yapılandırın.
- Kurumsal kimlik sisteminizden tüm kullanıcıları alın ve Google kimlikleriyle senkronize edilmeleri için Google'a gönderin.
- Kurumsal kimlik sisteminizden tüm grupları alın ve Google kimlikleriyle senkronize edilmeleri için Google'a gönderin.
Bağımlılıkları belirleme
SDK'yı kullanmak için derleme dosyanıza belirli bağımlılıkları eklemeniz gerekir. Derleme ortamınızın bağımlılıklarını görüntülemek için aşağıdaki bir sekmeyi tıklayı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'
Bağlayıcı yapılandırmanızı oluşturma
Her bağlayıcının, bağlayıcı tarafından kullanılan parametreleri (ör. deponuzun kimliği) içeren bir yapılandırma dosyası vardır. Parametreler, api.sourceId=1234567890abcdef
gibi anahtar/değer çiftleri olarak tanımlanır.
Google Cloud Search SDK'sı, tüm bağlayıcılar tarafından kullanılan, Google tarafından sağlanan çeşitli yapılandırma parametrelerini içerir. Yapılandırma dosyanızda Google tarafından sağlanan aşağıdaki parametreleri beyan etmeniz gerekir:
- İçerik bağlayıcıları için deponuzun konumunu ve depoya erişmek için gereken özel anahtarı tanımlayan
api.sourceId
veapi.serviceAccountPrivateKeyFile
parametrelerini bildirmeniz gerekir.
- Bu parametre harici kimlik kaynağınızın konumunu tanımladığından, kimlik bağlayıcısı için
api.identitySourceId
değerini bildirmeniz gerekir. Kullanıcıları senkronize ediyorsanız kuruluşunuzun Google Workspace hesabının benzersiz kimliği olarakapi.customerId
öğesini de beyan etmeniz gerekir.
Google tarafından sağlanan diğer parametrelerin varsayılan değerlerini geçersiz kılmak istemediğiniz sürece bunları yapılandırma dosyanızda belirtmeniz gerekmez. Google'ın sağladığı yapılandırma parametreleri hakkında, belirli kimliklerin ve anahtarların nasıl oluşturulacağı gibi ek bilgiler için Google'ın sağladığı yapılandırma parametreleri bölümüne bakın.
Yapılandırma dosyanızda kullanmak üzere kendi depoya özgü parametrelerinizi de tanımlayabilirsiniz.
Yapılandırma dosyasını bağlayıcıya iletme
Yapılandırma dosyasını bağlayıcınıza aktarmak için config
sistem özelliğini ayarlayın. Bağlayıcıyı başlatırken -D
bağımsız değişkenini kullanarak özelliği ayarlayabilirsiniz. Örneğin, aşağıdaki komut bağlayıcıyı MyConfig.properties
yapılandırma dosyasıyla başlatır:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Bu bağımsız değişken eksikse SDK, connector-config.properties
adlı varsayılan bir yapılandırma dosyasına erişmeye çalışır.
Şablon sınıfı kullanarak tam senkronizasyon kimliği bağlayıcısı oluşturma
Identity Connector SDK, kimlik deposundaki tüm kullanıcı ve grupları Google kimlikleriyle senkronize etmek için kullanabileceğiniz bir FullSyncIdentityConnector
şablon sınıfı içerir. Bu bölümde, Google dışı bir kimlik deposundaki kullanıcılar ve grupların tam senkronizasyonunu gerçekleştirmek için FullSyncIdentityConnector
şablonunun nasıl kullanılacağı açıklanmaktadır.
Belgelerin bu bölümü, IdentityConnecorSample.java
örneğinden alınan kod snippet'leriyle ilgilidir. Bu örnek, iki CSV dosyasındaki kullanıcı ve grup kimliklerini okur ve bunları Google kimlikleriyle senkronize eder.
Bağlayıcının giriş noktasını uygulayın
Bağlayıcının giriş noktası, main()
yöntemidir. Bu yöntemin birincil görevi, Application
sınıfının bir örneğini oluşturmak ve bağlayıcıyı çalıştırmak için bu yöntemin start()
yöntemini çağırmaktır.
application.start()
çağrısından önce, FullSyncIdentityConnector
şablonunu örneklendirmek için IdentityApplication.Builder
sınıfını kullanın. FullSyncIdentityConnector
, yöntemlerini uygulayacağınız bir Repository
nesnesini kabul eder.
Aşağıdaki kod snippet'i, main()
yönteminin nasıl uygulanacağını gösterir:
Arka planda SDK, bağlayıcınızın main()
yöntemi çağrısından sonra initConfig()
yöntemini Application.build
çağırır.
initConfig()
yöntemi aşağıdaki görevleri yerine getirir:
Configuration
'in başlatılmadığından emin olmak içinConfiguation.isInitialized()
yöntemini çağırır.- Google'ın sağladığı anahtar/değer çiftleriyle bir
Configuration
nesnesini başlatır. Her anahtar/değer çifti,Configuration
nesnesi içindeki birConfigValue
nesnesinde depolanır.
Repository
arayüzünü uygulama
Repository
nesnesinin tek amacı, depo kimliklerinin Google kimlikleri ile senkronize edilmesini sağlamaktır. Şablon kullanırken, kimlik bağlayıcısı oluşturmak için Repository
arayüzünde yalnızca belirli yöntemleri geçersiz kılmanız gerekir. FullTraversalConnector
için muhtemelen aşağıdaki yöntemleri geçersiz kılarsınız:
init()
yöntemi. Herhangi bir kimlik deposu kurulumu ve başlatma işlemi gerçekleştirmek için "init()" yöntemini geçersiz kılın.listUsers()
yöntemi. Kimlik deposundaki tüm kullanıcıları Google kullanıcılarıyla senkronize etmek içinlistUsers()
yöntemini geçersiz kılın.listGroups()
yöntemi. Kimlik deposundaki tüm grupları Google Gruplar ile senkronize etmek içinlistGroups()
yöntemini geçersiz kılın.(isteğe bağlı)
close()
yöntemi. Depo temizleme işlemi gerçekleştirmeniz gerekiyorsaclose()
yöntemini geçersiz kılın. Bu yöntem, bağlayıcının kapatılması sırasında bir kez çağrılır.
Özel yapılandırma parametrelerini alma
Bağlayıcı yapılandırmanızı işlemenin bir parçası olarak Configuration
nesnesinden tüm özel parametreleri almanız gerekir. Bu görev genellikle Repository
sınıfının init()
yönteminde gerçekleştirilir.
Configuration
sınıfı, bir yapılandırmadan farklı veri türlerini almak için çeşitli yöntemler sunar. Her yöntem bir ConfigValue
nesnesi döndürür. Daha sonra gerçek değeri almak için ConfigValue
nesnesinin get()
yöntemini kullanırsınız.
Aşağıdaki snippet'te, bir Configuration
nesnesinden userMappingCsvPath
ve groupMappingCsvPath
değerlerinin nasıl alınacağı gösterilmektedir:
Birkaç değer içeren bir parametreyi almak ve ayrıştırmak için Configuration
sınıfının tür ayrıştırıcılarından birini kullanarak verileri ayrı parçalara ayrıştırın.
Eğitim bağlayıcısında yer alan aşağıdaki snippet, GitHub deposu adlarının listesini almak için getMultiValue
yöntemini kullanır:
Tüm kullanıcılar için eşlemeyi alma
Geçersiz kıl: listUsers()
ile kimlik deponuzdaki tüm kullanıcıların eşlemesini alabilirsiniz. listUsers()
yöntemi, senkronize edilecek son kimliği temsil eden bir kontrol noktasını kabul eder. İşlem kesintiye uğrarsa senkronizasyonu devam ettirmek için kontrol noktası kullanılabilir. Deponuzdaki her kullanıcı için listUsers()
yönteminde şu adımları uygularsınız:
- Google kimliği ve ilişkili harici kimlikten oluşan bir eşleme alın.
- Çifti,
listUsers()
yöntemi tarafından döndürülen bir iteratörde paketleyin.
Kullanıcı eşleme alma
Aşağıdaki kod snippet'i, bir CSV dosyasında depolanan kimlik eşlemelerinin nasıl alınacağını gösterir:
Kullanıcı eşlemesini bir iteratörde paketleme
listUsers()
yöntemi, Iterator
(özellikle de bir CheckpointCloseableIterable
) IdentityUser
nesnesi döndürür. Bir iteratör oluşturmak ve döndürmek için CheckpointClosableIterableImpl.Builder
sınıfını kullanabilirsiniz. Aşağıdaki kod snippet'i, her eşlemenin liste halinde nasıl paketleneceğini bu listeden iteratörün derlediğini gösterir:
Grup al
Kimlik deponuzdan tüm grupları ve bu grupların üyelerini almak için listGroups()
değerini geçersiz kılın. listGroups()
yöntemi, senkronize edilecek son kimliği temsil eden bir kontrol noktası kabul eder. İşlemin kesintiye uğraması durumunda senkronizasyonu devam ettirmek için kontrol noktası kullanılabilir. Deponuzdaki her kullanıcı için listGroups()
yönteminde şu adımları uygularsınız:
- Grubu ve üyelerini alın.
- Her grubu ve üyeleri
listGroups()
yönteminin döndürdüğü bir iteratörde paketleyin.
Grup kimliğini alma
Aşağıdaki kod snippet'i, bir CSV dosyasında depolanan grupların ve üyelerin nasıl alınacağını gösterir:
Grubu ve üyeleri bir iteratörde paketle
listGroups()
yöntemi, Iterator
(özellikle de bir CheckpointCloseableIterable
) IdentityGroup
nesnesi döndürür.
Bir iteratör oluşturmak ve döndürmek için CheckpointClosableIterableImpl.Builder
sınıfını kullanabilirsiniz. Aşağıdaki kod snippet'i her bir grubun ve üyelerin bir liste halinde nasıl paketleneceğini ve bu listeden iteratörün nasıl oluşturulacağını gösterir:
Sonraki adımlar
Atabileceğiniz sonraki adımlardan bazıları şunlardır:
- (İsteğe bağlı) Kapanıştan önce kaynakları serbest bırakmak için close() yöntemini uygulayın.
- (isteğe bağlı) Content Connector SDK'yı kullanarak içerik bağlayıcısı oluşturun.