മൈക്രോസർവീസ് ആർക്കിടെക്ചറിലെ എസ്എസ്ഒ. ഞങ്ങൾ കീക്ലോക്ക് ഉപയോഗിക്കുന്നു. ഭാഗം നമ്പർ 1

ഏതൊരു വലിയ കമ്പനിയിലും X5 റീട്ടെയിൽ ഗ്രൂപ്പിലും ഒരു അപവാദമല്ല, വികസനം പുരോഗമിക്കുമ്പോൾ, ഉപയോക്തൃ അംഗീകാരം ആവശ്യമുള്ള പ്രോജക്റ്റുകളുടെ എണ്ണം വർദ്ധിക്കുന്നു. കാലക്രമേണ, ഒരു ആപ്ലിക്കേഷനിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ഉപയോക്താക്കളുടെ തടസ്സങ്ങളില്ലാത്ത മാറ്റം ആവശ്യമാണ്, തുടർന്ന് ഒരൊറ്റ സിംഗിൾ-സിംഗ്-ഓൺ (എസ്എസ്ഒ) സെർവർ ഉപയോഗിക്കേണ്ടതുണ്ട്. AD പോലുള്ള ഐഡന്റിറ്റി പ്രൊവൈഡർമാരോ അധിക ആട്രിബ്യൂട്ടുകളില്ലാത്ത മറ്റുള്ളവയോ ഇതിനകം തന്നെ വിവിധ പ്രോജക്റ്റുകളിൽ ഉപയോഗിക്കുമ്പോൾ എന്തുചെയ്യണം. "ഐഡന്റിറ്റി ബ്രോക്കർമാർ" എന്ന് വിളിക്കപ്പെടുന്ന ഒരു കൂട്ടം സംവിധാനങ്ങൾ രക്ഷാപ്രവർത്തനത്തിന് വരും. കീക്ലോക്ക്, ഗ്രാവിറ്റി ആക്‌സസ് മാനേജ്‌മെന്റ് മുതലായവ അതിന്റെ പ്രതിനിധികളാണ്. ഏറ്റവും പ്രവർത്തനക്ഷമമായത് അതിന്റെ പ്രതിനിധികളാണ്. മിക്കപ്പോഴും, ഉപയോഗ സാഹചര്യങ്ങൾ വ്യത്യസ്തമായിരിക്കും: മെഷീൻ ഇടപെടൽ, ഉപയോക്തൃ പങ്കാളിത്തം മുതലായവ. പരിഹാരം എല്ലാ ആവശ്യങ്ങളും ഒന്നിൽ സംയോജിപ്പിക്കാൻ കഴിയുന്ന വഴക്കമുള്ളതും അളക്കാവുന്നതുമായ പ്രവർത്തനത്തെ പിന്തുണയ്ക്കണം. അത്തരമൊരു പരിഹാരവും ഞങ്ങളുടെ കമ്പനിക്ക് ഇപ്പോൾ ഒരു സൂചന ബ്രോക്കർ ഉണ്ട് - കീക്ലോക്ക്.

മൈക്രോസർവീസ് ആർക്കിടെക്ചറിലെ എസ്എസ്ഒ. ഞങ്ങൾ കീക്ലോക്ക് ഉപയോഗിക്കുന്നു. ഭാഗം നമ്പർ 1

RedHat പരിപാലിക്കുന്ന ഒരു ഓപ്പൺ സോഴ്സ് ഐഡന്റിറ്റി, ആക്സസ് കൺട്രോൾ ഉൽപ്പന്നമാണ് കീക്ലോക്ക്. SSO - RH-SSO ഉപയോഗിക്കുന്ന കമ്പനിയുടെ ഉൽപ്പന്നങ്ങളുടെ അടിസ്ഥാനമാണിത്.

അടിസ്ഥാന ആശയങ്ങൾ

നിങ്ങൾ പരിഹാരങ്ങളും സമീപനങ്ങളും മനസിലാക്കാൻ തുടങ്ങുന്നതിനുമുമ്പ്, പ്രക്രിയകളുടെ നിബന്ധനകളും ക്രമവും നിങ്ങൾ നിർവചിക്കേണ്ടതുണ്ട്:

മൈക്രോസർവീസ് ആർക്കിടെക്ചറിലെ എസ്എസ്ഒ. ഞങ്ങൾ കീക്ലോക്ക് ഉപയോഗിക്കുന്നു. ഭാഗം നമ്പർ 1

തിരിച്ചറിയൽ ഒരു വിഷയം അവന്റെ ഐഡന്റിഫയർ ഉപയോഗിച്ച് തിരിച്ചറിയുന്നതിനുള്ള ഒരു നടപടിക്രമമാണ് (മറ്റൊരു രീതിയിൽ പറഞ്ഞാൽ, ഇത് ഒരു പേര്, ലോഗിൻ അല്ലെങ്കിൽ നമ്പർ നിർണ്ണയിക്കുന്നു).

പ്രാമാണീകരണം - ഇതൊരു പ്രാമാണീകരണ നടപടിക്രമമാണ് (ഉപയോക്താവിനെ ഒരു പാസ്‌വേഡ് ഉപയോഗിച്ച് പരിശോധിച്ചുറപ്പിക്കുന്നു, കത്ത് ഒരു ഇലക്ട്രോണിക് സിഗ്നേച്ചർ ഉപയോഗിച്ച് സ്ഥിരീകരിക്കുന്നു മുതലായവ)

അംഗീകാരം - ഒരു ഉറവിടത്തിലേക്ക് ആക്സസ് നൽകുന്നു (ഉദാഹരണത്തിന്, ഇമെയിൽ).

കീക്ലോക്ക് ഐഡന്റിറ്റി ബ്രോക്കർ

കീക്ലോക്ക് മൈക്രോസർവീസ് ആർക്കിടെക്ചർ പാറ്റേണുകൾ ഉപയോഗിക്കാവുന്ന IS-ൽ ഉപയോഗിക്കുന്നതിന് രൂപകൽപ്പന ചെയ്ത ഒരു ഓപ്പൺ സോഴ്സ് ഐഡന്റിറ്റിയും ആക്സസ് മാനേജ്മെന്റ് സൊല്യൂഷനുമാണ്.

