प्राधिकरण

ऐप्लिकेशन, ज़ीरो-टच रजिस्ट्रेशन की सुविधा वाले ग्राहक एपीआई को कॉल करने की अनुमति देते हैं OAuth का इस्तेमाल करके. यह दस्तावेज़ इसके लिए API के प्राधिकरण के बारे में बताता है एंटरप्राइज़ मोबिलिटी मैनेजमेंट (ईएमएम) देने वाली कंपनियां और एंटरप्राइज़ आईटी डेवलपर. इस दस्तावेज़ को पढ़ने के बाद, आपको अपने ऐप्लिकेशन में एपीआई अनुरोधों को अनुमति देने का तरीका पता चलेगा को पढ़ें और अपने ऐप्लिकेशन के उपयोगकर्ताओं को खाते की ज़रूरी शर्तों के बारे में बताएं.

अनुमति देने का क्विकस्टार्ट

  • ज़ीरो-टच रजिस्ट्रेशन एपीआई की मदद से, Google Cloud Platform प्रोजेक्ट को सेट अप करने के लिए और OAuth क्लाइंट सीक्रेट जोड़ने में मदद मिलती है, तो इस विज़र्ड को चलाएं.
  • Java, .NET के लिए क्विकस्टार्ट सैंपल कोड बनाएं या Python. Google की एपीआई क्लाइंट लाइब्रेरी का इस्तेमाल करके, भाषाएं.

खास जानकारी

डिवाइस और ग्राहक संसाधन संबंध

  1. एक या उससे ज़्यादा आईटी एडमिन, बिना किसी मदद के रजिस्टर करने की सुविधा वाले ग्राहक खाते के उपयोगकर्ता हैं.
  2. आईटी एडमिन, अपनी पहचान की पुष्टि करने के लिए Google खाते का इस्तेमाल करते हैं.
  3. एपीआई अनुरोध, OAuth2 टोकन पास करते हैं, ताकि किसी आईटी एडमिन की ओर से एपीआई अनुरोधों को अनुमति दी जा सके.

ग्राहक खाते

किसी संगठन के कॉन्फ़िगरेशन, डिवाइस, और (आईटी एडमिन) उपयोगकर्ता, ग्राहक खाता. ग्राहक खाता, ग्रुप की तरह होता है और यह किसी व्यक्ति का खाता नहीं होता. रीसेलर, ग्राहक को तब सेट अप करता है, जब संगठन पहली बार पहले से तैयार डिवाइस के लिए डिवाइस खरीदता है. आईटी एडमिन, अन्य उपयोगकर्ताओं को यहां मैनेज करते हैं अपने संगठन के लिए ज़ीरो-टच रजिस्ट्रेशन पोर्टल का इस्तेमाल कर सकते हैं.

खातों की पहचान करने के लिए, एपीआई अंकों वाले ग्राहक आईडी का इस्तेमाल करता है. आपके पास ग्राहक आईडी पास करने का विकल्प होता है का इस्तेमाल करके, एपीआई तरीकों को कॉल करते समय यूआरएल पाथ का हिस्सा बनाया जा सकता है. किसी भी एपीआई तरीके को कॉल करने से पहले, आपके ऐप्लिकेशन को उपयोगकर्ता का ग्राहक आईडी पाना होगा.

नीचे दिए गए उदाहरण में, उस उपयोगकर्ता के लिए ग्राहक खाते हासिल करने का तरीका बताया गया है एपीआई कॉल को अनुमति देता है:

Java

AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list();
accountRequest.setPageSize(100);
CustomerListCustomersResponse accountResponse = accountRequest.execute();

List<Company> customers = accountResponse.getCustomers();
if (customers == null || customers.isEmpty()) {
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    System.out.println("No zero-touch enrollment account found.");
} else {
    // Print the customers in this page.
    for (Company customer : customers) {
        System.out.format("%s\tcustomers/%d\n",
              customer.getCompanyName(), customer.getCompanyId());
    }
}

.NET

CustomersResource.ListRequest accountRequest = service.Customers.List();
accountRequest.PageSize = 100;
CustomerListCustomersResponse accountResponse = accountRequest.Execute();
IList<Company> customers = accountResponse.Customers ?? new List<Company>();
if (customers.Count == 0)
{
    // No accounts found for the user. Confirm the Google Account
    // that authorizes the request can access the zero-touch portal.
    Console.WriteLine("No zero-touch enrollment account found.");
}
foreach (Company customer in customers)
{
    Console.WriteLine("{0}\tcustomers/{1}",
                      customer.CompanyName,
                      customer.CompanyId);
}

Python

response = service.customers().list(pageSize=100).execute()
if 'customers' not in response:
  # No accounts found for the user. Confirm the Google Account
  # that authorizes the request can access the zero-touch portal.
  print('No zero-touch enrollment account found.')
  response['customers'] = []

for customer in response['customers']:
  print('{0}\tcustomers/{1}'.format(
      customer['companyName'], customer['companyId']))

