6

मैं Google क्लाउड प्लेटफ़ॉर्म पर काम कर रहा हूं और मुझे जावा गैर-वेब एप्लिकेशन का उपयोग करके क्लाउड कार्यक्षमता तक पहुंचना है जैसे कि मैं Google क्लाउड स्टोरेज JSON API का उपयोग करके Google क्लाउड स्टोरेज से ऑब्जेक्ट को स्टोर और पुनर्प्राप्त करने का प्रयास कर रहा हूं।Google क्लाउड प्लेटफ़ॉर्म में प्रमाणीकरण

उन तक पहुंचने से पहले मुझे अपने आवेदन को प्रमाणित करने की आवश्यकता है, इसलिए मुझे अधिकृत पहुंच प्राप्त करने के लिए प्राधिकरण API मिला।

मेरे द्वारा Google क्लाउड मंच मैं साख के तीन विकल्पों के साथ अंत के रूप में

  • API कुंजी
  • OAuth क्लाइंट आईडी
  • सेवा से साख पाने के लिए कोशिश कर रहा था कुंजी खाता

मैं जीसीपी दस्तावेज के माध्यम से चला गया लेकिन उन लोगों के बीच स्पष्ट जानकारी प्राप्त नहीं कर रहा हूं, मैं जीसीपी के लिए काफी नया हूं, इसलिए क्या आप कृपया कोई भी जानकारी या ब्लॉग लिंक साझा कर सकते हैं जो स्पष्टीकरण इन प्रमाण-पत्रों को नमूना जावा प्रोग्राम के साथ टाइप करें जो दिखाता है कि Google क्लाउड क्लाइंट लाइब्रेरी API का उपयोग कैसे करें। https://cloud.google.com/docs/authentication

Google के विभिन्न प्रमाणन तंत्र विभिन्न प्रयोजनों की सेवा है, इसलिए मुझे जो आप के बारे में पूछा स्पष्ट करता हूं, और आपके लिए सही विकल्प और अधिक स्पष्ट हो जाना चाहिए:

उत्तर

6

Google मेघ प्लेटफ़ॉर्म के प्रमाणीकरण गाइड यहाँ निश्चित स्रोत है।

एपीआई कुंजी आपको यह पहचानने का एक तरीका प्रदान करती है कि आप किस परियोजना को एपीआई कॉल कर रहे हैं। वे कोटा के साथ आपकी परियोजना की ओर से किए गए अनुरोधों को सीमित करने के लिए अच्छे हैं। एक एपीआई कुंजी को आम तौर पर सुरक्षित नहीं माना जाता है, क्योंकि यह आमतौर पर क्लाइंट ऐप्स और वेब पृष्ठों में एम्बेड किया जाता है। इस वजह से, एपीआई कुंजी कोई प्रमाणीकरण या प्रमाणीकरण प्रदान नहीं करते हैं। यदि कोई अनाम उपयोगकर्ता कॉल करने में सक्षम नहीं होना चाहिए, तो एक एपीआई कुंजी पर्याप्त नहीं होगी।

अगला, ओएथ। OAuth वास्तविक, मानव उपयोगकर्ताओं को Google खाते के साथ प्रमाणित API कॉल में बदलने का एक तरीका है। जब आप अपने आप को कुछ करना चाहते हैं तो आप इसका उपयोग करेंगे, जैसे कि जब आप gcloud स्थानीय रूप से ऐप चला रहे हों, या यदि आप ऐसी वेबसाइट बना रहे हैं जिसे मनुष्यों से Google क्लाउड के साथ काम करने की अनुमति के लिए मनुष्यों से पूछने की आवश्यकता है ओर। इस प्रक्रिया में ग्राहक आईडी और रहस्य शामिल हैं और ताज़ा टोकन और एक्सेस टोकन के साथ समाप्त होता है। कुछ अलग स्वाद हैं।

