एपीआई की मदद से भूमिकाएं तय करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

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

अनुमति की सेटिंग के बारे में जानकारी

भूमिका की अनुमतियां, मैनेजमेंट एपीआई यूआरआई पर सेट होती हैं (मैनेज करने के यूज़र इंटरफ़ेस (यूआई) यूआरआई पर नहीं). उदाहरण के लिए, अगर आपको अपने Edge संगठन में, ऐप्लिकेशन डेवलपर इकाइयों के लिए PUT, GET, और/या DELETE अनुमतियां सेट करनी हैं, तो आपको /developers संसाधन पर अनुमतियां सेट करनी होंगी. ऐसा इसलिए, क्योंकि डेवलपर के लिए मैनेजमेंट एपीआई पाथ https://api.enterprise.apigee.com/v1/organizations/{org_name}/developers है. (अनुमतियां तय करते समय, आपको पाथ में संगठन का हिस्सा शामिल करने की ज़रूरत नहीं है. इसकी वजह यह है कि अनुमतियां सिर्फ़ एक संगठन के लिए होती हैं. इस विषय में, management API के ज़रिए बताया गया है.)

आपके पास कुछ खास इकाइयों के लिए भी अनुमतियां सेट करने का विकल्प है. उदाहरण के लिए:

  • अगर आपको किसी एक डेवलपर के लिए अनुमतियां सेट करनी हैं, तो उन्हें /developers/steve@example.com पर सेट करें
  • मुफ़्त एपीआई-प्रॉडक्ट जैसे किसी खास एपीआई प्रॉडक्ट के लिए, उन्हें /apiproducts/free-api-product पर सेट करें
  • किसी खास एनवायरमेंट में मुख्य वैल्यू वाले मैप के लिए, आपको टेस्ट एनवायरमेंट में सभी मुख्य वैल्यू वाले मैप के लिए, /environments/test/keyvaluemaps/fooMap या /environments/test/keyvaluemaps/* जैसी चीज़ों पर अनुमति सेट करनी होगी.

एपीआई का इस्तेमाल करके सेट की गई अनुमतियां:

  • पसंद के मुताबिक बनाई गई भूमिका वाले उपयोगकर्ताओं को उनकी अनुमतियों के मुताबिक मैनेजमेंट एपीआई कॉल करने की अनुमति दें. उदाहरण के लिए, अगर कोई भूमिका सभी एपीआई प्रॉक्सी को रीड ओनली ऐक्सेस देती है, तो उस भूमिका में उपयोगकर्ता List API Proxies API का इस्तेमाल कर सकता है, लेकिन एपीआई प्रॉक्सी प्रॉक्सी एपीआई का इस्तेमाल नहीं कर सकता.
  • तय करें कि पसंद के मुताबिक बनाई गई भूमिका वाले उपयोगकर्ता, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) में क्या देख सकते हैं और क्या कर सकते हैं. उदाहरण के लिए, एपीआई प्रॉक्सी को रीड ओनली ऐक्सेस देने से, एपीआई प्रॉक्सी पेज पर, +एपीआई प्रॉक्सी का ऐक्सेस और एपीआई को मिटाने वाले बटन का ऐक्सेस बंद हो जाता है.

जिन संसाधनों और पाथ के लिए अनुमतियां सेट की जा सकती हैं उन्हें देखने के लिए, अलग-अलग रिसॉर्स यूआरएल पर मैनेजमेंट एपीआई का रेफ़रंस देखें.

भूमिका को मैनेज करने के बारे में पूरी जानकारी पाने के लिए, उपयोगकर्ता की भूमिकाएं एपीआई देखें.

सिंटैक्स और प्राथमिकता

अनुमति की सेटिंग में "बाद में सब कुछ" दिखाने के लिए, तारे के निशान वाले वाइल्ड कार्ड (*) का इस्तेमाल किया जा सकता है. हालांकि, अगर आपने कोई खास अनुमति (जैसे कि /developers/*) सेट किए बिना सिर्फ़ पैरंट रिसॉर्स (जैसे कि /developers) पर अनुमतियां सेट की हैं, तो /developers/* जैसी सभी अनुमतियां, सभी पर लागू होती हैं.

PUT, अनुमतियों में POST के रूप में भी काम करती है.

इसके लिए, सामान्य और संसाधनों के हिसाब से ज़्यादा अनुमतियां दी जा सकती हैं. अनुमतियां ओवरलैप होने पर, ज़्यादा जानकारी वाली सेटिंग को प्राथमिकता दी जाती है. उदाहरण के लिए, मान लें कि नीचे दी गई अनुमतियां "developeradmin" की भूमिका पर सेट की गई हैं:

  • /developers पर PUT
  • /developers/* पर जाएं

इसका मतलब है कि डेवलपरएडमिन ये काम कर सकता है:

  • डेवलपर बनाएं, लेकिन किसी डेवलपर या किसी सब-यूनिट को अपडेट न करें (क्योंकि उस पाथ पर GET की ज़्यादा खास अनुमति दी गई है).
  • डेवलपर या उप-इकाई का इस्तेमाल करें, लेकिन सभी डेवलपर की सूची न पाएं.

उन अनुमतियों की पूरी सूची के लिए अनुमतियों का रेफ़रंस देखें जिन्हें एपीआई की मदद से सेट किया जा सकता है.

"डेवलपमेंट" नाम की नई कस्टम भूमिका बनाएं

डेवलपर को एपीआई प्रॉक्सी देखने, बनाने, और अपडेट करने में मदद करने के लिए, 'डेवलपमेंट' भूमिका बनाएं.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "development" } ] }'

डेवलपमेंट रोल में अनुमतियां जोड़ें

Edge आर्टफ़ैक्ट के पूरे ग्रुप (जैसे कि सभी /apps, /apis, /apiproducts वगैरह) के साथ-साथ अलग-अलग आर्टफ़ैक्ट (जैसे कि कोई ऐप्लिकेशन, एपीआई प्रॉक्सी या एपीआई प्रॉडक्ट) पर सेट की जा सकने वाली अनुमतियां GET, PUT, और DELETE हैं.

GET की मदद से लोग कोई भी एपीआई देख सकते हैं. इसमें, एपीआई प्रॉक्सी कॉन्फ़िगरेशन फ़ाइलें, उनसे जुड़ी नीतियां, JavaScript, XSLT फ़ाइलें वगैरह शामिल हैं. एपीआई पर PUT अनुमति की मदद से, डेवलपर एपीआई प्रॉक्सी बना सकते हैं, उनमें बदलाव कर सकते हैं, इंपोर्ट कर सकते हैं, एक्सपोर्ट कर सकते हैं, उन्हें डिप्लॉय या हटा सकते हैं.

पाथ एट्रिब्यूट, उस आर्टफ़ैक्ट के बारे में बताता है जिस पर आपने अनुमतियां सेट की हैं. उदाहरण के लिए, /applications, /apps, /apiproducts, /developers या /reports.

curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/development/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "put", "get" ]}'

कोई भूमिका बनाएं: टेस्टिंग

क्वालिटी इंजीनियर को 'टेस्टिंग' भूमिका बनाएं, ताकि वे एपीआई प्रॉक्सी और उनका कॉन्टेंट (जिनमें नीतियां भी शामिल हैं) देख सकें.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles -H "Content-type:application/json" -X POST -d'{ "role" : [ { "name" : "testing" } ] }'

टेस्ट करने वाली भूमिका में अनुमतियां जोड़ें

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

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/userroles/testing/permissions -H "Content-type:application/json" -X POST -d'{"path" : "/applications","permissions" : [ "get" ]}'

Edge को इंस्टॉल करने के लिए कंपनी की इमारत में, कम से कम ये अनुमतियां सेट होनी चाहिए, ताकि उपयोगकर्ता को Edge यूज़र इंटरफ़ेस (यूआई) में लॉग इन करने की अनुमति मिल सके:

{"path" : "/","permissions" : [ "get" ]}
{"path" : "/*","permissions" : [ ]}
{"path" : "/environments","permissions" : [ "get" ]}
{"path" : "/userroles","permissions" : [ "get" ]}

ये अनुमतियां सेट करने के लिए, नीचे दिए गए cURL कमांड का इस्तेमाल करें:

curl -H "Content-Type:application/json" -u email:password \
-X POST \
http://<ms-IP>:8080/v1/organizations/{org_name}/userroles/testing/resourcepermissions  \
-d '{
 "resourcePermission" : [ 
   {
    "path" : "/",
    "permissions" : [ "get" ]
   }, 
{
    "path" : "/*",
    "permissions" : []
   },
{
    "path" : "/environments",
    "permissions" : [ "get" ]
   },
   {
    "path" : "/userroles",
    "permissions" : [ "get"]
   }
  ]
}'

जहां <ms-IP> Edge मैनेजमेंट सर्वर का आईपी पता या डीएनएस नाम है.

टेस्टिंग के लिए उपयोगकर्ता की भूमिका जोड़ें

किसी उपयोगकर्ता को उपयोगकर्ता की भूमिका देने के लिए:

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "testing"} ] }'

उपयोगकर्ता के तौर पर एपीआई देखें

उपयोगकर्ता के नाम पर काम करें और एपीआई प्रॉक्सी देखने के लिए एपीआई सेवाओं से अनुरोध करें. उपयोगकर्ता को एपीआई के कॉन्टेंट के साथ उसे देखने की सुविधा मिलनी चाहिए.
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis
$ curl -u justauser@apigee.com:secret https://api.enterprise.apigee.com/v1/o/{org_name}/apis/{api_name}/policies

टेस्टिंग रोल में उपयोगकर्ता के तौर पर एपीआई बनाएं

एपीआई प्रॉक्सी बनाने के लिए, उपयोगकर्ता के नाम पर काम करें और एपीआई सेवाओं से अनुरोध करें. एपीआई सेवाएं, अनुरोध को अस्वीकार कर देंगी. ऐसा इसलिए, क्योंकि 'जांच' से उपयोगकर्ता को एपीआई बनाने की अनुमति नहीं मिलती.

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

उपयोगकर्ता को डेवलपमेंट भूमिका में जोड़ें

अब उपयोगकर्ता के लिए 'डेवलपमेंट' भूमिका का प्रावधान करें.

$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/users/justauser@apigee.com/userroles -H "Content-type:application/json" -X POST -d'{"role" : [ {"name" : "development"} ] }'

डेवलपमेंट रोल में उपयोगकर्ता के तौर पर एपीआई बनाएं

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

$ curl -u justauser@apigee.com:secret -H "Content-Type: application/json" https://api.enterprise.apigee.com/v1/o/{org_name}/apis -X POST -d'{"name" : "rbacTestApi"}'

किसी उपयोगकर्ता के लिए उपयोगकर्ता की भूमिकाएं पाएं

संगठन के एडमिन के तौर पर, आपके पास किसी भी समय किसी उपयोगकर्ता (सभी संगठनों में) की उपयोगकर्ता भूमिकाओं की सूची देखने का विकल्प होता है:

$ curl -u email:password -X GET https://api.enterprise.apigee.com/v1/users/justauser@apigee.com/userroles