மைக்ரோ சர்வீஸ் கட்டமைப்பில் SSO. நாங்கள் கீக்ளோக்கைப் பயன்படுத்துகிறோம். பகுதி 1

எந்தவொரு பெரிய நிறுவனத்திலும், X5 ரீடெய்ல் குழுவும் விதிவிலக்கல்ல, அது உருவாகும்போது, ​​பயனர் அங்கீகாரம் தேவைப்படும் திட்டங்களின் எண்ணிக்கை அதிகரிக்கிறது. காலப்போக்கில், பயனர்கள் ஒரு பயன்பாட்டிலிருந்து மற்றொரு பயன்பாட்டிற்கு தடையற்ற மாற்றம் தேவைப்படுகிறது, பின்னர் ஒரு ஒற்றை-சிங்க-ஆன் (SSO) சேவையகத்தைப் பயன்படுத்த வேண்டிய அவசியம் உள்ளது. ஆனால் AD போன்ற அடையாள வழங்குநர்கள் அல்லது கூடுதல் பண்புக்கூறுகள் இல்லாத மற்றவர்கள் ஏற்கனவே பல்வேறு திட்டங்களில் பயன்படுத்தப்படும் போது என்ன செய்வது. "அடையாளம் தரகர்கள்" என்று அழைக்கப்படும் ஒரு வகை அமைப்புகள் மீட்புக்கு வரும். Keycloak, Gravitee Access management போன்ற அதன் பிரதிநிதிகள் மிகவும் செயல்பாட்டுடன் இருப்பார்கள். பெரும்பாலும், பயன்பாட்டு வழக்குகள் வேறுபட்டிருக்கலாம்: இயந்திர தொடர்பு, பயனர் பங்கேற்பு போன்றவை. தீர்வு நெகிழ்வான மற்றும் அளவிடக்கூடிய செயல்பாட்டை ஆதரிக்க வேண்டும், இது அனைத்து தேவைகளையும் ஒன்றாக இணைக்க முடியும், மற்றும் அத்தகைய தீர்வுகள் இப்போது எங்கள் நிறுவனத்தில் ஒரு அறிகுறி தரகர் உள்ளது - Keycloak.

மைக்ரோ சர்வீஸ் கட்டமைப்பில் SSO. நாங்கள் கீக்ளோக்கைப் பயன்படுத்துகிறோம். பகுதி 1

Keycloak என்பது RedHat ஆல் பராமரிக்கப்படும் ஒரு திறந்த மூல அடையாளம் மற்றும் அணுகல் கட்டுப்பாட்டு தயாரிப்பு ஆகும். SSO - RH-SSO ஐப் பயன்படுத்தும் நிறுவனத்தின் தயாரிப்புகளுக்கு இது அடிப்படையாகும்.

அடிப்படை கருத்துக்கள்

நீங்கள் தீர்வுகள் மற்றும் அணுகுமுறைகளைக் கையாளத் தொடங்குவதற்கு முன், செயல்முறைகளின் விதிமுறைகள் மற்றும் வரிசையை நீங்கள் தீர்மானிக்க வேண்டும்:

மைக்ரோ சர்வீஸ் கட்டமைப்பில் SSO. நாங்கள் கீக்ளோக்கைப் பயன்படுத்துகிறோம். பகுதி 1

அடையாள ஒரு விஷயத்தை அவரது அடையாளங்காட்டி மூலம் அங்கீகரிப்பதற்கான ஒரு செயல்முறையாகும் (வேறுவிதமாகக் கூறினால், இது ஒரு பெயர், உள்நுழைவு அல்லது எண்ணின் வரையறை).

அங்கீகார - இது ஒரு அங்கீகார செயல்முறை (பயனர் கடவுச்சொல் மூலம் சரிபார்க்கப்படுகிறார், கடிதம் மின்னணு கையொப்பத்துடன் சரிபார்க்கப்படுகிறது, முதலியன)

அங்கீகாரம் - இது ஒரு ஆதாரத்திற்கான அணுகல் (உதாரணமாக, மின்னஞ்சலுக்கு) ஆகும்.

அடையாள தரகர் கீக்ளோக்

திறவுகோல் மைக்ரோ சர்வீஸ் கட்டிடக்கலை வடிவங்களைப் பயன்படுத்தக்கூடிய IS இல் பயன்படுத்த வடிவமைக்கப்பட்ட திறந்த மூல அடையாளம் மற்றும் அணுகல் மேலாண்மை தீர்வு.