സിംഗിൾ സൈൻ-ഓൺ (എസ്എസ്ഒ), ബ്രോക്കർഡ് ഐഡന്റിറ്റി ആൻഡ് സോഷ്യൽ ലോഗിൻ, യൂസർ ഫെഡറേഷൻ, ക്ലയന്റ് അഡാപ്റ്ററുകൾ, അഡ്മിൻ കൺസോൾ, അക്കൗണ്ട് മാനേജ്മെന്റ് കൺസോൾ തുടങ്ങിയ സവിശേഷതകൾ കീക്ലോക്ക് വാഗ്ദാനം ചെയ്യുന്നു.

കീക്ലോക്കിൽ പിന്തുണയ്ക്കുന്ന അടിസ്ഥാന പ്രവർത്തനം:

  • ബ്രൗസർ ആപ്ലിക്കേഷനുകൾക്കായി സിംഗിൾ-സൈൻ ഓൺ, സിംഗിൾ-സൈൻ ഔട്ട്.
  • OpenID/OAuth 2.0/SAML പിന്തുണ.
  • ഐഡന്റിറ്റി ബ്രോക്കറിംഗ് - ബാഹ്യ OpenID കണക്റ്റ് അല്ലെങ്കിൽ SAML ഐഡന്റിറ്റി പ്രൊവൈഡർമാർ ഉപയോഗിച്ചുള്ള പ്രാമാണീകരണം.
  • സോഷ്യൽ ലോഗിൻ - ഉപയോക്തൃ തിരിച്ചറിയലിനായി Google, GitHub, Facebook, Twitter എന്നിവയ്ക്കുള്ള പിന്തുണ.
  • ഉപയോക്തൃ ഫെഡറേഷൻ - LDAP, ആക്റ്റീവ് ഡയറക്ടറി സെർവറുകൾ, മറ്റ് ഐഡന്റിറ്റി പ്രൊവൈഡർമാർ എന്നിവയിൽ നിന്നുള്ള ഉപയോക്താക്കളുടെ സമന്വയം.
  • കെർബറോസ് ബ്രിഡ്ജ് - യാന്ത്രിക ഉപയോക്തൃ പ്രാമാണീകരണത്തിനായി ഒരു കെർബറോസ് സെർവറിന്റെ ഉപയോഗം.
  • അഡ്മിൻ കൺസോൾ - വെബ് വഴിയുള്ള ക്രമീകരണങ്ങളുടെയും പരിഹാര പാരാമീറ്ററുകളുടെയും ഏകീകൃത മാനേജ്മെന്റിനായി.
  • അക്കൗണ്ട് മാനേജ്മെന്റ് കൺസോൾ - സ്വതന്ത്ര ഉപയോക്തൃ പ്രൊഫൈൽ മാനേജ്മെന്റിനായി.
  • കമ്പനിയുടെ കോർപ്പറേറ്റ് ഐഡന്റിറ്റിയെ അടിസ്ഥാനമാക്കിയുള്ള പരിഹാരത്തിന്റെ ഇഷ്‌ടാനുസൃതമാക്കൽ.
  • 2FA പ്രാമാണീകരണം - Google Authenticator അല്ലെങ്കിൽ FreeOTP ഉപയോഗിച്ച് TOTP/HOTP പിന്തുണ.
  • ലോഗിൻ ഫ്ലോകൾ - ഉപയോക്തൃ സ്വയം-രജിസ്‌ട്രേഷൻ, പാസ്‌വേഡ് വീണ്ടെടുക്കൽ, പുനഃസജ്ജമാക്കൽ എന്നിവയും മറ്റുള്ളവയും സാധ്യമാണ്.
  • സെഷൻ മാനേജ്മെന്റ് - അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് ഒരൊറ്റ പോയിന്റിൽ നിന്ന് ഉപയോക്തൃ സെഷനുകൾ നിയന്ത്രിക്കാനാകും.
  • ടോക്കൺ മാപ്പർമാർ - ഉപയോക്തൃ ആട്രിബ്യൂട്ടുകൾ, റോളുകൾ, മറ്റ് ആവശ്യമായ ആട്രിബ്യൂട്ടുകൾ എന്നിവ ടോക്കണുകളായി ബന്ധിപ്പിക്കുന്നു.
  • മേഖലയിലും ആപ്ലിക്കേഷനിലും ഉപയോക്താക്കളിലുടനീളമുള്ള ഫ്ലെക്സിബിൾ പോളിസി മാനേജ്മെന്റ്.
  • CORS പിന്തുണ - ക്ലയന്റ് അഡാപ്റ്ററുകൾക്ക് നേറ്റീവ് CORS പിന്തുണയുണ്ട്.
  • സർവീസ് പ്രൊവൈഡർ ഇന്റർഫേസുകൾ (SPI) - സെർവറിന്റെ വിവിധ വശങ്ങൾ കോൺഫിഗർ ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്ന SPI-കളുടെ ഒരു വലിയ സംഖ്യ: പ്രാമാണീകരണ ഫ്ലോകൾ, ഐഡന്റിറ്റി പ്രൊവൈഡർമാർ, പ്രോട്ടോക്കോൾ മാപ്പിംഗ് എന്നിവയും അതിലേറെയും.
  • JavaScript ആപ്ലിക്കേഷനുകൾക്കുള്ള ക്ലയന്റ് അഡാപ്റ്ററുകൾ, WildFly, JBoss EAP, Fuse, Tomcat, Jetty, Spring.
  • OpenID കണക്റ്റ് റിലയിംഗ് പാർട്ടി ലൈബ്രറി അല്ലെങ്കിൽ SAML 2.0 സർവീസ് പ്രൊവൈഡർ ലൈബ്രറിയെ പിന്തുണയ്ക്കുന്ന വിവിധ ആപ്ലിക്കേഷനുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിനുള്ള പിന്തുണ.
  • പ്ലഗിനുകൾ ഉപയോഗിച്ച് വികസിപ്പിക്കാവുന്നതാണ്.

CI/CD പ്രോസസ്സുകൾക്കും കീക്ലോക്കിലെ മാനേജ്മെന്റ് പ്രക്രിയകളുടെ ഓട്ടോമേഷനും REST API/JAVA API ഉപയോഗിക്കാം. ഡോക്യുമെന്റേഷൻ ഇലക്ട്രോണിക് രൂപത്തിൽ ലഭ്യമാണ്:

