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 kimlikleri ile 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'yi çevreleyen bir sarmalayıcıdır. Bu şekilde bağlayıcıları hızlıca oluşturabilirsiniz. SDK'yı kullanarak kimlik bağlayıcı oluşturmak için Identity Connector SDK'sını kullanarak kimlik bağlayıcı oluşturma bölümüne bakın.
Alt düzey REST API ve API kitaplıkları. Bu seçenekler, Java'da programlama olmayabilecek veya kod tabanı REST API'yi veya kütüphaneyi daha iyi destekleyen geliştiriciler içindir. REST API'yi kullanarak kimlik bağlayıcı oluşturmak için kullanıcıları eşleme hakkında bilgi edinmek için Directory API: Kullanıcı Hesapları sayfasına, eşleme gruplarıyla ilgili bilgi içinse Cloud Identity Belgeleri'ne göz atın.
Identity Connector SDK'sını kullanarak kimlik bağlayıcı oluşturma
Tipik bir kimlik bağlayıcı 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 edilmesi için Google'a gönderin.
Bağımlılıkları ayarlama
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 sekmelerden birini 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şturun
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'da, tüm bağlayıcılar tarafından kullanılan, Google'ın sağladığı çeşitli yapılandırma parametreleri bulunur. Yapılandırma dosyanızda Google tarafından sağlanan aşağıdaki parametreleri beyan etmeniz gerekir:
- İçerik bağlayıcısı için
api.sourceId
veapi.serviceAccountPrivateKeyFile
değerlerini bildirmeniz gerekir. Bu parametreler deponuzun konumunu ve depoya erişmek için gereken özel anahtarı tanımlar.
- Bu parametre harici kimlik kaynağınızın konumunu tanımladığından, kimlik bağlayıcısı için
api.identitySourceId
bildirmeniz gerekir. Kullanıcıları senkronize ediyorsanız kuruluşunuzun Google Workspace hesabı içinapi.customerId
benzersiz kimlik olarak da beyan etmeniz gerekir.
Google tarafından sağlanan diğer parametrelerin varsayılan değerlerini geçersiz kılmak istemiyorsanız bunları yapılandırma dosyanızda bildirmeniz gerekmez. Google'ın sağladığı yapılandırma parametreleri hakkında, belirli kimlikleri ve anahtarların nasıl oluşturulacağı gibi ek bilgiler için Google'ın sağladığı yapılandırma parametrelerine bakın.
Yapılandırma dosyanızda kullanmak üzere depoya özel parametrelerinizi de tanımlayabilirsiniz.
Yapılandırma dosyasını bağlayıcıya
Yapılandırma dosyasını bağlayıcınıza iletecek şekilde 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 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'sı, 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 deposunda kullanıcıların ve grupların tam senkronizasyonunu gerçekleştirmek için FullSyncIdentityConnector
şablonunun nasıl kullanılacağı açıklanmaktadır.
Belgelerin bu bölümünde IdentityConnecorSample.java
örneğindeki kod snippet'leri anlatılmıştır. Bu örnek, iki CSV dosyasındaki kullanıcı ve grup kimliklerini okur ve Google kimlikleriyle senkronize eder.
Bağlayıcının giriş noktasını uygulayın
Bağlayıcıya 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 ilgili start()
yöntemini çağırmaktır.
application.start()
yöntemini çağırmadan ö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 Application.build
initConfig()
yöntemini çağırır.
initConfig()
yöntemi aşağıdaki görevleri gerçekleştirir:
Configuration
özelliğinin 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 bir anahtar/değer çifti,Configuration
nesnesinin içindeki birConfigValue
nesnesinde depolanır.
Repository
arayüzünü uygulama
Repository
nesnesinin tek amacı, depo kimliklerinin Google kimlikleri ile senkronize edilmesini gerçekleştirmektir. Ş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. Kimlik deposu kurulumunu ve başlatmasını 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 temizliği gerçekleştirmeniz gerekirseclose()
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ınızın yapılandırmasını işlemenin bir parçası olarak, Configuration
nesnesinden tüm özel parametreleri almanız gerekir. Bu görev genellikle bir 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ğerinin nasıl alınacağı gösterilmektedir:
Birden fazla değer içeren bir parametreyi almak ve ayrıştırmak için Configuration
sınıfı tür ayrıştırıcılardan birini kullanarak verileri ayrı parçalara ayırın.
Eğitim bağlayıcısındaki 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
Kimlik deponuzdan tüm kullanıcıların eşlemesini almak için listUsers()
değerini geçersiz kılın. listUsers()
yöntemi, senkronize edilecek son kimliği temsil eden bir kontrol noktasını kabul eder. İşlemin kesintiye uğraması durumunda 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ğini ve ilişkili harici kimliği içeren bir eşleme alın.
- Çifti,
listUsers()
yöntemi tarafından döndürülen bir yinelemede paketleyin.
Kullanıcı eşlemesi 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 yineleyici olarak paketleme
listUsers()
yöntemi, IdentityUser
nesneden bir Iterator
, özellikle de CheckpointCloseableIterable
döndürür. Bir yineleyici 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 ve söz konusu listeden yineleyiciyi nasıl oluşturacağını göstermektedir:
Grup edinin
Kimlik deponuzdan tüm grupları ve ü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ını 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 alma.
- Her grubu ve üyeleri,
listGroups()
yöntemi tarafından döndürülen bir yinelemede 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 yinelemede paketleyin
listGroups()
yöntemi, IdentityGroup
nesneden bir Iterator
, özellikle de CheckpointCloseableIterable
döndürür.
Bir yineleyici oluşturmak ve döndürmek için CheckpointClosableIterableImpl.Builder
sınıfını kullanabilirsiniz. Aşağıdaki kod snippet'i her bir grup ve üyenin nasıl bir liste halinde paketleneceğini ve bu listeden yineleyicinin nasıl oluşturulacağını gösterir:
Sonraki adımlar
Atabileceğiniz sonraki adımlardan bazıları şunlardır:
- (İsteğe bağlı) Kapatma işleminden önce kaynakları serbest bırakmak için close() yöntemini uygulayın.
- (isteğe bağlı) Content Connector SDK'sını kullanarak bir içerik bağlayıcısı oluşturun.