ஒற்றை உள்நுழைவு (SSO), தரகு அடையாளம் மற்றும் சமூக உள்நுழைவு, பயனர் கூட்டமைப்பு, கிளையன்ட் அடாப்டர்கள், நிர்வாக கன்சோல் மற்றும் கணக்கு மேலாண்மை கன்சோல் போன்ற அம்சங்களை Keycloak வழங்குகிறது.

Keycloak இல் ஆதரிக்கப்படும் அடிப்படை செயல்பாடு:

  • உலாவி பயன்பாடுகளுக்கு ஒற்றை-உள்நுழைவு மற்றும் ஒற்றை-வெளியேறு.
  • OpenID/OAuth 2.0/SAML க்கான ஆதரவு.
  • அடையாள தரகு - வெளிப்புற OpenID இணைப்பு அல்லது SAML அடையாள வழங்குநர்களைப் பயன்படுத்தி அங்கீகாரம்.
  • சமூக உள்நுழைவு - Google, GitHub, Facebook, Twitter பயனர் அடையாளத்திற்கான ஆதரவு.
  • பயனர் கூட்டமைப்பு - LDAP மற்றும் ஆக்டிவ் டைரக்டரி சர்வர்கள் மற்றும் பிற அடையாள வழங்குநர்களின் பயனர்களின் ஒத்திசைவு.
  • கெர்பரோஸ் பிரிட்ஜ் - தானியங்கி பயனர் அங்கீகாரத்திற்காக கெர்பரோஸ் சேவையகத்தைப் பயன்படுத்துதல்.
  • நிர்வாகி கன்சோல் - இணையம் வழியாக அமைப்புகள் மற்றும் தீர்வு அளவுருக்களின் ஒருங்கிணைந்த நிர்வாகத்திற்காக.
  • கணக்கு மேலாண்மை கன்சோல் - பயனர் சுயவிவரத்தின் சுய மேலாண்மைக்காக.
  • நிறுவனத்தின் கார்ப்பரேட் அடையாளத்தின் அடிப்படையில் தீர்வைத் தனிப்பயனாக்குதல்.
  • 2FA அங்கீகாரம் - Google அங்கீகரிப்பு அல்லது FreeOTP ஐப் பயன்படுத்தி TOTP/HOTP ஆதரவு.
  • உள்நுழைவு ஓட்டங்கள் - பயனர் சுய பதிவு, கடவுச்சொல் மீட்பு மற்றும் மீட்டமைப்பு மற்றும் பிற சாத்தியம்.
  • அமர்வு மேலாண்மை - நிர்வாகிகள் ஒரு புள்ளியில் இருந்து பயனர் அமர்வுகளை நிர்வகிக்க முடியும்.
  • டோக்கன் மேப்பர்கள் - பயனர் பண்புக்கூறுகள், பாத்திரங்கள் மற்றும் டோக்கன்களுக்கு தேவையான பிற பண்புகளை பிணைத்தல்.
  • பகுதி, பயன்பாடு மற்றும் பயனர்கள் முழுவதும் நெகிழ்வான கொள்கை மேலாண்மை.
  • CORS ஆதரவு - கிளையண்ட் அடாப்டர்கள் உள்ளமைக்கப்பட்ட CORS ஆதரவைக் கொண்டுள்ளன.
  • சேவை வழங்குநர் இடைமுகங்கள் (SPI) - சேவையகத்தின் பல்வேறு அம்சங்களைத் தனிப்பயனாக்க உங்களை அனுமதிக்கும் அதிக எண்ணிக்கையிலான SPIகள்: அங்கீகார ஓட்டங்கள், அடையாள வழங்குநர்கள், நெறிமுறை மேப்பிங் மற்றும் பல.
  • JavaScript பயன்பாடுகளுக்கான கிளையண்ட் அடாப்டர்கள், WildFly, JBoss EAP, Fuse, Tomcat, Jetty, Spring.
  • ஓபன்ஐடி கனெக்ட் ரிலையிங் பார்ட்டி லைப்ரரி அல்லது எஸ்ஏஎம்எல் 2.0 சர்வீஸ் புரோவைடர் லைப்ரரியை ஆதரிக்கும் பல்வேறு பயன்பாடுகளுடன் பணிபுரிவதற்கான ஆதரவு.
  • செருகுநிரல்களைப் பயன்படுத்தி விரிவாக்கக்கூடியது.

CI / CD செயல்முறைகள் மற்றும் Keycloak இல் மேலாண்மை செயல்முறைகளின் ஆட்டோமேஷனுக்கு, REST API / JAVA API ஐப் பயன்படுத்தலாம். ஆவணங்கள் மின்னணு முறையில் கிடைக்கின்றன:

