Google Cloud Search, varsayılan olarak yalnızca Google Cloud Directory'deki Google kimliklerini tanır. Kurumsal kimlikleri, Cloud Search'ün kullandığı Google kimlikleriyle senkronize etmek için kimlik bağlayıcıları kullanın.
Google, kimlik bağlayıcıları geliştirmek için şu seçenekleri sunar:
Identity Connector SDK: Java programcıları için en iyisidir. 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ı kullanmak için Identity Connector SDK'yı kullanarak kimlik bağlayıcı oluşturma başlıklı makaleyi inceleyin.
Düşük düzeyli REST API ve API kitaplıkları: Java programcıları dışındaki kullanıcılar için en uygun seçenektir. REST API'yi kullanarak kimlik bağlayıcı oluşturmak için kullanıcıları eşlemeyle ilgili Directory API: Kullanıcı Hesapları'na, grupları eşlemeyle ilgili Google Cloud Identity belgelerine bakın.
Identity Connector SDK'sını kullanarak bir kimlik bağlayıcısı oluşturma
Tipik bir kimlik bağlayıcı şu görevleri yerine getirir:
- Bağlayıcıyı yapılandırır.
- Kimlik sisteminizdeki kullanıcıları alır ve Google'a gönderir.
- Kimlik sisteminizdeki grupları alır ve Google'a gönderir.
Bağımlılıkları ayarlama
Bu bağımlılıkları derleme dosyanıza ekleyin.
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ı, depo kimliğiniz gibi parametreler için bir yapılandırma dosyası kullanır.
Parametreleri anahtar-değer çiftleri olarak tanımlayın. Örneğin, api.sourceId=1234567890abcdef.
Google Cloud Search SDK, tüm bağlayıcılar için Google tarafından sağlanan parametreleri içerir. Yapılandırma dosyanızda aşağıdakileri belirtmeniz gerekir:
- İçerik bağlayıcı:
api.sourceIdveapi.serviceAccountPrivateKeyFileöğelerini beyan edin. Bunlar, deponuzu ve erişim için gereken özel anahtarı tanımlar.
- Kimlik bağlayıcı: Harici kimlik kaynağınızı tanımlamak için
api.identitySourceIdöğesini bildirin. Kullanıcı senkronizasyonu içinapi.customerId(Google Workspace hesabınızın benzersiz kimliği) değerini de beyan edin.
Diğer Google tarafından sağlanan parametreleri yalnızca varsayılan değerlerini geçersiz kılmak için bildirin. Kimlik ve anahtar oluşturma hakkında ayrıntılı bilgi için Google tarafından sağlanan parametreler başlıklı makaleyi inceleyin.
Yapılandırma dosyanızda depoya özgü parametreler de tanımlayabilirsiniz.
Yapılandırma dosyasını bağlayıcıya iletme
Yapılandırma dosyasını iletmek için config sistem özelliğini ayarlayın. Bağlayıcıyı başlatırken -D
argümanını kullanın. Örneğin:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Bu bağımsız değişkeni atlarsanız SDK, yerel dizinde connector-config.properties adlı bir dosyayı kullanmaya çalışır.
Şablon sınıfı kullanarak tam senkronizasyon kimlik bağlayıcısı oluşturma
SDK, tüm kullanıcıları ve grupları deponuzdan senkronize etmek için bir FullSyncIdentityConnector şablonu içerir. Bu bölümde, özelliğin nasıl kullanılacağı açıklanmaktadır.
Bu bölümde, kimlikleri CSV dosyalarından okuyan IdentityConnectorSample.java örneğindeki
koddan bahsedilmektedir.
Bağlayıcı giriş noktasını uygulama
Giriş noktası main() yöntemidir. Application örneği oluşturur ve bağlayıcıyı çalıştırmak için start() işlevini çağırır.
application.start()'ı aramadan önce FullSyncIdentityConnector şablonunu oluşturmak için IdentityApplication.Builder'ı kullanın.
SDK, initConfig() yöntem çağrılarınızdan sonra main() yöntemini çağırır
Application.build(). initConfig() yöntemi:
Configurationöğesinin daha önce başlatılmadığından emin olun.Configurationnesnesini Google tarafından sağlanan anahtar/değer çiftleriyle başlatır.
Depo arayüzünü uygulama
Repository nesnesi, depo kimliklerini Google kimlikleriyle senkronize eder. Şablon kullanırken yalnızca belirli yöntemleri geçersiz kılmanız gerekir. FullSyncIdentityConnector için şu yöntemleri geçersiz kılın:
init(): Kurulum ve başlatma için.listUsers(): Tüm kullanıcıları senkronize etmek için.listGroups(): Tüm grupları senkronize etmek için.- (İsteğe bağlı)
close(): Kapatma sırasında temizlik için.
Özel yapılandırma parametrelerini alma
Özel parametreleri Configuration nesnesinden (genellikle init() yönteminde) alın. Aşağıdaki snippet'te CSV yollarının 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
Kullanıcı eşlemelerini almak için listUsers() değerini geçersiz kılın. Bu yöntem, kesintiye uğraması durumunda senkronizasyona devam etmek için bir kontrol noktası kabul eder. Her kullanıcı için:
- Google kimliği ile harici kimlik arasındaki eşlemeyi alın.
- Çifti,
listUsers()tarafından döndürülen yineleyiciye paketleyin.
Kullanıcı eşlemesi alma
Bu snippet, kimlik eşlemelerinin bir CSV dosyasından nasıl alınacağını gösterir:
Kullanıcı eşlemesini bir yineleyiciye paketleme
listUsers() yöntemi, CheckpointCloseableIterable
IdentityUser nesneleri döndürür.
Grup alma
Grupları ve üyelerini almak için listGroups() değerini geçersiz kılın. Bu yöntem, kontrol noktası kabul eder. Her grup için:
- Grubu ve üyelerini alır.
- Bunları
listGroups()tarafından döndürülen yineleyiciye paketleyin.
Grup kimliğini alma
Bu snippet, grupları ve üyeleri bir CSV dosyasından almayı gösterir:
Grubu ve üyeleri bir yineleyiciye paketleme
listGroups() yöntemi, IdentityGroup nesnelerinin CheckpointCloseableIterable değerini döndürür.
Sonraki Adımlar
- (İsteğe bağlı) Kaynakları serbest bırakmak için
close()uygulayın. - (İsteğe bağlı) İçerik bağlayıcı oluşturun.