REST API https://www.keycloak.org/docs-api/8.0/rest-api/index.html
JAVA API https://www.keycloak.org/docs-api/8.0/javadocs/index.html

എന്റർപ്രൈസ് ഐഡന്റിറ്റി ദാതാക്കൾ (ഓൺ-പ്രെമൈസ്)

യൂസർ ഫെഡറേഷൻ സേവനങ്ങൾ വഴി ഉപയോക്തൃ പ്രാമാണീകരണത്തിനുള്ള സാധ്യത.

മൈക്രോസർവീസ് ആർക്കിടെക്ചറിലെ എസ്എസ്ഒ. ഞങ്ങൾ കീക്ലോക്ക് ഉപയോഗിക്കുന്നു. ഭാഗം നമ്പർ 1

പാസ്-ത്രൂ ഓതന്റിക്കേഷനും ഉപയോഗിക്കാം - കെർബറോസ് (LDAP അല്ലെങ്കിൽ AD) ഉള്ള വർക്ക് സ്റ്റേഷനുകളിൽ ഉപയോക്താക്കൾ പ്രാമാണീകരിച്ചിട്ടുണ്ടെങ്കിൽ, അവരുടെ ഉപയോക്തൃനാമവും പാസ്‌വേഡും വീണ്ടും നൽകാതെ തന്നെ അവർക്ക് കീക്ലോക്കിലേക്ക് സ്വയമേവ പ്രാമാണീകരിക്കാൻ കഴിയും.

ആധികാരികത ഉറപ്പാക്കുന്നതിനും ഉപയോക്താക്കളുടെ കൂടുതൽ അംഗീകാരത്തിനും, ഒരു റിലേഷണൽ ഡിബിഎംഎസ് ഉപയോഗിക്കാൻ കഴിയും, ഇത് വികസന പരിതസ്ഥിതികൾക്ക് ഏറ്റവും ബാധകമാണ്, കാരണം പ്രോജക്റ്റുകളുടെ പ്രാരംഭ ഘട്ടത്തിൽ ദൈർഘ്യമേറിയ ക്രമീകരണങ്ങളും സംയോജനങ്ങളും ഇതിന് ആവശ്യമില്ല. സ്ഥിരസ്ഥിതിയായി, ക്രമീകരണങ്ങളും ഉപയോക്തൃ ഡാറ്റയും സംഭരിക്കുന്നതിന് കീക്ലോക്ക് ഒരു ബിൽറ്റ്-ഇൻ DBMS ഉപയോഗിക്കുന്നു.

പിന്തുണയ്‌ക്കുന്ന DBMS-കളുടെ ലിസ്റ്റ് വിപുലമാണ്, അതിൽ ഇവ ഉൾപ്പെടുന്നു: MS SQL, Oracle, PostgreSQL, MariaDB, Oracle എന്നിവയും മറ്റുള്ളവയും. MariaDB 12-നുള്ള Oracle 1C Release3.12 RAC, Galera 10.1.19 ക്ലസ്റ്റർ എന്നിവയാണ് ഇപ്പോൾ ഏറ്റവും കൂടുതൽ പരീക്ഷിക്കപ്പെട്ടവ.

ഐഡന്റിറ്റി പ്രൊവൈഡർമാർ - സോഷ്യൽ ലോഗിൻ

സോഷ്യൽ നെറ്റ്‌വർക്കുകളിൽ നിന്ന് ഒരു ലോഗിൻ ഉപയോഗിക്കാൻ കഴിയും. ഉപയോക്താക്കളെ ആധികാരികമാക്കാനുള്ള കഴിവ് പ്രവർത്തനക്ഷമമാക്കാൻ, കീക്ലോക്ക് അഡ്‌മിൻ കൺസോൾ ഉപയോഗിക്കുക. ആപ്ലിക്കേഷൻ കോഡിൽ മാറ്റങ്ങളൊന്നും ആവശ്യമില്ല, ഈ പ്രവർത്തനം ബോക്‌സിന് പുറത്ത് ലഭ്യമാണ് കൂടാതെ പ്രോജക്റ്റിന്റെ ഏത് ഘട്ടത്തിലും ഇത് സജീവമാക്കാം.

മൈക്രോസർവീസ് ആർക്കിടെക്ചറിലെ എസ്എസ്ഒ. ഞങ്ങൾ കീക്ലോക്ക് ഉപയോഗിക്കുന്നു. ഭാഗം നമ്പർ 1

ഉപയോക്താക്കളെ ആധികാരികമാക്കാൻ, OpenID/SAML ഐഡന്റിറ്റി പ്രൊവൈഡറുകൾ ഉപയോഗിക്കാൻ കഴിയും.

കീക്ലോക്കിൽ OAuth2 ഉപയോഗിക്കുന്ന സാധാരണ അംഗീകാര രംഗങ്ങൾ

ഓതറൈസേഷൻ കോഡ് ഫ്ലോ - സെർവർ സൈഡ് ആപ്ലിക്കേഷനുകൾക്കൊപ്പം ഉപയോഗിക്കുന്നു. ആപ്ലിക്കേഷന്റെ സോഴ്‌സ് കോഡും ക്ലയന്റ് ഡാറ്റയും മറ്റുള്ളവർക്ക് ആക്‌സസ് ചെയ്യാനാകാത്ത സെർവർ സൈഡ് ആപ്ലിക്കേഷനുകൾക്ക് ഇത് നന്നായി യോജിക്കുന്നതിനാൽ ഏറ്റവും സാധാരണമായ അംഗീകാര അനുമതികളിൽ ഒന്ന്. ഈ കേസിലെ പ്രക്രിയ റീഡയറക്ഷൻ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ഉപയോക്തൃ ഏജന്റ് മുഖേന കൈമാറുന്ന API അംഗീകാര കോഡുകൾ സ്വീകരിക്കുന്നതിന്, ഒരു വെബ് ബ്രൗസർ പോലുള്ള ഉപയോക്തൃ ഏജന്റുമായി (ഉപയോക്തൃ-ഏജൻറ്) ആശയവിനിമയം നടത്താൻ അപ്ലിക്കേഷന് കഴിയണം.