REST API https://www.keycloak.org/docs-api/8.0/rest-api/index.html
ஜாவா ஏபிஐ https://www.keycloak.org/docs-api/8.0/javadocs/index.html

நிறுவன அடையாள வழங்குநர்கள் (ஆன்-பிரைமைஸ்)

பயனர் கூட்டமைப்பு சேவைகள் மூலம் பயனர்களை அங்கீகரிக்கும் திறன்.

மைக்ரோ சர்வீஸ் கட்டமைப்பில் SSO. நாங்கள் கீக்ளோக்கைப் பயன்படுத்துகிறோம். பகுதி 1

பாஸ்-த்ரூ அங்கீகாரத்தையும் பயன்படுத்தலாம் - பயனர்கள் பணிநிலையங்களில் Kerberos (LDAP அல்லது AD) உடன் அங்கீகரித்தால், அவர்கள் மீண்டும் தங்கள் பயனர்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிடாமல் தானாகவே Keycloak க்கு அங்கீகரிக்கப்படலாம்.

அங்கீகாரம் மற்றும் பயனர்களை மேலும் அங்கீகரிப்பதற்காக, ஒரு தொடர்புடைய DBMS ஐப் பயன்படுத்த முடியும், இது வளர்ச்சி சூழல்களுக்கு மிகவும் பொருந்தும், ஏனெனில் இது திட்டங்களின் ஆரம்ப கட்டங்களில் நீண்ட அமைப்புகள் மற்றும் ஒருங்கிணைப்புகளை உள்ளடக்காது. இயல்புநிலையாக, அமைப்புகளையும் பயனர் தரவையும் சேமிக்க Keycloak உள்ளமைக்கப்பட்ட DBMS ஐப் பயன்படுத்துகிறது.

ஆதரிக்கப்படும் DBMS பட்டியல் விரிவானது மற்றும் பின்வருவனவற்றை உள்ளடக்கியது: MS SQL, Oracle, PostgreSQL, MariaDB, Oracle மற்றும் பிற. MariaDB 12க்கான Oracle 1C Release3.12 RAC மற்றும் Galera 10.1.19 cluster ஆகியவை இதுவரை அதிகம் சோதிக்கப்பட்டவை.

அடையாள வழங்குநர்கள் - சமூக உள்நுழைவு

சமூக வலைப்பின்னல்களில் இருந்து உள்நுழைவைப் பயன்படுத்த முடியும். பயனர்களை அங்கீகரிக்கும் திறனைச் செயல்படுத்த, Keycloack நிர்வாகி கன்சோலைப் பயன்படுத்தவும். பயன்பாட்டுக் குறியீட்டில் மாற்றங்கள் தேவையில்லை மற்றும் இந்த செயல்பாடு பெட்டிக்கு வெளியே கிடைக்கிறது மற்றும் திட்டத்தின் எந்த நிலையிலும் செயல்படுத்தப்படலாம்.

மைக்ரோ சர்வீஸ் கட்டமைப்பில் SSO. நாங்கள் கீக்ளோக்கைப் பயன்படுத்துகிறோம். பகுதி 1

பயனர் அங்கீகாரத்திற்காக OpenID/SAML அடையாள வழங்குநர்களைப் பயன்படுத்த முடியும்.

Keycloak இல் OAuth2 ஐப் பயன்படுத்தும் வழக்கமான அங்கீகார காட்சிகள்

அங்கீகார குறியீடு ஓட்டம் - சர்வர் பக்க பயன்பாடுகளுடன் பயன்படுத்தப்படுகிறது. பயன்பாட்டின் மூலக் குறியீடு மற்றும் கிளையன்ட் தரவு வெளியாட்களுக்குக் கிடைக்காத சர்வர் பயன்பாடுகளுக்கு இது மிகவும் பொருத்தமான அங்கீகார அனுமதியின் பொதுவான வகைகளில் ஒன்றாகும். இந்த வழக்கில் செயல்முறை திசைதிருப்பலை அடிப்படையாகக் கொண்டது. பயனர் முகவர் மூலம் திருப்பிவிடப்படும் API அங்கீகாரக் குறியீடுகளைப் பெற, இணைய உலாவி போன்ற ஒரு பயனர் முகவருடன் (பயனர்-ஏஜெண்ட்) பயன்பாடு தொடர்பு கொள்ள வேண்டும்.

மறைமுக ஓட்டம் - மொபைல் அல்லது இணைய பயன்பாடுகளால் பயன்படுத்தப்படுகிறது (பயனரின் சாதனத்தில் இயங்கும் பயன்பாடுகள்).

