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ştirme konusunda aşağıdaki seçenekleri sunar:
Kimlik Bağlayıcı SDK'sı. Bu seçenek, Java programlama dilinde programlama yapan geliştiriciler içindir. Kimlik bağlayıcı SDK, REST API'nin sarmalayıcısıdır ve bağlayıcıları hızlı bir şekilde oluşturmanıza olanak tanır. SDK'yı kullanarak kimlik bağlayıcı oluşturmak için Identity Connector SDK'sını kullanarak kimlik bağlayıcı oluşturma başlıklı makaleyi inceleyin.
Düşük düzeyli bir REST API ve API kitaplıkları. Bu seçenekler, Java ile programlamayan veya kod tabanı REST API'yi ya da kitaplığı 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 üzere Directory API: User Accounts, grupları eşleme hakkında bilgi edinmek üzere Cloud Identity Belgeleri'ne bakın.
Kimlik bağlayıcı SDK'sını kullanarak kimlik bağlayıcısı oluşturma
Tipik bir kimlik bağlayıcısı aşağıdaki görevleri yerine getirir:
- Bağlayıcıyı yapılandırın.
- Kurumsal kimlik sisteminizdeki tüm kullanıcıları alın ve Google kimlikleriyle senkronize etmek için Google'a gönderin.
- Kurumsal kimlik sisteminizdeki tüm grupları alıp Google kimlikleriyle senkronize edilmek üzere 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, tüm bağlayıcılar tarafından kullanılan, Google tarafından sağlanan çeşitli yapılandırma parametreleri içerir. Yapılandırma dosyanızda Google tarafından sağlanan aşağıdaki parametreleri bildirmeniz gerekir:
- İçerik bağlayıcı için
api.sourceId
veapi.serviceAccountPrivateKeyFile
parametrelerini bildirmeniz gerekir. Bu parametreler, deponuzun konumunu ve depoya erişmek için gereken özel anahtarı tanımlar.
- Kimlik bağlayıcı için
api.identitySourceId
değerini belirtmeniz gerekir. Bu parametre, harici kimlik kaynağınızın konumunu tanımlar. Kullanıcıları senkronize ediyorsanızapi.customerId
değerini de kuruluşunuzun Google Workspace hesabının benzersiz kimliği olarak 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 belirtmeniz gerekmez. Google tarafından sağlanan yapılandırma parametreleri (ör. belirli kimliklerin ve anahtarların nasıl oluşturulacağı) hakkında daha fazla bilgi için Google tarafından sağlanan yapılandırma parametreleri başlıklı makaleyi inceleyin.
Yapılandırma dosyanızda kullanmak üzere kendi depoya özel parametrelerinizi de tanımlayabilirsiniz.
Yapılandırma dosyasını bağlayıcıya iletme
Yapılandırma dosyasını bağlayıcınıza iletmek için config
sistem özelliğini ayarlayın. Bağlayıcıyı başlatırken -D
bağımsız değişkenini kullanarak mülkü 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 kimlik bağlayıcısı oluşturma
Kimlik bağlayıcı SDK'sında, kimlik deposundaki tüm kullanıcıları ve grupları Google kimlikleriyle senkronize etmek için kullanabileceğiniz bir FullSyncIdentityConnector
şablon sınıfı
bulunur. Bu bölümde, Google dışı bir kimlik deposundaki kullanıcıların ve grupların tam senkronizasyonunu gerçekleştirmek için FullSyncIdentityConnector
şablonunun nasıl kullanılacağı açıklanmaktadır.
Dokümanların bu bölümünde, IdentityConnecorSample.java
örneğindeki kod snippet'lerine atıfta bulunulmaktadır. Bu örnek, kullanıcı ve grup kimliklerini iki CSV dosyasından okur ve Google kimlikleriyle senkronize eder.
Bağlayıcının giriş noktasını uygulama
Bir bağlayıcının giriş noktası main()
yöntemidir. Bu yöntemin temel görevi, Application
sınıfının bir örneğini oluşturmak ve bağlayıcıyı çalıştırmak için start()
yöntemini çağırmaktır.
Çağırmadan önce
application.start()
,
FullSyncIdentityConnector
şablonunu örneklemek 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'inde main()
yönteminin nasıl uygulanacağı gösterilmektedir:
Arka planda, bağlayıcınızın main()
yöntemi Application.build
yöntemini çağırdıktan sonra SDK, initConfig()
yöntemini çağırır.
initConfig()
yöntemi aşağıdaki görevleri gerçekleştirir:
Configuation.isInitialized()
yöntemini çağırarakConfiguration
öğesinin başlatılmadığından emin olur.- Google tarafından sağlanan 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 kimlikleriyle senkronizasyonunu gerçekleştirmektir. Şablon kullanırken kimlik bağlayıcısı oluşturmak için yalnızca Repository
arayüzündeki belirli yöntemleri geçersiz kılmanız gerekir. FullTraversalConnector
için büyük olasılıkla aşağıdaki yöntemleri geçersiz kılarsınız:
init()
yöntemi. Kimlik deposu kurulumu ve başlatma işlemlerini 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.(İsteğe bağlı)
close()
yöntemi. Depo temizliği yapmanız gerekiyorsaclose()
yöntemini geçersiz kılın. Bu yöntem, bağlayıcı kapatılırken bir kez çağrılır.
Özel yapılandırma parametrelerini alma
Bağlayıcınızın yapılandırmasını işleme sürecinde, 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ı, yapılandırmadan farklı veri türlerini almak için çeşitli yöntemlere sahiptir. Her yöntem bir ConfigValue
nesnesi döndürür. Ardından, 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 verileri ayrı parçalar halinde ayrıştırmak üzere Configuration
sınıfının tür ayrıştırıcılarından birini kullanın.
Eğitim amaçlı bağlayıcıdan alınan aşağıdaki snippet, GitHub depo adlarının listesini almak için getMultiValue
yöntemini kullanır:
Tüm kullanıcılar için eşlemeyi alma
Kimlik deponuzdaki tüm kullanıcıların eşlemesini almak için
listUsers()
geçersiz kılın. listUsers()
yöntemi, senkronize edilecek son kimliği temsil eden bir kontrol noktası 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ı uygulayacaksı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 yineleyiciye paketleyin.
Kullanıcı eşlemesi alma
Aşağıdaki kod snippet'inde, bir CSV dosyasında depolanan kimlik eşlemelerinin nasıl alınacağı gösterilmektedir:
Kullanıcı eşlemesini bir yineleyiciye paketleme
listUsers()
yöntemi, IdentityUser
nesnelerinin Iterator
'ünü, özellikle de CheckpointCloseableIterable
'i döndürür. Yineleyici oluşturmak ve döndürmek için
CheckpointClosableIterableImpl.Builder
sınıfını kullanabilirsiniz. Aşağıdaki kod snippet'inde her eşlemenin nasıl paketleneceği ve bu listeden yineleyicinin nasıl oluşturulacağı gösterilmektedir:
Grup alma
Kimlik deposundaki tüm grupları ve üyelerini almak için
listGroups()
geçersiz kılın. listGroups()
yöntemi, senkronize edilecek son kimliği temsil eden bir kontrol noktası kabul eder. İşlem kesintiye uğrarsa senkronizasyonu devam ettirmek için kontrol noktası kullanılabilir. Deponuzdaki her kullanıcı için listGroups()
yönteminde şu adımları uygulayacaksınız:
- Grubu ve üyelerini alır.
- Her grubu ve üyeleri,
listGroups()
yöntemi tarafından döndürülen bir yineleyiciye paketleyin.
Grup kimliğini alma
Aşağıdaki kod snippet'inde, CSV dosyasında depolanan grupların ve üyelerin nasıl alınacağı gösterilmektedir:
Grubu ve üyeleri bir yineleyiciye paketleme
listGroups()
yöntemi, IdentityGroup
nesnelerinin Iterator
'ünü, özellikle de CheckpointCloseableIterable
'i döndürür.
Yineleyici oluşturmak ve döndürmek için
CheckpointClosableIterableImpl.Builder
sınıfını kullanabilirsiniz. Aşağıdaki kod snippet'inde, her grubun ve üyenin nasıl bir listede paketleneceği ve bu listeden nasıl yineleyici oluşturulacağı gösterilmektedir:
Sonraki Adımlar
İzleyebileceğiniz bazı sonraki adımlar:
- (İsteğe bağlı) Kapatmadan önce kaynakları serbest bırakmak için close() yöntemini uygulayın.
- (İsteğe bağlı) Content Connector SDK'yı kullanarak içerik bağlayıcı oluşturun.