अपने ऐप्लिकेशन में, आपको खाते के खोज नतीजों वाले पेजों पर जाना होगा, क्योंकि ऊपर दिया गया उदाहरण सिर्फ़ शुरुआती 100 खातों को प्रिंट करता है. इसका तरीका जानने के लिए, पढ़ें पेज किए गए नतीजे.

किसी संगठन के पास आम तौर पर एक ग्राहक खाता होता है, लेकिन संगठन बड़े संगठन होते हैं हर डिवीज़न के लिए अलग-अलग ग्राहक खातों का इस्तेमाल कर सकता है. आईटी एडमिन ये काम कर सकता है: आप उस खाते का सदस्य बनने की कोशिश कर रहे हैं, तो आपका ऐप्लिकेशन लोगों को नए ग्राहक खातों का इस्तेमाल करते हैं. अपने ऐप्लिकेशन में, companyName मान.

उपयोगकर्ता

आईटी एडमिन, उन एपीआई अनुरोधों को अनुमति देते हैं जिन्हें आपका ऐप्लिकेशन उनकी ओर से भेजता है. यहां की यात्रा पर हूं अनुमति देते हैं, तो आपके ऐप्लिकेशन के उपयोगकर्ता को ये काम करने होंगे:

  1. किसी Google खाते को उसके ईमेल पते से जोड़ें.
  2. एक ही ईमेल पते का इस्तेमाल करके, किसी ग्राहक खाते से जुड़ें.
  3. ज़ीरो-टच रजिस्ट्रेशन की सुविधा से जुड़ी ग्राहक की सेवा की शर्तें (सेवा की शर्तें) स्वीकार करें.

अपने ऐप्लिकेशन के उपयोगकर्ताओं को सेट अप करने में मदद करने के लिए, शुरू करें में दिए गए आईटी एडमिन के लिए हमारे दिशा-निर्देशों का फिर से इस्तेमाल करें. साथ ही, अपने दस्तावेज़ में Google खाता जोड़ें.

यूज़र मैनेजमेंट

'पहले से तैयार डिवाइस' सुविधा की मदद से, आईटी एडमिन अपने ग्राहक खातों के लिए उपयोगकर्ताओं को मैनेज करते हैं रजिस्ट्रेशन पोर्टल पर जाएं. ग्राहक खाते के उपयोगकर्ताओं की भूमिका मालिक या एडमिन. दोनों भूमिकाओं के पास ग्राहक एपीआई का ऐक्सेस एक जैसा है, लेकिन मालिक दूसरे उपयोगकर्ताओं को मैनेज कर सकता है.

सेवा की शर्तों के तहत स्वीकार की जाने वाली शर्तें

इससे पहले कि आपके ऐप्लिकेशन के उपयोगकर्ता, एपीआई कॉल को अनुमति दे सकें, उन्हें नए अनुरोध को स्वीकार करना होगा सेवा की शर्तें ऐसा तब होता है, जब आईटी एडमिन पहली बार ज़ीरो-टच रजिस्ट्रेशन की सुविधा का इस्तेमाल करते हैं या जब हम सेवा की शर्तें अपडेट करें. जब कोई उपयोगकर्ता सेवा की नई शर्तों को स्वीकार नहीं करता है, तो एपीआई एचटीटीपी 403 Forbidden स्टेटस कोड और जवाब के मुख्य हिस्से में यह है TosError.

जब उपयोगकर्ता साइन इन करते हैं, तो पोर्टल उन्हें सेवा की नई शर्तें स्वीकार करने के लिए अपने-आप सूचना देता है. आपके ऐप्लिकेशन में इन तरीकों के सुझाव मिल सकते हैं. इसके लिए, 'नियमों को मैनेज करें' की शर्तें पढ़ें सेवा सेक्शन में जाएं.

अपने ऐप्लिकेशन में अनुमति जोड़ें

आपका ऐप्लिकेशन, ग्राहक एपीआई को जो भी अनुरोध भेजता है उसमें अनुमति शामिल होनी चाहिए टोकन. इस टोकन से Google आपके ऐप्लिकेशन की पहचान भी करता है. क्योंकि ग्राहक API उपयोगकर्ता डेटा को ऐक्सेस करता है, तो प्राधिकरण डेटा शामिल है. आपका ऐप्लिकेशन, OAuth 2.0 का इस्तेमाल करके, आईटी एडमिन को एपीआई ऐक्सेस करने की अनुमति देता है प्रोटोकॉल.

निर्देश

हम Java, .NET, और Python ऐप्लिकेशन. अगर किसी दूसरी भाषा का इस्तेमाल किया जा रहा है, तो अपने है.

अनुमति देने के बारे में ज़्यादा जानने के लिए, Google API को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना लेख पढ़ें.

अनुमति के दायरे

एपीआई की अनुमति वाले दायरे का इस्तेमाल करना अनुरोध करने के लिए आपके ऐप्लिकेशन में https://www.googleapis.com/auth/androidworkzerotouchemm OAuth 2.0 ऐक्सेस टोकन.

