Apigee, get_token और acurl यूटिलिटी उपलब्ध कराता है, ताकि Apigee SSO और Edge मैनेजमेंट एपीआई के साथ इंटरैक्शन को आसान बनाया जा सके. ये टूल, टोकन जनरेट करने, कैश मेमोरी में सेव करने, रीफ़्रेश करने, और इंजेक्ट करने की प्रोसेस को अपने-आप मैनेज करते हैं.
यूटिलिटी, /opt/apigee/apigee-openldap/bin/ पर OpenLDAP नोड पर इंस्टॉल की जाती हैं.
get_token यूटिलिटी
get_token यूटिलिटी, ओआईडीसी/OAuth2 ऐक्सेस और रीफ़्रेश टोकन हासिल करने के लिए ज़िम्मेदार है. यह पुष्टि करने के दो मुख्य फ़्लो के साथ काम करता है. साथ ही, इसमें पहले से मौजूद टोकन कैश मेमोरी की सुविधा शामिल है.
पुष्टि करने के फ़्लो
- डिवाइस कोड फ़्लो (आरएफ़सी 8628): इसे ऐसे लोगों के लिए डिज़ाइन किया गया है जो बाहरी आइडेंटिटी प्रोवाइडर (जैसे कि एसएएमएल, Okta या OIDC) के ज़रिए पुष्टि करते हैं. अगर सिर्फ़ ईमेल पता (
-u <email>) पास किया जाता है, तो यूटिलिटी इस फ़्लो को शुरू करती है. इसके बाद, आपको ब्राउज़र में अनुमति देने के लिए, एक यूआरएल और कोड दिखता है. - पासवर्ड ग्रांट (आरओपीसी): इसे हेडलेस मशीन के उपयोगकर्ताओं और ऑटोमेटेड स्क्रिप्ट के लिए डिज़ाइन किया गया है. अगर आपने उपयोगकर्ता नाम और पासवर्ड (
-u <user>:<password>), दोनों पास किए हैं, तो यह ब्राउज़र इंटरैक्शन के बिना, सीधे Apigee एसएसओ के ज़रिए पुष्टि करता है.
टोकन को कैश मेमोरी में सेव करना और अपने-आप रीफ़्रेश होना
get_token यूटिलिटी, टोकन की लाइफ़साइकल को अपने-आप मैनेज करती है. इसलिए, आपको टोकन की समयसीमा खत्म होने के समय को मैन्युअल तरीके से ट्रैक करने की ज़रूरत नहीं पड़ती:
- कैश मेमोरी की जांच: इस विकल्प को चुनने पर,
get_token~/.sso-cli/<username>-token.jsonपर मौजूद लोकल कैश मेमोरी की जांच करता है. अगर कोई मान्य टोकन मौजूद है और उसकी समयसीमा खत्म नहीं हुई है, तो वह फिर से पुष्टि किए बिना टोकन का फिर से इस्तेमाल करता है. - अपने-आप रीफ़्रेश होना: अगर कैश मेमोरी में सेव किए गए ऐक्सेस टोकन की समयसीमा खत्म हो गई है, लेकिन एक मान्य रीफ़्रेश टोकन मौजूद है, तो यूटिलिटी Apigee एसएसओ पर रीफ़्रेश टोकन को नए ऐक्सेस टोकन से अपने-आप बदल देती है.
एनवायरमेंट वैरिएबल
आपके पास इन एनवायरमेंट वैरिएबल का इस्तेमाल करके, get_token के काम करने के तरीके को अपनी पसंद के मुताबिक बनाने का विकल्प है:
SSO_LOGIN_URL: Apigee SSO का यूआरएल (डिफ़ॉल्ट:http://localhost:9099).CLIENT_ID: OAuth2 क्लाइंट आईडी (डिफ़ॉल्ट:edgecli).CLIENT_SECRET: OAuth2 क्लाइंट सीक्रेट (डिफ़ॉल्ट:edgeclisecret).
acurl यूटिलिटी
acurl यूटिलिटी, स्टैंडर्ड curl के लिए एक पारदर्शी रैपर है. इससे यह पक्का होता है कि हर एपीआई अनुरोध में मान्य धारक टोकन शामिल हो.
- आर्ग्युमेंट को अलग करना: यह यूटिलिटी,
-u <user:password>या-u <user>आर्ग्युमेंट को निकालती है और उसेget_tokenको पास करती है. यह अन्य सभी तर्कों (जैसे कि-X,-H,-d,-v,-s) को सीधे स्टैंडर्डcurlपर फ़ॉरवर्ड करता है. - लागू करना:
get_tokenसे मान्य टोकन पाने या वापस पाने के बाद,acurl,curlके इनवोकेशन में-H "Authorization: Bearer <token>"हेडर को अपने-आप जोड़ देता है.
इस्तेमाल करने के उदाहरण
उदाहरण 1: किसी उपयोगकर्ता के लिए इंटरैक्टिव लॉगिन
/opt/apigee/apigee-openldap/bin/acurl -u developer@apigee.com http://MS_IP_DNS:8080/v1/organizations
यह कमांड, उपयोगकर्ता को बाहरी आईडीपी के ज़रिए पुष्टि करने के लिए ब्राउज़र पर जाने का अनुरोध करती है. इसके बाद, पुष्टि हो जाने पर एपीआई कॉल को लागू करती है.
उदाहरण 2: मशीन यूज़र के लिए हेडलेस लॉगिन
/opt/apigee/apigee-openldap/bin/acurl -u jenkins-bot@apigee.com:Secret123! http://MS_IP_DNS:8080/v1/organizations
यह कमांड, पासवर्ड ग्रांट के ज़रिए सीधे तौर पर पुष्टि करता है और एपीआई कॉल को तुरंत लागू करता है.
तीसरा उदाहरण: कैश मेमोरी में सेव किए गए टोकन का फिर से इस्तेमाल करना
/opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/users
पिछले चरणों में टोकन को कैश मेमोरी में सेव किया गया था. इसलिए, आपको -u आर्ग्युमेंट फिर से देने की ज़रूरत नहीं है. यह यूटिलिटी, कैश किए गए टोकन को पढ़ती है और उसे अपने-आप इंजेक्ट करती है.