अंत में, सेवा खाते। यदि आपका ऐप कहीं से भी चल रहा है और किसी विशेष मानव के रूप में नहीं, तो आपको अपने आवेदन के लिए एक सेवा खाता बनाकर मॉडल करना चाहिए। सेवा खाते ऐसे विशेष उपयोगकर्ता होते हैं जिनके पास पासवर्ड नहीं होता है। इसके बजाए, उनके पास निजी कुंजी फाइलें हैं जिन्हें ऐप के साथ तैनात किया जा सकता है ताकि वे स्वयं के रूप में प्रमाणित हो सकें। आमतौर पर यह वही होता है जब तक कि आपके ऐप को विशिष्ट उपयोगकर्ताओं की ओर से चलाने की आवश्यकता न हो (उदा। क्लाउड मैनेजमेंट प्रोग्राम जैसे gcloud या gsutil)।

Google Cloud Java library "Application Default Credentials" नामक एक विशेषताओं को प्रदान करता है, जो ऐप इंजन या जीसीई में आपका एप्लिकेशन चल रहा है, तो एथ कॉन्फ़िगर करने की आवश्यकता को समाप्त करता है। यदि आप स्थानीय मशीन पर कोड को चलाने के लिए चाहते हैं और gcloud स्थापित है तो यह ऑथ का भी ख्याल रख सकता है।

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

सूचना कैसे यह बिल्कुल प्रमाणन के बारे में कुछ नहीं कहा:

यहाँ एक गणना इंजन कार्यक्रम है कि एक GCS बाल्टी बनाता है की an example है। आवेदन डिफ़ॉल्ट प्रमाण-पत्र उचित सेवा खाता या उपयोगकर्ता चुनने का ख्याल रखते हैं। ऐसा लगता है कि आप ऐसे माहौल में हैं, हालांकि। यदि आपके पास एक निजी कुंजी .json फ़ाइल है, तो आप इसके बजाय ऐसा करेंगे:

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

और यही वह है!

+0

त्वरित उत्तर के लिए धन्यवाद और मुझे क्रेडेंशियल पसंद में स्पष्ट कर रहा है !! GoogleCredentials क्लास सेवा खाता कुंजी का उपयोग कर उपयोगकर्ता को प्रमाणित करता है, तो क्या आप एपीआई स्निपेट प्रदान कर सकते हैं जो दिखाता है कि ओएथ क्लाइंट आईडी और एपीआई कुंजी का उपयोग कैसे करें, क्योंकि मुझे इन तीनों का उपयोग करके प्रमाणीकरण को लागू करने की आवश्यकता है। कृपया Google क्लाउड क्लाइंट लाइब्रेरी API उदाहरण –

+0

प्रदान करें OAuth के विभिन्न स्वाद हैं। मुझे यह जानना होगा कि आप अपने ऐप को अच्छी तरह से जवाब देने के लिए क्या करना चाहते हैं। यहां Google OAuth के लिए एक सामान्य मार्गदर्शिका है: https://developers.google.com/identity/protocols/OAuth2 और जावा लाइब्रेरी और यहां उदाहरण: https://developers.google.com/api-client-library/java/ google-oauth-java-client/oauth2 –

+0

मैं एक साधारण अनुप्रयोग विकसित कर रहा हूं कि, सीसीसी के लिए जीसीएस से ऑब्जेक्ट लाने और इसे स्थानीय रूप से संसाधित करने के लिए, अब मुझे प्रमाणीकरण के लिए जो भी क्रेडेंशियल्स प्रकार चाहिए, उसका उपयोग करने के लिए विकल्प देने की आवश्यकता है जैसे ओएथ क्लाइंट आईडी या सेवा खाता कुंजी आदि। मैं प्रमाणीकरण के लिए सेवा खाता कुंजी की JSON फ़ाइल का उपयोग कर सकता हूं और क्लाइंट गुप्त JSON फ़ाइल का उपयोग करना चाहता हूं OAuth क्लाइंट आईडी से। कृपया 'google क्लाउड क्लाइंट लाइब्रेरी एपीआई उदाहरण' का सुझाव दें –

संबंधित मुद्दे