स्कोप पैरामीटर, रिसॉर्स और ऑपरेशन के उस सेट को कंट्रोल करता है जिससे ऐक्सेस टोकन को कॉल करने की अनुमति देता है. ऐक्सेस टोकन सिर्फ़ कार्रवाइयों के सेट के लिए मान्य होते हैं और टोकन अनुरोध के दायरे में बताए गए संसाधन. एपीआई में सभी सुविधाएं शामिल हैं सिंगल-टच रजिस्ट्रेशन की सुविधा वाले स्कोप के साथ दिखाए गए तरीकों और संसाधन पढ़ें.

Google API के साथ इस्तेमाल किए जाने वाले ज़ीरो-टच रजिस्ट्रेशन के दायरे के उदाहरण के लिए क्लाइंट लाइब्रेरी में, Java, .NET, और Python. Google API के स्कोप इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, Google API को ऐक्सेस करने के लिए, OAuth 2.0 का इस्तेमाल करना लेख पढ़ें.

एपीआई कुंजियों के इस्तेमाल के सबसे सही तरीके

अपने ऐप्लिकेशन में एपीआई पासकोड का इस्तेमाल करते समय, उन्हें सुरक्षित बनाए रखें. सार्वजनिक रूप से अपने क्रेडेंशियल दिखाने पर, आपके खाते पर जिससे आपके खाते पर अनचाहे शुल्क लग सकते हैं. सेव रखने के लिए अपनी एपीआई कुंजियां सुरक्षित रखने के लिए, इन सबसे सही तरीकों को अपनाएं:

एपीआई कुंजियों को सीधे कोड में न जोड़ें
कोड में एम्बेड की गई एपीआई कुंजियां, सार्वजनिक—उदाहरण के लिए, यदि आप अपने कोड से कुंजियां हटाना भूल जाते हैं शेयर करने. अपने ऐप्लिकेशन में एपीआई पासकोड एम्बेड करने के बजाय, उन्हें यहां सेव करें एनवायरमेंट वैरिएबल या आपके ऐप्लिकेशन के सोर्स से बाहर की फ़ाइलों में पेड़
अपने ऐप्लिकेशन के सोर्स ट्री के अंदर फ़ाइलों में एपीआई कुंजियां सेव न करें
अगर आप फ़ाइलों में एपीआई कुंजियां सेव करते हैं, तो फ़ाइलों को अपने ऐप्लिकेशन के बाहर रखें सोर्स ट्री की मदद से यह पक्का किया जा सकता है कि आपकी कुंजियां, आपके सोर्स कोड कंट्रोल में खत्म न हों सिस्टम. यह खास तौर पर तब ज़रूरी होता है, जब किसी सार्वजनिक सोर्स कोड का इस्तेमाल किया जाता हो मैनेजमेंट सिस्टम, जैसे कि GitHub.
अपनी एपीआई कुंजियों को सिर्फ़ उन आईपी पतों, रेफ़रल यूआरएल, और मोबाइल ऐप्लिकेशन के लिए इस्तेमाल करने की अनुमति दें जिनके लिए इनकी ज़रूरत है
ऐसे आईपी पतों, रेफ़रल देने वाले यूआरएल, और मोबाइल ऐप्लिकेशन पर पाबंदी लगाकर, जो हैं, तो आप हैक या चोरी हुए एपीआई पासकोड के असर को कम कर सकते हैं. Google API Console में, क्रेडेंशियल पेज खोलकर, उन होस्ट और ऐप्लिकेशन के बारे में बताया जा सकता है जो हर पासकोड का इस्तेमाल कर सकते हैं. इसके बाद, अपनी पसंद की सेटिंग के साथ नया एपीआई पासकोड बनाएं या किसी एपीआई पासकोड की सेटिंग में बदलाव करें.
ग़ैर-ज़रूरी एपीआई पासकोड मिटाएं
हमले से जुड़े जोखिम को कम करने के लिए, उन सभी एपीआई पासकोड को मिटा दें जिनका इस्तेमाल नहीं किया जा रहा है ज़्यादा समय की ज़रूरत है.
समय-समय पर अपनी एपीआई कुंजियां फिर से जनरेट करना
Google API कंसोल में जाकर, एपीआई पासकोड फिर से जनरेट किए जा सकते हैं. इसके लिए, क्रेडेंशियल पेज चुनें, एपीआई पासकोड चुनें, और फिर से जनरेट करें पर क्लिक करें कुंजी का इस्तेमाल करें. इसके बाद, नए जनरेट किए गए पासकोड का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन अपडेट करें. नई कुंजियां जनरेट करने के बाद, आपकी पुरानी कुंजियां 24 घंटे तक काम करती रहेंगी.
कोड को सार्वजनिक तौर पर रिलीज़ करने से पहले उसकी समीक्षा करें
अपने कोड को सार्वजनिक तौर पर उपलब्ध कराने से पहले, पक्का करें कि उसमें एपीआई पासकोड या कोई अन्य निजी जानकारी शामिल न हो.