അവ്യക്തമായ ഒഴുക്ക് — മൊബൈൽ അല്ലെങ്കിൽ വെബ് ആപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കുന്നു (ഉപയോക്താവിന്റെ ഉപകരണത്തിൽ പ്രവർത്തിക്കുന്ന ആപ്ലിക്കേഷനുകൾ).

ക്ലയന്റ് സ്വകാര്യത ഉറപ്പുനൽകാൻ കഴിയാത്ത മൊബൈൽ, വെബ് ആപ്ലിക്കേഷനുകൾ പരോക്ഷമായ അംഗീകാര അനുമതി തരം ഉപയോഗിക്കുന്നു. ഇംപ്ലിസിറ്റ് പെർമിഷൻ ടൈപ്പ് ഉപയോക്തൃ ഏജന്റ് റീഡയറക്‌ഷനും ഉപയോഗിക്കുന്നു, അവിടെ ആക്‌സസ് ടോക്കൺ ആപ്ലിക്കേഷനിൽ പിന്നീടുള്ള ഉപയോഗത്തിനായി ഉപയോക്തൃ ഏജന്റിന് കൈമാറുന്നു. ഇത് ഉപയോക്താവിനും ഉപയോക്താവിന്റെ ഉപകരണത്തിലെ മറ്റ് ആപ്ലിക്കേഷനുകൾക്കും ടോക്കൺ ലഭ്യമാക്കുന്നു. ഇത്തരത്തിലുള്ള അംഗീകാര അനുമതി ആപ്ലിക്കേഷന്റെ ഐഡന്റിറ്റിയെ ആധികാരികമാക്കുന്നില്ല, കൂടാതെ പ്രക്രിയ തന്നെ റീഡയറക്‌ട് URL-നെ ആശ്രയിച്ചിരിക്കുന്നു (മുമ്പ് സേവനത്തിൽ രജിസ്റ്റർ ചെയ്‌തത്).

ഇംപ്ലിസിറ്റ് ഫ്ലോ ആക്സസ് ടോക്കൺ പുതുക്കൽ ടോക്കണുകളെ പിന്തുണയ്ക്കുന്നില്ല.

ക്ലയന്റ് ക്രെഡൻഷ്യലുകൾ ഗ്രാന്റ് ഫ്ലോ - ആപ്ലിക്കേഷൻ API ആക്സസ് ചെയ്യുമ്പോൾ ഉപയോഗിക്കുന്നു. ഉപയോക്തൃ ഇടപെടലില്ലാതെ പശ്ചാത്തലത്തിൽ സംഭവിക്കേണ്ട സെർവർ-ടു-സെർവർ ഇടപെടലുകൾക്കാണ് ഇത്തരത്തിലുള്ള അംഗീകാര അനുമതി സാധാരണയായി ഉപയോഗിക്കുന്നത്. ക്ലയന്റ് ക്രെഡൻഷ്യൽ ഗ്രാന്റ് ഫ്ലോ ഒരു വെബ് സേവനത്തെ (രഹസ്യ ക്ലയന്റ്) മറ്റൊരു വെബ് സേവനത്തിലേക്ക് വിളിക്കുമ്പോൾ പ്രാമാണീകരണത്തിനായി ഉപയോക്താവിനെ ആൾമാറാട്ടത്തിന് പകരം സ്വന്തം ക്രെഡൻഷ്യലുകൾ ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു. ഉയർന്ന സുരക്ഷയ്ക്കായി, കോളിംഗ് സേവനത്തിന് ഒരു സർട്ടിഫിക്കറ്റ് (പങ്കിട്ട രഹസ്യത്തിന് പകരം) ക്രെഡൻഷ്യലായി ഉപയോഗിക്കുന്നത് സാധ്യമാണ്.

OAuth2 സ്പെസിഫിക്കേഷൻ വിവരിച്ചിരിക്കുന്നു
ആർഎഫ്സി -6749
ആർഎഫ്സി -8252
ആർഎഫ്സി -6819

JWT ടോക്കണും അതിന്റെ ഗുണങ്ങളും

