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

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

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

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

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

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

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

apigee-ssoadminapi.sh की मदद से मशीन उपयोगकर्ता बनाएं

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

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

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

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

    QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?

    जगह:

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

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

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

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

apigee-ssoadminapi.sh यूटिलिटी के बजाय, Edge मैनेजमेंट एपीआई का इस्तेमाल करके मशीन उपयोगकर्ता बनाया जा सकता है.

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 यूज़र इंटरफ़ेस (यूआई) में लॉग इन करें.
  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. Bearer हेडर के तौर पर ऐक्सेस टोकन को Edge मैनेजमेंट एपीआई कॉल में पास करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
    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'