கிளையன்ட் ரகசியத்தன்மைக்கு உத்தரவாதம் அளிக்க முடியாத மொபைல் மற்றும் இணையப் பயன்பாடுகளால் மறைமுகமான அங்கீகார அனுமதி வகை பயன்படுத்தப்படுகிறது. மறைமுக அனுமதி வகை பயனர் முகவர் திசைதிருப்பலையும் பயன்படுத்துகிறது, இதன் மூலம் பயன்பாட்டில் மேலும் பயன்படுத்த பயனர் முகவருக்கு அணுகல் டோக்கன் அனுப்பப்படும். இது பயனர் மற்றும் பயனரின் சாதனத்தில் உள்ள பிற பயன்பாடுகளுக்கு டோக்கனைக் கிடைக்கும். இந்த வகையான அங்கீகார அனுமதியானது பயன்பாட்டின் அடையாளத்தை அங்கீகரிக்காது, மேலும் செயல்முறையே ஒரு வழிமாற்று URL ஐ நம்பியுள்ளது (முன்பு சேவையில் பதிவுசெய்யப்பட்டது).

அணுகல் டோக்கன் புதுப்பிப்பு டோக்கன்களை மறைமுகமான ஓட்டம் ஆதரிக்காது.

வாடிக்கையாளர் சான்றுகள் கிராண்ட் ஓட்டம் - பயன்பாடு API ஐ அணுகும்போது பயன்படுத்தப்படுகிறது. இந்த வகையான அங்கீகார அனுமதி பொதுவாக சர்வர்-டு-சர்வர் தொடர்புகளுக்குப் பயன்படுத்தப்படுகிறது, அவை உடனடி பயனர் தொடர்பு இல்லாமல் பின்னணியில் செய்யப்பட வேண்டும். கிளையன்ட் நற்சான்றிதழ்கள் மானிய ஓட்டமானது, மற்றொரு இணைய சேவையை அழைக்கும்போது அங்கீகரிப்பதற்காக ஒரு பயனரை ஆள்மாறாட்டம் செய்வதற்குப் பதிலாக அதன் சொந்த நற்சான்றிதழ்களைப் பயன்படுத்த ஒரு வலை சேவையை (ரகசிய கிளையன்ட்) அனுமதிக்கிறது. அதிக அளவிலான பாதுகாப்பிற்காக, அழைப்புச் சேவை சான்றிதழை (பகிரப்பட்ட ரகசியத்திற்குப் பதிலாக) நற்சான்றிதழாகப் பயன்படுத்துவது சாத்தியமாகும்.

OAuth2 விவரக்குறிப்பு விவரிக்கப்பட்டுள்ளது
ஆர்எஃப்சி -6749
ஆர்எஃப்சி -8252
ஆர்எஃப்சி -6819

JWT டோக்கன் மற்றும் அதன் நன்மைகள்