JWT (JSON വെബ് ടോക്കൺ) ഒരു ഓപ്പൺ സ്റ്റാൻഡേർഡാണ് (https://tools.ietf.org/html/rfc7519), ഒരു JSON ഒബ്‌ജക്റ്റിന്റെ രൂപത്തിൽ കക്ഷികൾക്കിടയിൽ വിവരങ്ങൾ സുരക്ഷിതമായി കൈമാറുന്നതിനുള്ള ഒതുക്കമുള്ളതും സ്വയം ഉൾക്കൊള്ളുന്നതുമായ മാർഗ്ഗം ഇത് നിർവചിക്കുന്നു.

സ്റ്റാൻഡേർഡ് അനുസരിച്ച്, ഒരു ടോക്കൺ അടിസ്ഥാന-64 ഫോർമാറ്റിലുള്ള മൂന്ന് ഭാഗങ്ങൾ ഉൾക്കൊള്ളുന്നു, ഡോട്ടുകൾ കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു. ആദ്യ ഭാഗത്തെ ഹെഡ്ഡർ എന്ന് വിളിക്കുന്നു, അതിൽ ടോക്കണിന്റെ തരവും ഡിജിറ്റൽ സിഗ്നേച്ചർ ലഭിക്കുന്നതിനുള്ള ഹാഷ് അൽഗോരിതത്തിന്റെ പേരും അടങ്ങിയിരിക്കുന്നു. രണ്ടാം ഭാഗം അടിസ്ഥാന വിവരങ്ങൾ (ഉപയോക്താവ്, ആട്രിബ്യൂട്ടുകൾ മുതലായവ) സംഭരിക്കുന്നു. മൂന്നാമത്തെ ഭാഗം ഡിജിറ്റൽ സിഗ്നേച്ചറാണ്.

. .
നിങ്ങളുടെ ഡാറ്റാബേസിൽ ഒരിക്കലും ടോക്കൺ സൂക്ഷിക്കരുത്. സാധുവായ ഒരു ടോക്കൺ ഒരു പാസ്‌വേഡിന് തുല്യമായതിനാൽ, ഒരു ടോക്കൺ സംഭരിക്കുന്നത് ഒരു പാസ്‌വേഡ് വ്യക്തമായ വാചകത്തിൽ സൂക്ഷിക്കുന്നതിന് തുല്യമാണ്.
പ്രവേശന ടോക്കൺ സംരക്ഷിത സെർവർ ഉറവിടങ്ങളിലേക്ക് അതിന്റെ ഉടമയ്ക്ക് പ്രവേശനം നൽകുന്ന ഒരു ടോക്കണാണ്. ഇതിന് സാധാരണയായി ഒരു ചെറിയ ആയുസ്സ് മാത്രമേ ഉള്ളൂ കൂടാതെ ടോക്കൺ അഭ്യർത്ഥിക്കുന്ന പാർട്ടിയുടെ IP വിലാസം പോലുള്ള അധിക വിവരങ്ങൾ വഹിച്ചേക്കാം.

ടോക്കൺ പുതുക്കുക ക്ലയന്റുകൾക്ക് അവരുടെ ജീവിതകാലം അവസാനിച്ചതിന് ശേഷം പുതിയ ആക്സസ് ടോക്കണുകൾ അഭ്യർത്ഥിക്കാൻ അനുവദിക്കുന്ന ഒരു ടോക്കണാണ്. ഈ ടോക്കണുകൾ സാധാരണയായി ദീർഘകാലത്തേക്ക് നൽകും.

മൈക്രോ സർവീസ് ആർക്കിടെക്ചർ ഉപയോഗിക്കുന്നതിന്റെ പ്രധാന ഗുണങ്ങൾ:

  • ഒറ്റത്തവണ പ്രാമാണീകരണത്തിലൂടെ വിവിധ ആപ്ലിക്കേഷനുകളും സേവനങ്ങളും ആക്സസ് ചെയ്യാനുള്ള കഴിവ്.
  • ഉപയോക്തൃ പ്രൊഫൈലിൽ ആവശ്യമായ നിരവധി ആട്രിബ്യൂട്ടുകളുടെ അഭാവത്തിൽ, സ്വയമേവയും ഫ്ലൈയിലും ഉൾപ്പെടെ, പേലോഡിലേക്ക് ചേർക്കാൻ കഴിയുന്ന ഡാറ്റ ഉപയോഗിച്ച് അവയെ സമ്പുഷ്ടമാക്കാൻ സാധിക്കും.
  • സജീവമായ സെഷനുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ സംഭരിക്കേണ്ട ആവശ്യമില്ല; സെർവർ ആപ്ലിക്കേഷന് ഒപ്പ് പരിശോധിച്ചാൽ മതി.
  • പേലോഡിലെ അധിക ആട്രിബ്യൂട്ടുകളിലൂടെ കൂടുതൽ ഫ്ലെക്സിബിൾ ആക്സസ് നിയന്ത്രണം.
  • ഹെഡറിനും പേലോഡിനുമായി ഒരു ടോക്കൺ സിഗ്നേച്ചർ ഉപയോഗിക്കുന്നത് മൊത്തത്തിലുള്ള പരിഹാരത്തിന്റെ സുരക്ഷ വർദ്ധിപ്പിക്കുന്നു.

JWT ടോക്കൺ - കോമ്പോസിഷൻ

ഹെഡ്ഡർ — സ്ഥിരസ്ഥിതിയായി, തലക്കെട്ടിൽ ടോക്കൺ തരവും എൻക്രിപ്ഷനുപയോഗിക്കുന്ന അൽഗോരിതവും മാത്രമേ അടങ്ങിയിട്ടുള്ളൂ.

ടോക്കൺ തരം "ടൈപ്പ്" കീയിൽ സംഭരിച്ചിരിക്കുന്നു. "ടൈപ്പ്" കീ JWT-യിൽ അവഗണിക്കപ്പെട്ടിരിക്കുന്നു. "ടൈപ്പ്" കീ ഉണ്ടെങ്കിൽ, ഈ ഒബ്‌ജക്റ്റ് ഒരു JSON വെബ് ടോക്കണാണെന്ന് സൂചിപ്പിക്കാൻ അതിന്റെ മൂല്യം JWT ആയിരിക്കണം.

രണ്ടാമത്തെ കീ "alg" ടോക്കൺ എൻക്രിപ്റ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന അൽഗോരിതം വ്യക്തമാക്കുന്നു. സ്ഥിരസ്ഥിതിയായി ഇത് HS256 ആയി സജ്ജീകരിക്കണം. തലക്കെട്ട് ബേസ്64-ൽ എൻകോഡ് ചെയ്തിരിക്കുന്നു.

{ "alg": "HS256", "typ": "JWT"}
പേലോഡ് (ഉള്ളടക്കം) - പരിശോധിച്ചുറപ്പിക്കേണ്ട ഏത് വിവരവും പേലോഡ് സംഭരിക്കുന്നു. പേലോഡിലെ ഓരോ കീയും "പ്രസ്താവന" എന്നാണ് അറിയപ്പെടുന്നത്. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് ക്ഷണത്തിലൂടെ മാത്രമേ അപേക്ഷ നൽകാനാകൂ (അടച്ച പ്രമോഷൻ). പങ്കെടുക്കാൻ ആരെയെങ്കിലും ക്ഷണിക്കാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഞങ്ങൾ അവർക്ക് ഒരു ക്ഷണ ഇമെയിൽ അയയ്ക്കുന്നു. ഇമെയിൽ വിലാസം ക്ഷണം സ്വീകരിക്കുന്ന വ്യക്തിയുടേതാണെന്ന് സ്ഥിരീകരിക്കേണ്ടത് പ്രധാനമാണ്, അതിനാൽ "ഇമെയിൽ" കീയിൽ സംഭരിച്ചുകൊണ്ട് ഞങ്ങൾ ഈ വിലാസം പേലോഡിൽ ഉൾപ്പെടുത്തും.

{ "ഇമെയിൽ": "[ഇമെയിൽ പരിരക്ഷിച്ചിരിക്കുന്നു]"}

പേലോഡിലെ കീകൾ ഏകപക്ഷീയമായിരിക്കാം. എന്നിരുന്നാലും, ചില സംവരണം ഉണ്ട്:

  • iss (ഇഷ്യൂവർ) - ടോക്കൺ അയയ്ക്കുന്ന ആപ്ലിക്കേഷൻ തിരിച്ചറിയുന്നു.
  • ഉപ (വിഷയം) - ടോക്കണിന്റെ വിഷയം നിർവചിക്കുന്നു.
  • aud (പ്രേക്ഷകർ) - ഈ ടോക്കണിന്റെ സ്വീകർത്താക്കളുടെ പട്ടികയായ കേസ്-സെൻസിറ്റീവ് സ്ട്രിംഗുകളുടെയോ URI-കളുടെയോ ഒരു നിര. സ്വീകരിക്കുന്ന കക്ഷിക്ക് നൽകിയിരിക്കുന്ന കീ ഉപയോഗിച്ച് ഒരു JWT ലഭിക്കുമ്പോൾ, അത് സ്വീകർത്താക്കളിൽ സ്വയം പരിശോധിക്കണം - അല്ലെങ്കിൽ ടോക്കൺ അവഗണിക്കുക.
  • exp (കാലഹരണപ്പെടുന്ന സമയം) - ടോക്കൺ കാലഹരണപ്പെടുമ്പോൾ സൂചിപ്പിക്കുന്നു. എല്ലാ നടപ്പാക്കലുകളും കാലഹരണപ്പെട്ട ടോക്കണുകൾ നിരസിക്കണമെന്ന് JWT മാനദണ്ഡം ആവശ്യപ്പെടുന്നു. Exp കീ unix ഫോർമാറ്റിലുള്ള ഒരു ടൈംസ്റ്റാമ്പ് ആയിരിക്കണം.
  • nbf (മുമ്പല്ല) എന്നത് unix ഫോർമാറ്റിലുള്ള ഒരു സമയമാണ്, അത് ടോക്കൺ സാധുതയുള്ള നിമിഷം നിർണ്ണയിക്കുന്നു.
  • iat (ഇഷ്യു ചെയ്തത്) - ഈ കീ ടോക്കൺ നൽകിയ സമയത്തെ പ്രതിനിധീകരിക്കുന്നു, JWT-യുടെ പ്രായം നിർണ്ണയിക്കാൻ ഇത് ഉപയോഗിക്കാം. iat കീ unix ഫോർമാറ്റിലുള്ള ഒരു ടൈംസ്റ്റാമ്പ് ആയിരിക്കണം.
  • ഈ ടോക്കണിനായി ഒരു അദ്വിതീയ കേസ്-സെൻസിറ്റീവ് ഐഡന്റിഫയർ നിർവചിക്കുന്ന ഒരു സ്ട്രിംഗ് ആണ് Jti (JWT ID).

പേലോഡ് എൻക്രിപ്റ്റ് ചെയ്തിട്ടില്ലെന്ന് മനസ്സിലാക്കേണ്ടത് പ്രധാനമാണ് (ടോക്കണുകൾ നെസ്റ്റുചെയ്യാനാകുമെങ്കിലും എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ കൈമാറാൻ കഴിയും). അതിനാൽ, നിങ്ങൾക്ക് അതിൽ രഹസ്യ വിവരങ്ങളൊന്നും സൂക്ഷിക്കാൻ കഴിയില്ല. ഹെഡ്ഡർ പോലെ, പേലോഡും ബേസ്64 എൻകോഡ് ചെയ്തിരിക്കുന്നു.
ഒപ്പ് - നമുക്ക് ഒരു ഹെഡറും പേലോഡും ലഭിച്ചുകഴിഞ്ഞാൽ, നമുക്ക് ഒപ്പ് കണക്കാക്കാം.

ബേസ്64-ൽ എൻകോഡ് ചെയ്‌തിരിക്കുന്ന തലക്കെട്ടും പേലോഡും എടുത്ത് ഒരു ഡോട്ട് കൊണ്ട് വേർതിരിക്കുന്ന ഒരു വരയിലേക്ക് കൂട്ടിച്ചേർക്കുന്നു. ഈ സ്ട്രിംഗും രഹസ്യ കീയും ഹെഡറിൽ വ്യക്തമാക്കിയ എൻക്രിപ്ഷൻ അൽഗോരിതത്തിലേക്ക് ഇൻപുട്ട് ചെയ്യുന്നു (കീ "alg"). കീ ഏത് സ്ട്രിംഗും ആകാം. നീളം കൂടിയ സ്ട്രിംഗുകൾ തിരഞ്ഞെടുക്കാൻ കൂടുതൽ സമയം വേണ്ടിവരും.

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

ഒരു കീക്ലോക്ക് ഫെയ്‌ലോവർ ക്ലസ്റ്റർ ആർക്കിടെക്ചർ നിർമ്മിക്കുന്നു

എല്ലാ പ്രോജക്റ്റുകൾക്കും ഒരൊറ്റ ക്ലസ്റ്റർ ഉപയോഗിക്കുമ്പോൾ, ഒരു SSO സൊല്യൂഷന്റെ ആവശ്യകതകൾ വർദ്ധിക്കുന്നു. പ്രോജക്റ്റുകളുടെ എണ്ണം ചെറുതാണെങ്കിൽ, എല്ലാ പ്രോജക്റ്റുകൾക്കും ഈ ആവശ്യകതകൾ അത്ര പ്രധാനമല്ല, എന്നിരുന്നാലും, ഉപയോക്താക്കളുടെയും സംയോജനങ്ങളുടെയും എണ്ണം വർദ്ധിക്കുന്നതിനനുസരിച്ച്, ലഭ്യതയ്ക്കും പ്രകടനത്തിനുമുള്ള ആവശ്യകതകൾ വർദ്ധിക്കുന്നു.

ഒരൊറ്റ എസ്എസ്ഒയുടെ പരാജയത്തിന്റെ അപകടസാധ്യതകൾ വർദ്ധിക്കുന്നത് പരിഹാര വാസ്തുവിദ്യയുടെയും ഘടകങ്ങളുടെ ആവർത്തനത്തിനായി ഉപയോഗിക്കുന്ന രീതികളുടെയും ആവശ്യകതകൾ വർദ്ധിപ്പിക്കുകയും വളരെ കർശനമായ SLA-യിലേക്ക് നയിക്കുകയും ചെയ്യുന്നു. ഇക്കാര്യത്തിൽ, പലപ്പോഴും വികസനത്തിലോ പരിഹാരങ്ങൾ നടപ്പിലാക്കുന്നതിന്റെ പ്രാരംഭ ഘട്ടത്തിലോ, പ്രോജക്റ്റുകൾക്ക് അവരുടേതായ തെറ്റ്-സഹിഷ്ണുതയില്ലാത്ത ഇൻഫ്രാസ്ട്രക്ചർ ഉണ്ട്. വികസനം പുരോഗമിക്കുമ്പോൾ, വികസനത്തിനും സ്കെയിലിംഗിനും അവസരങ്ങൾ സൃഷ്ടിക്കേണ്ടത് ആവശ്യമാണ്. കണ്ടെയ്‌നർ വെർച്വലൈസേഷൻ അല്ലെങ്കിൽ ഒരു ഹൈബ്രിഡ് സമീപനമാണ് ഒരു പരാജയ ക്ലസ്റ്റർ നിർമ്മിക്കുന്നതിനുള്ള ഏറ്റവും വഴക്കമുള്ള മാർഗം.

സജീവ/ആക്റ്റീവ്, ആക്റ്റീവ്/പാസിവ് ക്ലസ്റ്റർ മോഡുകളിൽ പ്രവർത്തിക്കാൻ, റിലേഷണൽ ഡാറ്റാബേസിൽ ഡാറ്റ സ്ഥിരത ഉറപ്പാക്കേണ്ടത് ആവശ്യമാണ് - രണ്ട് ഡാറ്റാബേസ് നോഡുകളും വ്യത്യസ്ത ജിയോ-ഡിസ്ട്രിബ്യൂട്ടഡ് ഡാറ്റാ സെന്ററുകൾക്കിടയിൽ സമന്വയിപ്പിച്ചിരിക്കണം.

ഒരു തെറ്റ്-സഹിഷ്ണുതയുള്ള ഇൻസ്റ്റാളേഷന്റെ ഏറ്റവും ലളിതമായ ഉദാഹരണം.

മൈക്രോസർവീസ് ആർക്കിടെക്ചറിലെ എസ്എസ്ഒ. ഞങ്ങൾ കീക്ലോക്ക് ഉപയോഗിക്കുന്നു. ഭാഗം നമ്പർ 1

ഒരൊറ്റ ക്ലസ്റ്റർ ഉപയോഗിക്കുന്നതിന്റെ പ്രയോജനങ്ങൾ എന്തൊക്കെയാണ്:

  • ഉയർന്ന ലഭ്യതയും പ്രകടനവും.
  • പിന്തുണാ ഓപ്പറേറ്റിംഗ് മോഡുകൾ: സജീവം / സജീവം, സജീവം / നിഷ്ക്രിയം.
  • ഡൈനാമിക് സ്കെയിലിംഗിന്റെ സാധ്യത - കണ്ടെയ്നർ വിർച്ച്വലൈസേഷൻ ഉപയോഗിക്കുമ്പോൾ.
  • കേന്ദ്രീകൃത മാനേജ്മെന്റിന്റെയും നിരീക്ഷണത്തിന്റെയും സാധ്യത.
  • പ്രോജക്റ്റുകളിലെ ഉപയോക്താക്കളെ തിരിച്ചറിയുന്നതിനും/ആധികാരികമാക്കുന്നതിനും/അംഗീകാരം നൽകുന്നതിനുമുള്ള ഒരു ഏകീകൃത സമീപനം.
  • ഉപയോക്തൃ ഇടപെടലില്ലാതെ വ്യത്യസ്ത പ്രോജക്റ്റുകൾ തമ്മിലുള്ള കൂടുതൽ സുതാര്യമായ ഇടപെടൽ.
  • വിവിധ പദ്ധതികളിൽ JWT ടോക്കൺ വീണ്ടും ഉപയോഗിക്കാനുള്ള സാധ്യത.
  • വിശ്വാസത്തിന്റെ ഏക പോയിന്റ്.
  • മൈക്രോസർവീസുകൾ/കണ്ടെയ്‌നർ വെർച്വലൈസേഷൻ ഉപയോഗിച്ച് പ്രോജക്‌റ്റുകളുടെ വേഗത്തിലുള്ള സമാരംഭം (അധിക ഘടകങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യേണ്ടതില്ല).
  • വെണ്ടറിൽ നിന്ന് വാണിജ്യ പിന്തുണ വാങ്ങാൻ സാധിക്കും.

ഒരു ക്ലസ്റ്റർ ആസൂത്രണം ചെയ്യുമ്പോൾ എന്താണ് ശ്രദ്ധിക്കേണ്ടത്

ഡി.ബി.എം.എസ്

സംരക്ഷിക്കാൻ കീക്ലോക്ക് ഒരു DBMS മാനേജ്മെന്റ് സിസ്റ്റം ഉപയോഗിക്കുന്നു: മേഖലകൾ, ക്ലയന്റുകൾ, ഉപയോക്താക്കൾ തുടങ്ങിയവ.
DBMS-കളുടെ വിപുലമായ ശ്രേണി പിന്തുണയ്ക്കുന്നു: MS SQL, Oracle, MySQL, PostgreSQL. കീക്ലോക്ക് അതിന്റേതായ ബിൽറ്റ്-ഇൻ റിലേഷണൽ ഡാറ്റാബേസുമായി വരുന്നു. വികസന പരിതസ്ഥിതികൾ പോലുള്ള ലൈറ്റ് ഡ്യൂട്ടി പരിതസ്ഥിതികളിൽ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.

ആക്ടീവ്/ആക്ടീവ്, ആക്റ്റീവ്/പാസിവ് ക്ലസ്റ്റർ മോഡുകളിൽ പ്രവർത്തിക്കാൻ, റിലേഷണൽ ഡാറ്റാബേസിൽ ഡാറ്റാ സ്ഥിരത ഉറപ്പാക്കേണ്ടത് ആവശ്യമാണ് കൂടാതെ ഡാറ്റാബേസ് ക്ലസ്റ്ററിന്റെ രണ്ട് നോഡുകളും ഡാറ്റാ സെന്ററുകൾക്കിടയിൽ സമന്വയിപ്പിക്കപ്പെടുന്നു.

വിതരണം ചെയ്ത കാഷെ (ഇൻഫിൻസ്പാൻ)

ക്ലസ്റ്റർ ശരിയായി പ്രവർത്തിക്കുന്നതിന്, JBoss ഡാറ്റ ഗ്രിഡ് ഉപയോഗിച്ച് ഇനിപ്പറയുന്ന കാഷെ തരങ്ങളുടെ അധിക സമന്വയം ആവശ്യമാണ്:

പ്രാമാണീകരണ സെഷനുകൾ - ഒരു നിർദ്ദിഷ്ട ഉപയോക്താവിനെ പ്രാമാണീകരിക്കുമ്പോൾ ഡാറ്റ സംരക്ഷിക്കാൻ ഉപയോഗിക്കുന്നു. ഈ കാഷെയിൽ നിന്നുള്ള അഭ്യർത്ഥനകളിൽ സാധാരണയായി ബ്രൗസറും കീക്ലോക്ക് സെർവറും മാത്രമേ ഉൾപ്പെടുന്നുള്ളൂ, ആപ്ലിക്കേഷനല്ല.

പ്രവർത്തന ടോക്കണുകൾ - ഉപയോക്താവിന് ഒരു പ്രവർത്തനം അസമന്വിതമായി (ഇമെയിൽ വഴി) സ്ഥിരീകരിക്കേണ്ട സാഹചര്യങ്ങൾക്കായി ഉപയോഗിക്കുന്നു. ഉദാഹരണത്തിന്, പാസ്‌വേഡ് മറക്കുന്ന സമയത്ത്, ഇതിനകം ഉപയോഗിച്ചിട്ടുള്ള അനുബന്ധ പ്രവർത്തന ടോക്കണുകളെക്കുറിച്ചുള്ള മെറ്റാഡാറ്റയുടെ ട്രാക്ക് സൂക്ഷിക്കാൻ Infinispan actionTokens കാഷെ ഉപയോഗിക്കുന്നു, അതിനാൽ ഇത് വീണ്ടും ഉപയോഗിക്കാൻ കഴിയില്ല.

സ്ഥിരമായ ഡാറ്റയുടെ കാഷിംഗും അസാധുവാക്കലും - ഡാറ്റാബേസിലേക്കുള്ള അനാവശ്യ അന്വേഷണങ്ങൾ ഒഴിവാക്കാൻ സ്ഥിരമായ ഡാറ്റ കാഷെ ചെയ്യാൻ ഉപയോഗിക്കുന്നു. ഏതെങ്കിലും കീക്ലോക്ക് സെർവർ ഡാറ്റ അപ്‌ഡേറ്റ് ചെയ്യുമ്പോൾ, എല്ലാ ഡാറ്റാ സെന്ററുകളിലെയും മറ്റെല്ലാ കീക്ലോക്ക് സെർവറുകളും അതിനെക്കുറിച്ച് അറിഞ്ഞിരിക്കണം.

ജോലി - ക്ലസ്റ്റർ നോഡുകൾക്കും ഡാറ്റാ സെന്ററുകൾക്കുമിടയിൽ അസാധുവാക്കൽ സന്ദേശങ്ങൾ അയയ്ക്കാൻ മാത്രം ഉപയോഗിക്കുന്നു.

ഉപയോക്തൃ സെഷനുകൾ - ഉപയോക്താവിന്റെ ബ്രൗസർ സെഷന്റെ കാലയളവിലേക്ക് സാധുതയുള്ള ഉപയോക്തൃ സെഷൻ ഡാറ്റ സംഭരിക്കുന്നതിന് ഉപയോഗിക്കുന്നു. അന്തിമ ഉപയോക്താവിൽ നിന്നും ആപ്ലിക്കേഷനിൽ നിന്നുമുള്ള HTTP അഭ്യർത്ഥനകൾ കാഷെ കൈകാര്യം ചെയ്യണം.

ബ്രൂട്ട് ഫോഴ്സ് പ്രൊട്ടക്ഷൻ - പരാജയപ്പെട്ട ലോഗിനുകളെ കുറിച്ചുള്ള ഡാറ്റ ട്രാക്ക് ചെയ്യാൻ ഉപയോഗിക്കുന്നു.

ലോഡ് ബാലൻസിങ്

കീക്ലോക്കിലേക്കുള്ള ഏക പ്രവേശന പോയിന്റാണ് ലോഡ് ബാലൻസർ, അത് സ്റ്റിക്കി സെഷനുകളെ പിന്തുണയ്ക്കണം.

ആപ്ലിക്കേഷൻ സെർവറുകൾ

അവ പരസ്പരം ഘടകങ്ങളുടെ ഇടപെടൽ നിയന്ത്രിക്കാൻ ഉപയോഗിക്കുന്നു, നിലവിലുള്ള ഓട്ടോമേഷൻ ടൂളുകളും ഇൻഫ്രാസ്ട്രക്ചർ ഓട്ടോമേഷൻ ടൂളുകളുടെ ഡൈനാമിക് സ്കെയിലിംഗും ഉപയോഗിച്ച് വിർച്വലൈസ് ചെയ്യാനോ കണ്ടെയ്നറൈസ് ചെയ്യാനോ കഴിയും. OpenShift, Kubernates, Rancher എന്നിവിടങ്ങളിലാണ് ഏറ്റവും സാധാരണമായ വിന്യാസ സാഹചര്യങ്ങൾ.

ഇത് ആദ്യ ഭാഗം പൂർത്തിയാക്കുന്നു - സൈദ്ധാന്തികമായ ഒന്ന്. ഇനിപ്പറയുന്ന ലേഖന പരമ്പരയിൽ, വിവിധ തിരിച്ചറിയൽ ദാതാക്കളുമായുള്ള സംയോജനത്തിന്റെ ഉദാഹരണങ്ങളും ക്രമീകരണങ്ങളുടെ ഉദാഹരണങ്ങളും ചർച്ചചെയ്യും.

അവലംബം: www.habr.com

ഒരു അഭിപ്രായം ചേർക്കുക