दो स्थितियों में, ज़्यादा अपटाइम के लिए Apigee SSO के कई इंस्टेंस इंस्टॉल किए जाते हैं:
- एक डेटा सेंटर वाले एनवायरमेंट में, Apigee SSO के दो इंस्टेंस इंस्टॉल करें, ताकि ज़्यादा अपटाइम वाला एनवायरमेंट बनाया जा सके. इसका मतलब है कि अगर एसएसओ मॉड्यूल में से कोई एक काम करना बंद कर देता है, तो सिस्टम काम करता रहेगा.
- दो डेटा सेंटर वाले एनवायरमेंट में, दोनों डेटा सेंटर में Apigee SSO इंस्टॉल करें. इससे, अगर एक डेटा सेंटर में Apigee SSO काम करना बंद कर देता है, तो सिस्टम काम करता रहेगा.
एक ही डेटा सेंटर में दो Apigee SSO मॉड्यूल इंस्टॉल करना
आपने एक ही डेटा सेंटर में, अलग-अलग apigee-openldap नोड पर Apigee SSO के दो इंस्टेंस डिप्लॉय किए हैं, ताकि ज़्यादा अपटाइम मिल सके. इस उदाहरण में:
- Apigee SSO के दोनों इंस्टेंस, एक ही Postgres सर्वर से कनेक्ट होने चाहिए. Apigee का सुझाव है कि Apigee एसएसओ के लिए, एक खास Postgres सर्वर का इस्तेमाल करें. इसके लिए, उस Postgres सर्वर का इस्तेमाल न करें जिसे आपने Edge के साथ इंस्टॉल किया है. दोनों इंस्टेंस को
apigee_dexडेटाबेस शेयर करना होगा, ताकि स्टेट परसिस्टेंस की सुविधा काम कर सके. - JWT पासकोड को मैन्युअल तरीके से डिस्ट्रिब्यूट करने की ज़रूरत नहीं है: पुराने यूएए कॉम्पोनेंट के उलट, आधुनिक Apigee एसएसओ, अपने JSON वेब पासकोड सेट (JWKS) और OAuth2 स्टेटस को शेयर किए गए PostgreSQL डेटाबेस में नेटिव तौर पर सेव और सिंक करता है. आपको सभी नोड पर, साइनिंग पासकोड को मैन्युअल तरीके से कॉपी करने की ज़रूरत नहीं है.
- इंटरनल OpenLDAP के लिए क्रेडेंशियल सिंक करना: अगर डिफ़ॉल्ट इंटरनल OpenLDAP का इस्तेमाल किया जा रहा है, तो Apigee एसएसओ, रीड-ओनली सेवा खाते (
cn=sso-reader) का इस्तेमाल करता है. एचए (नोड 2) के लिए, एडमिन को दोनों नोड पर/opt/silent.confमें एक हीSSO_READER_PWसेट करना होगा या नोड 2 परsetup-ssoचलाने से पहले, नोड 1 से नोड 2 पर/opt/apigee/data/apigee-openldap/sso-reader.keyको कॉपी करना होगा.कीफ़ाइल को मैन्युअल तरीके से कॉपी करने के लिए, Node 2 पर ये कमांड चलाएं:
scp node1_ip:/opt/apigee/data/apigee-openldap/sso-reader.key /opt/apigee/data/apigee-openldap/sso-reader.key chown apigee:apigee /opt/apigee/data/apigee-openldap/sso-reader.key chmod 600 /opt/apigee/data/apigee-openldap/sso-reader.key
- Apigee SSO के दो इंस्टेंस के सामने लोड बैलेंसर की ज़रूरत होती है:
- एसएसओ पर टीसीपी या एचटीटीपी हेल्थ चेक करने के लिए, लोड बैलेंसर को कॉन्फ़िगर करें. एचटीटीपी के लिए,
/healthzशामिल करें:http_or_https://edge_sso_IP_DNS:9099/healthz
Apigee SSO की ओर से सेट किए गए पोर्ट की जानकारी दें. पोर्ट 9099 डिफ़ॉल्ट पोर्ट है.
- लोड बैलेंसर की कुछ सेटिंग इस बात पर निर्भर करती हैं कि आपने Apigee एसएसओ पर एचटीटीपीएस चालू किया है या नहीं. ज़्यादा जानकारी के लिए, यहां दिए गए सेक्शन देखें.
- एसएसओ पर टीसीपी या एचटीटीपी हेल्थ चेक करने के लिए, लोड बैलेंसर को कॉन्फ़िगर करें. एचटीटीपी के लिए,
Apigee एसएसओ के लिए एचटीटीपी ऐक्सेस
अगर Apigee SSO को एचटीटीपी से ऐक्सेस किया जा रहा है, तो लोड बैलेंसर को इन कामों के लिए कॉन्फ़िगर करें:
- Apigee एसएसओ से कनेक्ट करने के लिए, एचटीटीपी मोड का इस्तेमाल करें.
- Apigee एसएसओ की तरह ही पोर्ट पर सुनें.
डिफ़ॉल्ट रूप से, Apigee SSO को पोर्ट 9099 पर एचटीटीपी अनुरोधों के लिए सिग्नल पाने के लिए कॉन्फ़िगर किया गया है. इसके अलावा, पोर्ट सेट करने के लिए, अपनी /opt/silent.conf फ़ाइल में SSO_PUBLIC_URL_PORT का इस्तेमाल किया जा सकता है. अगर आपने डिफ़ॉल्ट पोर्ट को बदलने के लिए SSO_PUBLIC_URL_PORT का इस्तेमाल किया है, तो पक्का करें कि लोड बैलेंसर उस पोर्ट पर काम करता हो.
उदाहरण के लिए, हर एसएसओ इंस्टेंस पर पोर्ट को 9033 पर सेट करने के लिए, कॉन्फ़िगरेशन फ़ाइल में यह जोड़ें:
SSO_PUBLIC_URL_PORT=9033
इसके बाद, लोड बैलेंसर को पोर्ट 9033 पर सुनने और पोर्ट 9033 पर एसएसओ इंस्टेंस को अनुरोध भेजने के लिए कॉन्फ़िगर करें. इस मामले में, Apigee SSO के सार्वजनिक जारीकर्ता का यूआरएल यह है:
http://LB_DNS_NAME:9033
Apigee एसएसओ के लिए एचटीटीपीएस ऐक्सेस
एचटीटीपीएस के साथ एचए को कॉन्फ़िगर करने के लिए, इनमें से किसी एक मोड का इस्तेमाल किया जा सकता है. दोनों ही मामलों में, एचटीटीपीएस ऐक्सेस के लिए Apigee SSO को कॉन्फ़िगर करना लेख में दिए गए सेटअप के सिलसिलेवार तरीके अपनाएं.
पहला मोड: लोड बैलेंसर, TLS (SSL_PROXY) को बंद कर देता है
अगर आपका लोड बैलेंसर, टीएलएस कनेक्शन को बंद कर देता है, तो उसे Apigee एसएसओ इंस्टेंस को सामान्य एचटीटीपी ट्रैफ़िक फ़ॉरवर्ड करना होगा.
- अपनी
/opt/silent.confफ़ाइल में,SSO_PUBLIC_URL_SCHEME=httpsऔरSSO_PUBLIC_URL_PORT=443(या लोड बैलेंसर का सार्वजनिक एचटीटीपीएस पोर्ट) सेट करें. - बैकएंड Apigee SSO इंस्टेंस से कनेक्ट करने के लिए, लोड बैलेंसर को एचटीटीपी मोड का इस्तेमाल करने के लिए कॉन्फ़िगर करें.
- लोड बैलेंसर को कॉन्फ़िगर करें, ताकि वह Apigee SSO इंस्टेंस को उनके लोकल एचटीटीपी बाइंड पोर्ट (डिफ़ॉल्ट:
9099) पर अनुरोध फ़ॉरवर्ड कर सके.
मोड 2: Apigee एसएसओ, टीएलएस (SSL_TERMINATION) को खत्म करता है
अगर आपको Apigee एसएसओ इंस्टेंस से टीएलएस कनेक्शन को सीधे खत्म करना है, तो लोड बैलेंसर को एन्क्रिप्ट (सुरक्षित) किए गए ट्रैफ़िक को उन तक पहुंचाना होगा.
- अपनी
/opt/silent.confफ़ाइल मेंSSO_PUBLIC_URL_SCHEME=httpsऔरSSO_PUBLIC_URL_PORT=9443(या अपना चुना हुआ सुरक्षित पोर्ट) सेट करें. - बैकएंड से कनेक्ट करने के लिए, लोड बैलेंसर को टीसीपी मोड (एचटीटीपी मोड नहीं) का इस्तेमाल करने के लिए कॉन्फ़िगर करें. इससे Apigee एसएसओ को टीएलएस को बंद करने की अनुमति मिलती है.
- लोड बैलेंसर को Apigee SSO वाले पोर्ट पर सुनने के लिए कॉन्फ़िगर करें. साथ ही, अनुरोधों को Apigee SSO इंस्टेंस के सुरक्षित पोर्ट (उदाहरण के लिए,
9443) पर फ़ॉरवर्ड करें.
Apigee SSO को एक से ज़्यादा डेटा सेंटर में इंस्टॉल करना
एक से ज़्यादा डेटा सेंटर वाले एनवायरमेंट में, हर डेटा सेंटर में Apigee एसएसओ इंस्टेंस (apigee-openldap के ज़रिए) इंस्टॉल किया जाता है.
एक एसएसओ इंस्टेंस, सभी ट्रैफ़िक को मैनेज करता है. अगर वह इंस्टेंस बंद हो जाता है, तो ट्रैफ़िक को दूसरे एसएसओ इंस्टेंस पर स्विच किया जा सकता है.
दो डेटा सेंटर में Apigee SSO इंस्टॉल करने से पहले, आपको इनकी ज़रूरत होगी:
- मास्टर Postgres सर्वर का आईपी पता या डोमेन नेम.
एक से ज़्यादा डेटा सेंटर वाले एनवायरमेंट में, आम तौर पर हर डेटा सेंटर में एक Postgres सर्वर इंस्टॉल किया जाता है. साथ ही, उन्हें मास्टर-स्टैंडबाय रेप्लिकेशन मोड में कॉन्फ़िगर किया जाता है. इस उदाहरण के लिए, डेटा सेंटर 1 में मास्टर Postgres सर्वर है और डेटा सेंटर 2 में स्टैंडबाय है. ज़्यादा जानकारी के लिए, Postgres के लिए प्राइमरी-स्टैंडबाय रेप्लिकेशन सेट अप करना लेख पढ़ें.
- एक डीएनएस एंट्री, जो एक एसएसओ इंस्टेंस पर ले जाती है. उदाहरण के लिए, इस फ़ॉर्म में डीएनएस एंट्री बनाएं, जो डेटा सेंटर 1 में एसएसओ इंस्टेंस पर ले जाती है:
my-sso.domain.com => apigee-sso-dc1-ip-or-lb
- सिंक किए गए OpenLDAP रीडर क्रेडेंशियल. अगर इंटरनल OpenLDAP का इस्तेमाल किया जा रहा है, तो आपको यह पक्का करना होगा कि दोनों डेटा सेंटर एक ही
SSO_READER_PWका इस्तेमाल करें या एक हीsso-reader.keyफ़ाइल शेयर करें. इससे सेटअप के दौरान, क्लस्टर को सिंक न होने से रोका जा सकता है.
हर डेटा सेंटर में Apigee SSO को कॉन्फ़िगर करते समय, दोनों कॉन्फ़िगरेशन को डेटा सेंटर 1 में Postgres मास्टर पर ले जाएं:
## Postgres configuration
PG_HOST=IP_or_DNS_of_PG_Master_in_DC1
PG_PORT=5432आपको दोनों डेटा सेंटर को भी कॉन्फ़िगर करना होगा, ताकि वे शेयर की गई डीएनएस एंट्री का इस्तेमाल, सार्वजनिक तौर पर ऐक्सेस किए जा सकने वाले जारीकर्ता यूआरएल के तौर पर कर सकें. setup-sso स्क्रिप्ट, जारी करने वाले के यूआरएल को अपने-आप बनाती है और पोर्ट को जोड़ती है. इसलिए, आपको /opt/silent.conf के बजाय सीधे /opt/apigee/customer/application/openldap.properties में सटीक यूआरएल सेट करना होगा, ताकि ज़रूरत न होने पर पोर्ट को जोड़ने से रोका जा सके:
# Externally accessible URL of the Apigee SSO
etc_sso_config_issuer_url=https://my-sso.domain.comएसएसओ फ़ेलओवर को मैनेज करना
अगर डेटा सेंटर 1 में Apigee SSO इंस्टेंस (या उसका Postgres मास्टर) बंद हो जाता है, तो चालू OAuth सेशन को खोए बिना डेटा सेंटर 2 में एसएसओ इंस्टेंस पर स्विच किया जा सकता है:
- PostgreSQL डेटाबेस के फ़ेलओवर को मैनेज करना में बताए गए तरीके से, डेटा सेंटर 2 में मौजूद Postgres स्टैंडबाय सर्वर को मास्टर में बदलें.
- अपने डीएनएस रिकॉर्ड को अपडेट करें, ताकि
my-sso.domain.comको डेटा सेंटर 2 में मौजूद एसएसओ इंस्टेंस पर रीडायरेक्ट किया जा सके:my-sso.domain.com => apigee-sso-dc2-ip-or-lb
- डेटा सेंटर 2 में Apigee एसएसओ के लिए, अपनी
/opt/silent.confफ़ाइल को अपडेट करें, ताकि वह डेटा सेंटर 2 में नए Postgres मास्टर सर्वर पर ले जाए:## Postgres configuration PG_HOST=IP_or_DNS_of_PG_Master_in_DC2 - डेटा सेंटर 2 में Apigee SSO को फिर से कॉन्फ़िगर और रीस्टार्ट करें, ताकि इसके कनेक्शन को नेटिव तौर पर अपडेट किया जा सके:
/opt/apigee/apigee-service/bin/apigee-service apigee-openldap setup-sso -f /opt/silent.conf