6

Google bulut platformunda çalışıyorum ve Google bulut depolama JSON API'sı kullanarak Google Cloud depolama alanından nesne depolamaya ve geri çağırmaya çalışıyorum gibi web dışı java uygulamasını kullanarak bulut işlevine erişmem gerekiyor.Google bulut platformunda kimlik doğrulaması

Uygulamamın kimliğini doğrulamak için bunlara erişmeden önce yetkilendirme API'sini yetkilendirilmiş erişim yetkisi buldum. Ben

  • API Anahtarı
  • OAuth İstemci Kimliği
  • Servisi olarak kimlik bilgileri ile üç seçenek sona Google Cloud platformundan kimlik bilgilerini almaya çalışıyordum

    Anahtar hesap

GCP dokümantasyonunu inceledim, ancak bunlar arasında ayrım yapan net bilgiler elde edemedim, GCP’ye oldukça yeni geldim, bu yüzden lütfen açıklayan herhangi bir bilgiyi veya blog bağlantısını paylaşabilir misiniz? Bu kimlik bilgilerini, Google Cloud istemci Kitaplığı API'sini nasıl kullanacağınızı gösteren örnek Java programlarıyla birlikte yazın. https://cloud.google.com/docs/authentication

Google'ın çeşitli kimlik doğrulama mekanizmaları farklı amaçlara hizmet, bu yaz sorulduğunda olanları açıklayalım ve sizin için doğru seçim daha netleşecektir:

cevap

6

Google Cloud Platform'un Auth Kılavuzu burada kesin bir kaynaktır.

API anahtarları, API aramasını hangi proje adına yaptığınızı belirlemenize olanak sağlar. Projeniz adına yapılan istekleri kotalarla sınırlamakta fayda var. Bir API anahtarı genellikle istemci uygulamalarında ve web sayfalarında gömülü olduğundan genellikle güvenli kabul edilmez. Bu nedenle, API anahtarları kimlik doğrulama veya yetkilendirme sağlamaz. Anonim bir kullanıcı aramayı yapamazsa, bir API anahtarı yeterli olmaz.

Sonraki sayfa, OAuth. OAuth, gerçek kullanıcı kullanıcılarını Google hesaplarıyla kimliği doğrulanmış API çağrılarına dönüştürmenin bir yoludur. Yerel olarak gcloud gibi bir uygulamayı çalıştırıyormuşsunuz gibi, ya da Google Cloud ile ilgili bir şeyler yapmalarına izin vermesi gereken bir web sitesi oluşturuyorsanız, kendiniz gibi bir şey yapmak istediğinizde kullanacaksınız. adına. Bu süreç, istemci kimliklerini ve sırları içerir ve yenileme belirteçleri ve erişim belirteçleri ile biter. Birkaç farklı lezzet var.

Son olarak hizmet hesapları. Uygulamanız belirli bir insan olarak değil, kendi başına bir yerde çalışıyorsa, uygulamanız için bir hizmet hesabı oluşturarak bunu modellemelisiniz. Hizmet hesapları, şifresi olmayan özel kullanıcılardır. Bunun yerine, kendileriyle kimlik doğrulaması yapabilmeleri için uygulama ile dağıtılabilen özel anahtar dosyalarına sahipler. Bu genellikle uygulamanızın belirli kullanıcılar adına çalıştırılması gerekmedikçe (örneğin, gcloud veya gsutil gibi bir bulut yönetim programı) istemediğiniz şeydir.

Google Cloud Java library, uygulamanız App Engine veya GCE'de çalışıyorsa, auth'u yapılandırma gereksinimini ortadan kaldıran "Application Default Credentials" adlı bir özellik sağlar. Kodu, yerel bir makinede kendiniz çalıştırmak istiyorsanız ve gcloud yüklü ise, auth'u da halledebilir.bu hiç auth hakkında bir şey söylemez nasıl

Storage storage = StorageOptions.getDefaultInstance().getService(); 
Bucket bucket = storage.create(BucketInfo.of("myBucketName")); 

Uyarı:

İşte GCS kova yaratan bir Bilişim Altyapısı programının an example bu. Uygulama varsayılan kimlik bilgileri, uygun hizmet hesabını veya kullanıcıyı seçmeye özen gösterir. Gerçi böyle bir ortamda olduğunuzu varsayar.

Storage storage = StorageOptions.newBuilder() 
    .setProjectId(PROJECT_ID) 
    .setCredentials(GoogleCredentials.fromStream(
     new FileInputStream(PATH_TO_JSON_KEY))).build(); 
Bucket bucket = storage.create(BucketInfo.of("myBucketName")); 

Ve işte bu: Bir özel anahtar .json dosyası varsa, bunun yerine bu yapardı!

+0

Anında yanıtlama için teşekkürler ve bana güvenilir bir seçim yapmak için teşekkürler! GoogleCredentials sınıfı, hizmet hesabı anahtarını kullanarak kullanıcının kimliğini doğrular. Bu nedenle, tüm bu üçü kullanarak kimlik doğrulaması uygulamanız gerektiğinden, OAuth istemci kimliği ve API anahtarının nasıl kullanılacağını gösteren API snippet'i de sağlayabilir misiniz? lütfen google bulut istemci kütüphanesi API örneği sağlayın –

+0

OAuth'un çeşitli tatları vardır. İyi cevap vermek için uygulamanızın ne yapmak istediğini daha iyi bilmeliyim. Burada Google OAuth için genel bir kılavuz var: https://developers.google.com/identity/protocols/OAuth2 ve bir Java kütüphanesi ve örnekleri: https://developers.google.com/api-client-library/java/ google-oauth-java-client/oauth2 –

+0

Basit bir uygulama geliştiriyorum, GCS'den nesneleri getirme ve yerel olarak işleme koyma, şimdi OAuth istemcisi gibi kullanıcı kimlik doğrulamalarının istediği kimlik bilgilerini kullanmak için seçenekler vermem gerekiyor. Kimlik veya Hizmet hesabı anahtarı vb. Kimlik doğrulama için JSON hizmet hesabı anahtarını kullanabilir ve OAuth İstemci Kimliği'nden alınan İstemci gizli JSON dosyasını kullanmak ister. Lütfen 'google bulut istemci kütüphanesi API örneği' –