JWT (JSON வெப் டோக்கன்) ஒரு திறந்த தரநிலை (https://tools.ietf.org/html/rfc7519) ஒரு JSON பொருளாக கட்சிகளுக்கு இடையே தகவலைப் பாதுகாப்பாக மாற்றுவதற்கான ஒரு சிறிய மற்றும் தன்னிறைவான வழியை வரையறுக்கிறது.

தரநிலையின்படி, டோக்கன் அடிப்படை-64 வடிவத்தில் மூன்று பகுதிகளைக் கொண்டுள்ளது, புள்ளிகளால் பிரிக்கப்படுகிறது. முதல் பகுதி தலைப்பு என்று அழைக்கப்படுகிறது, இதில் டோக்கன் வகை மற்றும் டிஜிட்டல் கையொப்பத்தைப் பெறுவதற்கான ஹாஷ் அல்காரிதம் பெயர் உள்ளது. இரண்டாவது பகுதி அடிப்படை தகவல்களை (பயனர், பண்புக்கூறுகள், முதலியன) சேமிக்கிறது. மூன்றாவது பகுதி டிஜிட்டல் கையொப்பம்.

. .
உங்கள் தரவுத்தளத்தில் டோக்கனை ஒருபோதும் சேமிக்க வேண்டாம். செல்லுபடியாகும் டோக்கன் கடவுச்சொல்லுக்குச் சமமாக இருப்பதால், டோக்கனை சேமிப்பது கடவுச்சொல்லை தெளிவான உரையில் சேமிப்பது போன்றது.
அணுகல் டோக்கன் பாதுகாப்பான சர்வர் ஆதாரங்களுக்கான அணுகலை அதன் உரிமையாளருக்கு வழங்கும் டோக்கன் ஆகும். இது பொதுவாக குறுகிய ஆயுட்காலம் கொண்டது மற்றும் டோக்கனைக் கோரும் தரப்பினரின் ஐபி முகவரி போன்ற கூடுதல் தகவல்களைக் கொண்டு செல்லலாம்.

டோக்கனைப் புதுப்பிக்கவும் வாடிக்கையாளர்கள் தங்கள் வாழ்நாள் காலாவதியான பிறகு புதிய அணுகல் டோக்கன்களைக் கோர அனுமதிக்கும் டோக்கன் ஆகும். இந்த டோக்கன்கள் பொதுவாக நீண்ட காலத்திற்கு வழங்கப்படும்.

மைக்ரோ சர்வீஸ் கட்டமைப்பில் பயன்படுத்துவதன் முக்கிய நன்மைகள்:

  • ஒரு முறை அங்கீகாரம் மூலம் பல்வேறு பயன்பாடுகள் மற்றும் சேவைகளை அணுகும் திறன்.
  • பயனர் சுயவிவரத்தில் தேவையான பல பண்புக்கூறுகள் இல்லாத நிலையில், தானியங்கு மற்றும் பறக்கும் போது பேலோடில் சேர்க்கக்கூடிய தரவைக் கொண்டு வளப்படுத்த முடியும்.
  • செயலில் உள்ள அமர்வுகள் பற்றிய தகவல்களைச் சேமிக்க வேண்டிய அவசியமில்லை, சேவையகப் பயன்பாடு கையொப்பத்தை மட்டுமே சரிபார்க்க வேண்டும்.
  • பேலோடில் உள்ள கூடுதல் பண்புக்கூறுகள் மூலம் மிகவும் நெகிழ்வான அணுகல் கட்டுப்பாடு.
  • தலைப்பு மற்றும் பேலோடுக்கான டோக்கன் கையொப்பத்தைப் பயன்படுத்துவது ஒட்டுமொத்த தீர்வின் பாதுகாப்பை அதிகரிக்கிறது.

JWT டோக்கன் - கலவை

தலைப்பு - முன்னிருப்பாக, தலைப்பில் டோக்கன் வகை மற்றும் குறியாக்கத்திற்குப் பயன்படுத்தப்படும் அல்காரிதம் மட்டுமே இருக்கும்.

டோக்கனின் வகை "typ" விசையில் சேமிக்கப்படுகிறது. JWT இல் 'வகை' விசை புறக்கணிக்கப்பட்டது. "typ" விசை இருந்தால், இந்த பொருள் JSON வலை டோக்கன் என்பதைக் குறிக்க அதன் மதிப்பு JWT ஆக இருக்க வேண்டும்.

இரண்டாவது விசை "alg" டோக்கனை குறியாக்கப் பயன்படுத்தப்படும் அல்காரிதத்தை வரையறுக்கிறது. இது முன்னிருப்பாக HS256 க்கு அமைக்கப்பட வேண்டும். தலைப்பு அடிப்படை64 இல் குறியிடப்பட்டுள்ளது.

{ "alg": "HS256", "type": "JWT"}
பேலோட் (உள்ளடக்கம்) - பேலோட் சரிபார்க்கப்பட வேண்டிய எந்த தகவலையும் சேமிக்கிறது. பேலோடில் உள்ள ஒவ்வொரு விசையும் "உரிமைகோரல்" என்று அறியப்படுகிறது. எடுத்துக்காட்டாக, நீங்கள் அழைப்பின் மூலம் மட்டுமே விண்ணப்பத்தை உள்ளிட முடியும் (மூடப்பட்ட விளம்பரம்). பங்கேற்க யாரையாவது அழைக்க விரும்பினால், அவர்களுக்கு அழைப்புக் கடிதம் அனுப்புவோம். அழைப்பை ஏற்கும் நபருக்கு மின்னஞ்சல் முகவரி சொந்தமானது என்பதை சரிபார்க்க வேண்டியது அவசியம், எனவே இந்த முகவரியை பேலோடில் சேர்ப்போம், இதற்காக அதை "மின்னஞ்சல்" விசையில் சேமிப்போம்

{ "மின்னஞ்சல்": "[மின்னஞ்சல் பாதுகாக்கப்பட்டது]"}

பேலோடில் உள்ள விசைகள் தன்னிச்சையாக இருக்கலாம். இருப்பினும், சில முன்பதிவுகள் உள்ளன:

  • iss (வழங்குபவர்) - டோக்கன் அனுப்பப்பட்ட விண்ணப்பத்தை தீர்மானிக்கிறது.
  • துணை (பொருள்) - டோக்கனின் பொருளை வரையறுக்கிறது.
  • aud (பார்வையாளர்கள்) என்பது கேஸ்-சென்சிட்டிவ் சரங்கள் அல்லது URIகளின் வரிசையாகும், இது இந்த டோக்கனைப் பெறுபவர்களின் பட்டியலாகும். கொடுக்கப்பட்ட விசையுடன் ஒரு JWTஐப் பெறும் பக்கம் பெறும்போது, ​​அது பெறுநர்களிடம் உள்ளதா என்பதைச் சரிபார்க்க வேண்டும் - இல்லையெனில் டோக்கனைப் புறக்கணிக்கவும்.
  • exp (காலாவதி நேரம்) - டோக்கன் காலாவதியாகும் போது குறிக்கிறது. JWT தரநிலைக்கு அதன் அனைத்து செயலாக்கங்களும் காலாவதியான டோக்கன்களை நிராகரிக்க வேண்டும். எக்ஸ்ப் கீயானது யுனிக்ஸ் வடிவத்தில் நேர முத்திரையாக இருக்க வேண்டும்.
  • nbf (முன்பு இல்லை) என்பது டோக்கன் செல்லுபடியாகும் தருணத்தை தீர்மானிக்கும் unix வடிவமைப்பில் உள்ள நேரமாகும்.
  • iat (வெளியிடப்பட்டது) - இந்த விசை டோக்கன் வழங்கப்பட்ட நேரத்தைக் குறிக்கிறது மற்றும் JWTயின் வயதைக் கண்டறியப் பயன்படுத்தலாம். iat விசை unix வடிவத்தில் நேர முத்திரையாக இருக்க வேண்டும்.
  • Jti (JWT ஐடி) — இந்த டோக்கனின் தனிப்பட்ட அடையாளங்காட்டியை வரையறுக்கும் ஒரு சரம், கேஸ்-சென்சிட்டிவ்.

பேலோட் மறைகுறியாக்கப்பட்ட வடிவத்தில் அனுப்பப்படவில்லை என்பதைப் புரிந்துகொள்வது முக்கியம் (டோக்கன்கள் உள்ளமைக்கப்பட்டாலும், மறைகுறியாக்கப்பட்ட தரவை அனுப்புவது சாத்தியமாகும்). எனவே, எந்த ரகசிய தகவலையும் சேமிக்க முடியாது. தலைப்பைப் போலவே, பேலோடும் base64 குறியாக்கம் செய்யப்பட்டுள்ளது.
கையொப்பம் - எங்களிடம் தலைப்பு மற்றும் பேலோட் இருக்கும்போது, ​​கையொப்பத்தைக் கணக்கிடலாம்.

Base64-குறியீடு: தலைப்பு மற்றும் பேலோட் எடுக்கப்பட்டது, அவை ஒரு புள்ளி மூலம் சரமாக இணைக்கப்படுகின்றன. இந்த சரமும் ரகசிய விசையும் ஹெடரில் ("alg" கீ) குறிப்பிடப்பட்டுள்ள குறியாக்க வழிமுறைக்கு உள்ளீடு ஆகும். முக்கிய எந்த சரமாக இருக்கலாம். எடுக்க அதிக நேரம் எடுக்கும் என்பதால் நீளமான சரங்கள் மிகவும் விரும்பப்படும்.

{"alg":"RSA1_5","payload":"A128CBC-HS256"}

ஒரு கீக்ளோக் ஃபெயில்ஓவர் கிளஸ்டர் கட்டிடக்கலையை உருவாக்குதல்

அனைத்து திட்டங்களுக்கும் ஒரு கிளஸ்டரைப் பயன்படுத்தும் போது, ​​SSO தீர்வுக்கான தேவைகள் அதிகரிக்கின்றன. திட்டங்களின் எண்ணிக்கை சிறியதாக இருக்கும்போது, ​​எல்லா திட்டங்களுக்கும் இந்த தேவைகள் அவ்வளவு கவனிக்கப்படுவதில்லை, இருப்பினும், பயனர்களின் எண்ணிக்கை மற்றும் ஒருங்கிணைப்புகளின் அதிகரிப்புடன், கிடைக்கும் மற்றும் செயல்திறன் அதிகரிப்புக்கான தேவைகள்.

ஒற்றை SSO தோல்வியின் அபாயத்தை அதிகரிப்பது தீர்வு கட்டமைப்பு மற்றும் தேவையற்ற கூறுகளுக்கு பயன்படுத்தப்படும் முறைகளுக்கான தேவைகளை அதிகரிக்கிறது மற்றும் மிகவும் இறுக்கமான SLA க்கு வழிவகுக்கிறது. இது சம்பந்தமாக, பெரும்பாலும் வளர்ச்சி அல்லது தீர்வுகளை செயல்படுத்துவதற்கான ஆரம்ப கட்டங்களில், திட்டங்கள் அவற்றின் சொந்த தவறு-சகிப்புத்தன்மையற்ற உள்கட்டமைப்பைக் கொண்டுள்ளன. வளர்ச்சி முன்னேறும்போது, ​​வளர்ச்சி மற்றும் அளவிடுதலுக்கான வாய்ப்புகளை உருவாக்குவது அவசியம். கன்டெய்னர் மெய்நிகராக்கம் அல்லது கலப்பின அணுகுமுறையைப் பயன்படுத்தி ஃபெயில்ஓவர் கிளஸ்டரை உருவாக்குவது மிகவும் நெகிழ்வானது.

ஆக்டிவ்/ஆக்டிவ் மற்றும் ஆக்டிவ்/பாசிவ் கிளஸ்டர் முறைகளில் பணிபுரிய, தொடர்புடைய தரவுத்தளத்தில் தரவு நிலைத்தன்மையை உறுதிப்படுத்துவது அவசியம் - இரண்டு தரவுத்தள முனைகளும் வெவ்வேறு புவி-விநியோக தரவு மையங்களுக்கு இடையில் ஒத்திசைக்கப்பட வேண்டும்.

பிழை-சகிப்பு நிறுவலின் எளிய எடுத்துக்காட்டு.

மைக்ரோ சர்வீஸ் கட்டமைப்பில் SSO. நாங்கள் கீக்ளோக்கைப் பயன்படுத்துகிறோம். பகுதி 1

ஒற்றை கிளஸ்டரைப் பயன்படுத்துவதன் நன்மைகள் என்ன:

  • அதிக கிடைக்கும் தன்மை மற்றும் செயல்திறன்.
  • இயக்க முறைகளுக்கான ஆதரவு: செயலில் / செயலில், செயலில் / செயலற்றது.
  • கன்டெய்னர் மெய்நிகராக்கத்தைப் பயன்படுத்தும் போது - மாறும் அளவீடு செய்யும் திறன்.
  • மையப்படுத்தப்பட்ட மேலாண்மை மற்றும் கண்காணிப்பின் சாத்தியம்.
  • திட்டங்களில் பயனர்களின் அடையாளம்/அங்கீகாரம்/அங்கீகாரம் ஆகியவற்றிற்கான ஒருங்கிணைந்த அணுகுமுறை.
  • பயனர் ஈடுபாடு இல்லாமல் வெவ்வேறு திட்டங்களுக்கு இடையே மிகவும் வெளிப்படையான தொடர்பு.
  • பல்வேறு திட்டங்களில் JWT டோக்கனை மீண்டும் பயன்படுத்தும் திறன்.
  • நம்பிக்கையின் ஒற்றை புள்ளி.
  • மைக்ரோ சர்வீஸ்/கன்டெய்னர் மெய்நிகராக்கத்தைப் பயன்படுத்தி திட்டங்களின் விரைவான துவக்கம் (கூடுதல் கூறுகளை உயர்த்தி கட்டமைக்க வேண்டிய அவசியமில்லை).
  • விற்பனையாளரிடமிருந்து வணிக ஆதரவை வாங்குவது சாத்தியமாகும்.

ஒரு கிளஸ்டரைத் திட்டமிடும்போது என்ன பார்க்க வேண்டும்

டிபிஎம்எஸ்

Keycloak சேமிக்க ஒரு தரவுத்தள மேலாண்மை அமைப்பைப் பயன்படுத்துகிறது: பகுதிகள், வாடிக்கையாளர்கள், பயனர்கள் போன்றவை.
பரந்த அளவிலான DBMS ஆதரிக்கப்படுகிறது: MS SQL, Oracle, MySQL, PostgreSQL. Keycloak அதன் சொந்த உள்ளமைக்கப்பட்ட தொடர்புடைய தரவுத்தளத்துடன் வருகிறது. ஏற்றப்படாத சூழல்களுக்குப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது - வளர்ச்சி சூழல்கள் போன்றவை.

ஆக்டிவ்/ஆக்டிவ் மற்றும் ஆக்டிவ்/பாசிவ் கிளஸ்டர் முறைகளில் பணிபுரிய, தொடர்புடைய தரவுத்தளத்தில் தரவு நிலைத்தன்மை தேவைப்படுகிறது, மேலும் இரண்டு தரவுத்தள கிளஸ்டர் முனைகளும் தரவு மையங்களுக்கு இடையில் ஒத்திசைவாகப் பிரதிபலிக்கப்படுகின்றன.

விநியோகிக்கப்பட்ட கேச் (இன்ஃபின்ஸ்பான்)

கிளஸ்டர் சரியாக வேலை செய்ய, JBoss டேட்டா கிரிட்டைப் பயன்படுத்தி பின்வரும் வகையான தற்காலிக சேமிப்புகளின் கூடுதல் ஒத்திசைவு தேவை:

அங்கீகார அமர்வுகள் - ஒரு குறிப்பிட்ட பயனரை அங்கீகரிக்கும்போது தரவைச் சேமிக்கப் பயன்படுகிறது. இந்த தற்காலிக சேமிப்பிலிருந்து வரும் கோரிக்கைகள் பொதுவாக உலாவி மற்றும் Keycloak சேவையகத்தை மட்டுமே உள்ளடக்கும், பயன்பாடு அல்ல.

பயனர் ஒரு செயலை ஒத்திசைவின்றி (மின்னஞ்சல் வழியாக) உறுதிப்படுத்த வேண்டிய சூழ்நிலைகளுக்கு அதிரடி டோக்கன்கள் பயன்படுத்தப்படுகின்றன. எடுத்துக்காட்டாக, கடவுச்சொல்லை மறந்துவிடும் போது, ​​ஏற்கனவே பயன்படுத்தப்பட்ட தொடர்புடைய செயல் டோக்கன்களைப் பற்றிய மெட்டாடேட்டாவைக் கண்காணிக்க actionTokens Infinispan கேச் பயன்படுத்தப்படுகிறது, எனவே அதை மீண்டும் பயன்படுத்த முடியாது.

நிலையான தரவுகளின் தேக்ககப்படுத்துதல் மற்றும் செல்லாததாக்குதல் - தரவுத்தளத்தில் தேவையற்ற வினவல்களைத் தவிர்க்க நிலையான தரவைத் தேக்ககப்படுத்தப் பயன்படுகிறது. எந்த Keycloak சேவையகமும் தரவைப் புதுப்பிக்கும் போது, ​​அனைத்து தரவு மையங்களிலும் உள்ள மற்ற அனைத்து Keycloak சேவையகங்களும் அதைப் பற்றி தெரிந்து கொள்ள வேண்டும்.

வேலை - கிளஸ்டர் முனைகள் மற்றும் தரவு மையங்களுக்கு இடையே தவறான செய்திகளை அனுப்ப மட்டுமே பயன்படுத்தப்படுகிறது.

பயனர் அமர்வுகள் - பயனரின் உலாவி அமர்வின் காலத்திற்கு செல்லுபடியாகும் பயனர் அமர்வுகள் பற்றிய தரவைச் சேமிக்கப் பயன்படுகிறது. இறுதிப் பயனர் மற்றும் பயன்பாட்டிலிருந்து வரும் HTTP கோரிக்கைகளை கேச் கையாள வேண்டும்.

ப்ரூட் ஃபோர்ஸ் பாதுகாப்பு - தோல்வியுற்ற உள்நுழைவுகள் பற்றிய தரவைக் கண்காணிக்கப் பயன்படுகிறது.

சுமை சமநிலை

லோட் பேலன்சர் என்பது கீக்ளோக்கிற்கான ஒற்றை நுழைவுப் புள்ளியாகும் மற்றும் ஒட்டும் அமர்வுகளை ஆதரிக்க வேண்டும்.

பயன்பாட்டு சேவையகங்கள்

அவை ஒன்றுக்கொன்று கூறுகளின் ஊடாடலைக் கட்டுப்படுத்தப் பயன்படுகின்றன, மேலும் இருக்கும் தன்னியக்க கருவிகள் மற்றும் உள்கட்டமைப்பு தன்னியக்க கருவிகளின் மாறும் அளவுகோல் ஆகியவற்றைப் பயன்படுத்தி மெய்நிகராக்கலாம் அல்லது கொள்கலன் செய்யலாம். OpenShift, Kubernates, Rancher இல் மிகவும் பொதுவான வரிசைப்படுத்தல் காட்சிகள்.

இது முதல் பகுதியை முடிக்கிறது - கோட்பாட்டு ஒன்று. அடுத்த தொடர் கட்டுரைகளில், பல்வேறு அடையாள வழங்குநர்களுடனான ஒருங்கிணைப்புகளின் எடுத்துக்காட்டுகள் மற்றும் அமைப்புகளின் எடுத்துக்காட்டுகள் பகுப்பாய்வு செய்யப்படும்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்