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'yı 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'a, grupları eşleme hakkında bilgi edinmek üzere Cloud Identity Documentation'a 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ıp Google kimlikleriyle senkronize etmek için Google'a gönderin.
- Kurumsal kimlik sisteminizdeki tüm grupları alıp Google kimlikleriyle senkronize etmek 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, 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.sourceIdveapi.serviceAccountPrivateKeyFileparametrelerini bildirmeniz gerekir. Bu parametreler, deponuzun konumunu ve depoya erişmek için gereken özel anahtarı tanımlar.
- Kimlik bağlayıcı için
api.identitySourceIdparametresini beyan etmeniz gerekir. Bu parametre, harici kimlik kaynağınızın konumunu tanımlar. Kullanıcıları senkronize ediyorsanızapi.customerIddeğ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
Identity Connector SDK, kimlik deposundaki tüm kullanıcıları 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ı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.
Aramadan önce
application.start(),
FullSyncIdentityConnector şablonunu oluşturmak 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 yerine getirir:
Configuation.isInitialized()yöntemini çağırarakConfigurationöğesinin başlatılmadığından emin olur.- Google tarafından sağlanan anahtar/değer çiftleriyle bir
Configurationnesnesini başlatır. Her anahtar/değer çifti,Configurationnesnesi içindeki birConfigValuenesnesinde 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. 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.(İ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ı, bir 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, userMappingCsvPath ve groupMappingCsvPath değerinin Configuration nesnesinden 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 bağlayıcısından 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, CSV dosyasında depolanan kimlik eşlemelerinin nasıl alınacağı gösterilmektedir:
Kullanıcı eşlemesini bir yineleyiciye paketleme
listUsers() yöntemi, Iterator döndürür. Bu, IdentityUser nesnelerinin CheckpointCloseableIterable'idir. Yineleyici oluşturmak ve döndürmek için
CheckpointClosableIterableImpl.Builder
sınıfını kullanabilirsiniz. Aşağıdaki kod snippet'inde her bir eşlemenin nasıl listeye paketleneceği ve bu listeden nasıl yineleyici 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, Iterator döndürür. Bu, IdentityGroup nesnelerinin CheckpointCloseableIterable'idir.
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ı 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.