बाहरी आईडीपी के लिए अपने-आप टास्क पूरे करना

Edge API के साथ किसी बाहरी IDP का इस्तेमाल करते समय, आईडीपी इंटरैक्शन से OAuth2 ऐक्सेस और रीफ़्रेश टोकन पाने की प्रोसेस को पासकोड फ़्लो कहा जाता है. पासकोड फ़्लो की मदद से, ब्राउज़र का इस्तेमाल करके एक बार इस्तेमाल होने वाला पासकोड हासिल किया जाता है. इसके बाद, इस पासकोड का इस्तेमाल करके OAuth2 टोकन हासिल किए जाते हैं.

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

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

आईडीपी की सुविधा वाले संगठन के लिए मशीन यूज़र बनाने के दो तरीके हैं:

इनमें से हर तरीके के बारे में, यहां दिए गए सेक्शन में बताया गया है.

जिन संगठनों ने बाहरी आईडीपी को चालू नहीं किया है उनके लिए मशीन उपयोगकर्ता नहीं बनाया जा सकता.

apigee-ssoadminapi.sh की मदद से मशीन यूज़र बनाना

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

मशीन यूज़र को Edge datastore में बनाया और सेव किया जाता है, न कि आपके आईडीपी में. इसलिए, Edge के यूज़र इंटरफ़ेस (यूआई) और Edge Management API का इस्तेमाल करके, मशीन के उपयोगकर्ता को बनाए रखने की ज़िम्मेदारी आपकी नहीं है.

मशीन उपयोगकर्ता बनाते समय, आपको ईमेल पता और पासवर्ड डालना होगा. मशीन उपयोगकर्ता बनाने के बाद, उसे एक या उससे ज़्यादा संगठनों को असाइन करें.

apigee-ssoadminapi.sh की मदद से मशीन यूज़र बनाने के लिए:

  1. मशीन उपयोगकर्ता बनाने के लिए, इस apigee-ssoadminapi.sh कमांड का इस्तेमाल करें:
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    कहां:

    • SSO_ADMIN_NAME, एडमिन का वह उपयोगकर्ता नाम है जिसे Apigee SSO मॉड्यूल को कॉन्फ़िगर करने के लिए इस्तेमाल की गई कॉन्फ़िगरेशन फ़ाइल में SSO_ADMIN_NAME प्रॉपर्टी के ज़रिए तय किया गया है. डिफ़ॉल्ट वैल्यू ssoadmin है.
    • SSO_ADMIN_SECRET, एडमिन का पासवर्ड है. इसे कॉन्फ़िगरेशन फ़ाइल में SSO_ADMIN_SECRET प्रॉपर्टी के तौर पर तय किया गया है.

      इस उदाहरण में, --port और --ssl के लिए वैल्यू शामिल न करें, क्योंकि apigee-sso मॉड्यूल, --port के लिए डिफ़ॉल्ट वैल्यू 9099 और --ssl के लिए http का इस्तेमाल करता है. अगर आपके इंस्टॉलेशन में इन डिफ़ॉल्ट वैल्यू का इस्तेमाल नहीं किया जाता है, तो उन्हें अपनी ज़रूरत के हिसाब से सेट करें.

  2. Edge UI में लॉग इन करें. इसके बाद, अपने संगठनों में मशीन उपयोगकर्ता का ईमेल पता जोड़ें और मशीन उपयोगकर्ता को ज़रूरी भूमिका असाइन करें. ज़्यादा जानकारी के लिए, ग्लोबल उपयोगकर्ताओं को जोड़ना लेख पढ़ें.

Edge Management API की मदद से मशीन उपयोगकर्ता बनाना

apigee-ssoadminapi.sh यूटिलिटी का इस्तेमाल करने के बजाय, Edge management API का इस्तेमाल करके मशीन यूज़र बनाया जा सकता है.

Management API की मदद से मशीन यूज़र बनाने के लिए:

  1. ssoadmin उपयोगकर्ता के लिए टोकन पाने के लिए, यहां दी गई curl कमांड का इस्तेमाल करें. साथ ही, apigee-sso के एडमिन खाते का उपयोगकर्ता नाम भी पाएं:
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    यहां SSO_ADMIN_SECRET वह एडमिन पासवर्ड है जिसे आपने apigee-sso इंस्टॉल करते समय सेट किया था. यह पासवर्ड, कॉन्फ़िगरेशन फ़ाइल में SSO_ADMIN_SECRET प्रॉपर्टी के हिसाब से सेट किया गया था.

    इस कमांड से एक टोकन दिखता है. आपको अगले कॉल के लिए इसकी ज़रूरत होगी.

  2. मशीन उपयोगकर्ता बनाने के लिए, यहां दिया गया curl निर्देश इस्तेमाल करें. साथ ही, पिछले चरण में मिला टोकन पास करें:
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    आपको बाद के चरणों में मशीन उपयोगकर्ता के पासवर्ड की ज़रूरत होगी.

  3. Edge UI में लॉग इन करें.
  4. अपने संगठनों में मशीन उपयोगकर्ता का ईमेल पता जोड़ें और मशीन उपयोगकर्ता को ज़रूरी भूमिका असाइन करें. ज़्यादा जानकारी के लिए, ग्लोबल उपयोगकर्ताओं को जोड़ना लेख पढ़ें.

मशीन उपयोगकर्ता टोकन पाना और उन्हें रीफ़्रेश करना

मशीन उपयोगकर्ता के क्रेडेंशियल पास करके, OAuth2 टोकन पाने और उन्हें रीफ़्रेश करने के लिए, Edge API का इस्तेमाल करें. इसके लिए, पासकोड का इस्तेमाल न करें.

मशीन उपयोगकर्ता के लिए OAuth2 टोकन पाने के लिए:

  1. शुरुआती ऐक्सेस और रीफ़्रेश टोकन जनरेट करने के लिए, इस एपीआई कॉल का इस्तेमाल करें:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      http://Edge_SSO_IP_DNS:9099/oauth/token -s \
      -d 'grant_type=password&username=m_user_email&password=m_user_password'

    टोकन को बाद में इस्तेमाल करने के लिए सेव करें.

  2. ऐक्सेस टोकन को Edge management API कॉल में Bearer हेडर के तौर पर पास करें. इसका उदाहरण यहां दिया गया है:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    यहां org_name, मशीन उपयोगकर्ता वाले संगठन का नाम है.

  3. ऐक्सेस टोकन को बाद में रीफ़्रेश करने के लिए, इस कॉल का इस्तेमाल करें. इसमें रीफ़्रेश टोकन शामिल होता है:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      http://edge_sso_IP_DNS:9099/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'