ኤስኤስኦ በማይክሮ አገልግሎት አርክቴክቸር። Keycloakን እንጠቀማለን. ክፍል #1

በማንኛውም ትልቅ ኩባንያ ውስጥ እና X5 የችርቻሮ ቡድን ምንም የተለየ አይደለም, እያደገ ሲሄድ, የተጠቃሚ ፍቃድ የሚያስፈልጋቸው ፕሮጀክቶች ቁጥር ይጨምራል. ከጊዜ በኋላ፣ ተጠቃሚዎች ከአንድ መተግበሪያ ወደ ሌላው ያለችግር ሽግግር ያስፈልጋል፣ እና ከዚያ ነጠላ-ዘፈን-ኦን (ኤስኤስኦ) አገልጋይ መጠቀም ያስፈልጋል። ግን እንደ AD ወይም ሌሎች ተጨማሪ ባህሪያት የሌላቸው መታወቂያ አቅራቢዎች በተለያዩ ፕሮጀክቶች ውስጥ ጥቅም ላይ ሲውሉስ? "የመለያ ደላሎች" የሚባል የስርዓቶች ክፍል ለእርዳታ ይመጣል። በጣም ተግባራዊ እንደ Keycloak, Gravitee መዳረሻ አስተዳደር, ወዘተ እንደ በውስጡ ወኪሎቻቸው ናቸው አብዛኛውን ጊዜ, አጠቃቀም ጉዳዮች የተለየ ሊሆን ይችላል: ማሽን መስተጋብር, የተጠቃሚ ተሳትፎ, ወዘተ መፍትሔው ሁሉንም መስፈርቶች በአንድ ላይ ሊያጣምረው የሚችል ተለዋዋጭ እና ሊሰፋ የሚችል ተግባር መደገፍ አለበት. እና እንደዚህ ያሉ መፍትሄዎች ኩባንያችን አሁን አመላካች ደላላ አለው - Keycloak.

ኤስኤስኦ በማይክሮ አገልግሎት አርክቴክቸር። Keycloakን እንጠቀማለን. ክፍል #1

Keycloak በ RedHat የተያዘ ክፍት ምንጭ መታወቂያ እና የመዳረሻ ቁጥጥር ምርት ነው። SSO - RH-SSO በመጠቀም ለኩባንያው ምርቶች መሠረት ነው.

መሰረታዊ ጽንሰ-ሀሳቦች

መፍትሄዎችን እና አቀራረቦችን ለመቋቋም ከመጀመርዎ በፊት በሂደቶች እና በቅደም ተከተል መወሰን አለብዎት-

ኤስኤስኦ በማይክሮ አገልግሎት አርክቴክቸር። Keycloakን እንጠቀማለን. ክፍል #1

መለየት ርዕሰ ጉዳዩን በመለየት የማወቅ ሂደት ነው (በሌላ አነጋገር ይህ የስም ፣ የመግቢያ ወይም የቁጥር ትርጉም ነው)።

ማረጋገጫ ይህ የማረጋገጫ ሂደት ነው (ተጠቃሚው በይለፍ ቃል ፣ ደብዳቤው በኤሌክትሮኒክ ፊርማ ፣ ወዘተ.)

ፈቃድ - ይህ የሀብት መዳረሻ አቅርቦት ነው (ለምሳሌ ኢ-ሜል)።

የማንነት ደላላ ቁልፍ ካባ

ቁልፍ ካባ የማይክሮ አገልግሎት አርክቴክቸር ንድፎችን መጠቀም በሚቻልበት IS ውስጥ ጥቅም ላይ እንዲውል የተነደፈ ክፍት ምንጭ መታወቂያ እና የመዳረሻ አስተዳደር መፍትሔ ነው።

Keycloak እንደ ነጠላ መግቢያ (ኤስኤስኦ)፣ የደላላ ማንነት እና ማህበራዊ መግቢያ፣ የተጠቃሚ ፌዴሬሽን፣ የደንበኛ አስማሚዎች፣ የአስተዳዳሪ ኮንሶል እና የመለያ አስተዳደር ኮንሶል ያሉ ባህሪያትን ያቀርባል።

በቁልፍ ልብስ የሚደገፍ መሰረታዊ ተግባር፡-

  • ለአሳሽ መተግበሪያዎች ነጠላ-መለያ እና ነጠላ-ይውጡ።
  • ለOpenID/OAuth 2.0/SAML ድጋፍ።
  • የማንነት ደላላ - ውጫዊ የ OpenID Connect ወይም SAML መታወቂያ አቅራቢዎችን በመጠቀም ማረጋገጥ።
  • ማህበራዊ መግቢያ - Google, GitHub, Facebook, Twitter የተጠቃሚ መለያ ድጋፍ.
  • የተጠቃሚ ፌዴሬሽን - ከኤልዲኤፒ እና አክቲቭ ዳይሬክተሩ አገልጋዮች እና ሌሎች የማንነት አቅራቢዎች ተጠቃሚዎችን ማመሳሰል።
  • የከርቤሮስ ድልድይ - ለልሾ ሰር ተጠቃሚ ማረጋገጫ የከርቤሮስ አገልጋይ መጠቀም።
  • የአስተዳዳሪ ኮንሶል - ለተዋሃደ የቅንብሮች አስተዳደር እና የመፍትሄ አማራጮች በድር በኩል።
  • የመለያ አስተዳደር ኮንሶል - የተጠቃሚውን መገለጫ እራስን ለማስተዳደር።
  • በኩባንያው የድርጅት ማንነት ላይ በመመስረት የመፍትሄውን ማበጀት.
  • 2FA ማረጋገጫ - Google አረጋጋጭ ወይም ፍሪኦቲፒ በመጠቀም TOTP/HOTP ድጋፍ።
  • የመግቢያ ፍሰቶች - የተጠቃሚ ራስን መመዝገብ, የይለፍ ቃል መልሶ ማግኘት እና ዳግም ማስጀመር, እና ሌሎችም ይቻላል.
  • የክፍለ ጊዜ አስተዳደር - አስተዳዳሪዎች የተጠቃሚ ክፍለ ጊዜዎችን ከአንድ ነጥብ ማስተዳደር ይችላሉ።
  • Token Mappers - የተጠቃሚ ባህሪያትን፣ ሚናዎችን እና ሌሎች አስፈላጊ ባህሪያትን ለቶከኖች አስገዳጅ።
  • በግዛት፣ በመተግበሪያ እና በተጠቃሚዎች ላይ ተለዋዋጭ የፖሊሲ አስተዳደር።
  • የ CORS ድጋፍ - የደንበኛ አስማሚዎች አብሮ የተሰራ የ CORS ድጋፍ አላቸው።
  • የአገልግሎት አቅራቢ በይነገጾች (SPI) - የአገልጋዩን የተለያዩ ገጽታዎች ለማበጀት የሚያስችልዎ ብዛት ያላቸው SPIs፡ የማረጋገጫ ፍሰቶች፣ የማንነት አቅራቢዎች፣ የፕሮቶኮል ካርታ እና ሌሎችም።
  • የደንበኛ አስማሚዎች ለጃቫስክሪፕት አፕሊኬሽኖች፣ WildFly፣ JBoss EAP፣ Fuse፣ Tomcat፣ Jetty፣ Spring
  • የOpenID Connect Relying Party ቤተመፃህፍትን ወይም SAML 2.0 አገልግሎት አቅራቢ ቤተመፃህፍትን ከሚደግፉ ከተለያዩ መተግበሪያዎች ጋር አብሮ ለመስራት ድጋፍ።
  • ተሰኪዎችን በመጠቀም ሊሰፋ የሚችል።

ለ CI / ሲዲ ሂደቶች፣ እንዲሁም በ Keycloak ውስጥ የአስተዳደር ሂደቶችን በራስ-ሰር ለማካሄድ፣ REST API/JAVA API መጠቀም ይቻላል። ሰነዶች በኤሌክትሮኒክ መንገድ ይገኛሉ፡-

የ REST ኤ ፒ አይ https://www.keycloak.org/docs-api/8.0/rest-api/index.html
ጃቫ ኤፒአይ https://www.keycloak.org/docs-api/8.0/javadocs/index.html

የድርጅት ማንነት አቅራቢዎች (በግቢ)

በተጠቃሚ ፌዴሬሽን አገልግሎቶች በኩል ተጠቃሚዎችን የማረጋገጥ ችሎታ።

ኤስኤስኦ በማይክሮ አገልግሎት አርክቴክቸር። Keycloakን እንጠቀማለን. ክፍል #1

Pass-through authentication መጠቀምም ይቻላል - ተጠቃሚዎች በኬርቤሮስ (ኤልዲኤፒ ወይም ኤ.ዲ.) የስራ ቦታዎች ላይ ካረጋገጡ የተጠቃሚ ስማቸውን እና የይለፍ ቃሉን እንደገና ሳያስገቡ በራስ-ሰር ወደ ኪክሎክ ማረጋገጥ ይችላሉ።

ለተጠቃሚዎች ማረጋገጫ እና ተጨማሪ ፍቃድ፣ በፕሮጀክቶች የመጀመሪያ ደረጃዎች ላይ ረጅም ቅንጅቶችን እና ውህደቶችን ስለማያካትት ለልማት አካባቢዎች በጣም ተፈጻሚ የሆነውን ተዛማጅ DBMS መጠቀም ይቻላል። በነባሪ፣ ኪክሎክ ቅንብሮችን እና የተጠቃሚ ውሂብን ለማከማቸት አብሮ የተሰራ ዲቢኤምኤስ ይጠቀማል።

የሚደገፈው ዲቢኤምኤስ ዝርዝር ሰፊ ነው እና የሚከተሉትን ያጠቃልላል፡ MS SQL፣ Oracle፣ PostgreSQL፣ MariaDB፣ Oracle እና ሌሎች። እስካሁን በጣም የተሞከሩት Oracle 12C Release1 RAC እና Galera 3.12 cluster ለ MariaDB 10.1.19 ናቸው።

የማንነት አቅራቢዎች - ማህበራዊ መግቢያ

ከማህበራዊ አውታረ መረቦች መግቢያን መጠቀም ይቻላል. ተጠቃሚዎችን የማረጋገጥ ችሎታን ለማንቃት የ Keycloack አስተዳዳሪ ኮንሶል ይጠቀሙ። በመተግበሪያው ኮድ ላይ ለውጦች አያስፈልጉም እና ይህ ተግባር ከሳጥኑ ውስጥ ይገኛል እና በማንኛውም የፕሮጀክቱ ደረጃ ላይ ሊነቃ ይችላል።

ኤስኤስኦ በማይክሮ አገልግሎት አርክቴክቸር። Keycloakን እንጠቀማለን. ክፍል #1

ለተጠቃሚ ማረጋገጫ OpenID/SAML Identity አቅራቢዎችን መጠቀም ይቻላል።

በቁልፍ ልብስ ውስጥ OAuth2ን በመጠቀም የተለመዱ የፍቃድ ሁኔታዎች

የፈቃድ ኮድ ፍሰት - ከአገልጋይ-ጎን መተግበሪያዎች ጋር ጥቅም ላይ ይውላል። በጣም ከተለመዱት የፈቃድ ዓይነቶች አንዱ የመተግበሪያው ምንጭ ኮድ እና የደንበኛ ውሂብ ለውጭ ሰዎች የማይገኙባቸው ለአገልጋይ መተግበሪያዎች ተስማሚ ስለሆነ ነው። በዚህ ጉዳይ ላይ ያለው ሂደት በማዘዋወር ላይ የተመሰረተ ነው. አፕሊኬሽኑ ከተጠቃሚ ወኪል (የተጠቃሚ-ወኪል) ጋር መስተጋብር መፍጠር መቻል አለበት፣ እንደ የድር አሳሽ - በተጠቃሚ ወኪሉ በኩል የሚመሩ የኤፒአይ ፍቃድ ኮዶችን ለመቀበል።

ስውር ፍሰት - በሞባይል ወይም በድር መተግበሪያዎች (በተጠቃሚው መሣሪያ ላይ የሚሰሩ መተግበሪያዎች) ጥቅም ላይ ይውላሉ።

ስውር የፈቃድ አይነት የደንበኛ ሚስጥራዊነት ሊረጋገጥ በማይችልባቸው የሞባይል እና የድር መተግበሪያዎች ጥቅም ላይ ይውላል። ስውር የፈቃድ አይነት የተጠቃሚ ወኪል ማዘዋወርን ይጠቀማል፣ በዚህም የመዳረሻ ማስመሰያው ለተጠቃሚው ወኪል ለመተግበሪያው ተጨማሪ ጥቅም ላይ ይውላል። ይህ ማስመሰያውን ለተጠቃሚው እና በተጠቃሚው መሣሪያ ላይ ላሉት ሌሎች መተግበሪያዎች እንዲገኝ ያደርገዋል። የዚህ ዓይነቱ የፈቃድ ፍቃድ የመተግበሪያውን ማንነት አያረጋግጥም እና ሂደቱ ራሱ በተዘዋዋሪ ዩአርኤል (ከዚህ ቀደም በአገልግሎቱ የተመዘገበ) ላይ የተመሰረተ ነው።

ስውር ፍሰት የመዳረሻ ማስመሰያ ማደስ ምልክቶችን አይደግፍም።

የደንበኛ ምስክርነቶች የስጦታ ፍሰት - አፕሊኬሽኑ ኤፒአይ ሲደርስ ጥቅም ላይ ይውላል። ይህ ዓይነቱ የፈቃድ ፍቃድ በተለምዶ ያለተጠቃሚ መስተጋብር ከበስተጀርባ መከናወን ያለበት ከአገልጋይ ወደ አገልጋይ መስተጋብር ያገለግላል። የደንበኛ ምስክርነቶች ለድር አገልግሎት (ምስጢራዊ ደንበኛ) ሌላ የድር አገልግሎት ሲደውሉ ለማረጋገጥ ተጠቃሚን ከማስመሰል ይልቅ የራሱን ምስክርነቶችን እንዲጠቀም ያስችለዋል። ለደህንነት ከፍተኛ ደረጃ የጥሪ አገልግሎት የምስክር ወረቀት (ከጋራ ሚስጥር ይልቅ) እንደ ምስክርነት መጠቀም ይቻላል.

የOAuth2 ዝርዝር በ ውስጥ ተገልጿል
አር.ሲ.ኤፍ.-6749
አር.ሲ.ኤፍ.-8252
አር.ሲ.ኤፍ.-6819

JWT ቶከን እና ጥቅሞቹ

JWT (JSON Web Token) ክፍት ደረጃ ነው (https://tools.ietf.org/html/rfc7519) በተዋዋይ ወገኖች መካከል መረጃን እንደ JSON ነገር ደህንነቱ በተጠበቀ መልኩ ለማስተላለፍ የታመቀ እና እራሱን የቻለ መንገድ ይገልጻል።

በደረጃው መሰረት, ማስመሰያው ሶስት ክፍሎችን በመሠረት-64 ቅርጸት, በነጥቦች ይለያል. የመጀመሪያው ክፍል የዲጂታል ፊርማ ለማግኘት የቶከን አይነት እና የሃሽ አልጎሪዝም ስም የያዘው ራስጌ ይባላል። ሁለተኛው ክፍል መሰረታዊ መረጃን (ተጠቃሚ, ባህሪያት, ወዘተ) ያከማቻል. ሦስተኛው ክፍል ዲጂታል ፊርማ ነው.

. .
በእርስዎ DB ውስጥ ማስመሰያ በጭራሽ አታከማቹ። ትክክለኛ ቶከን ከይለፍ ቃል ጋር እኩል ስለሆነ ማስመሰያውን ማከማቸት የይለፍ ቃሉን በጠራ ፅሁፍ እንደ ማከማቸት ነው።
የመዳረሻ ማስመሰያ ለባለቤቱ ደህንነታቸው የተጠበቁ የአገልጋይ ሀብቶችን እንዲያገኙ የሚያስችል ምልክት ነው። ብዙውን ጊዜ አጭር የህይወት ጊዜ አለው እና እንደ ማስመሰያ የጠየቀው አካል አይፒ አድራሻ ያሉ ተጨማሪ መረጃዎችን ሊይዝ ይችላል።

ማስመሰያ አድስ ደንበኞቻቸው የህይወት ዘመናቸው ካለቀ በኋላ አዲስ የመዳረሻ ቶከኖችን እንዲጠይቁ የሚያስችል ምልክት ነው። እነዚህ ምልክቶች አብዛኛውን ጊዜ ለረጅም ጊዜ ይሰጣሉ.

በማይክሮ አገልግሎት ሥነ ሕንፃ ውስጥ የመጠቀም ዋና ጥቅሞች-

  • በአንድ ጊዜ በማረጋገጥ የተለያዩ መተግበሪያዎችን እና አገልግሎቶችን የማግኘት ችሎታ።
  • በተጠቃሚው መገለጫ ውስጥ በርካታ አስፈላጊ ባህሪያት ከሌሉ ፣ አውቶማቲክ እና በረራን ጨምሮ ወደ ክፍያ ጭነት ሊጨመሩ የሚችሉ መረጃዎችን ማበልጸግ ይቻላል።
  • ሾለ ንቁ ክፍለ-ጊዜዎች መረጃ ማከማቸት አያስፈልግም, የአገልጋይ መተግበሪያ ፊርማውን ማረጋገጥ ብቻ ነው የሚያስፈልገው.
  • ተጨማሪ ተለዋዋጭ የመዳረሻ መቆጣጠሪያ በክፍያ ጭነት ውስጥ ባሉ ተጨማሪ ባህሪያት።
  • ለራስጌ እና ለክፍያ ማስመሰያ ፊርማ መጠቀም የመፍትሄውን አጠቃላይ ደህንነት ይጨምራል።

JWT ማስመሰያ - ቅንብር

ርዕስ - በነባሪ, ራስጌው የማስመሰያ አይነት እና ለማመስጠር ጥቅም ላይ የዋለውን አልጎሪዝም ብቻ ይዟል.

የማስመሰያው አይነት በ "ታይፕ" ቁልፍ ውስጥ ተከማችቷል. የ'አይነት' ቁልፍ በJWT ውስጥ ችላ ተብሏል። የ"ታይፕ" ቁልፉ ካለ፣ ይህ ነገር የJSON ድር ቶከን መሆኑን ለማመልከት እሴቱ JWT መሆን አለበት።

ሁለተኛው ቁልፍ "alg" ማስመሰያውን ለማመስጠር ጥቅም ላይ የዋለውን ስልተ ቀመር ይገልፃል። በነባሪነት ወደ HS256 መቀናበር አለበት። ራስጌው በ ቤዝ64 ውስጥ ተቀምጧል።

{ "alg": "HS256", "አይነት": "JWT"}
ጭነት (ይዘት) - ክፍያው መፈተሽ ያለበትን ማንኛውንም መረጃ ያከማቻል። በመክፈያው ውስጥ ያለው እያንዳንዱ ቁልፍ "የይገባኛል ጥያቄ" በመባል ይታወቃል. ለምሳሌ፣ ማመልከቻውን በግብዣ (ዝግ ፕሮሞ) ብቻ ማስገባት ይችላሉ። አንድ ሰው እንዲሳተፍ ለመጋበዝ ስንፈልግ የመጋበዣ ደብዳቤ እንልካለን። የኢሜል አድራሻው ግብዣውን የተቀበለው ሰው መሆኑን ማረጋገጥ አስፈላጊ ነው, ስለዚህ ይህን አድራሻ በክፍያ ጭነት ውስጥ እናስገባዋለን, ለዚህም በ "ኢሜል" ቁልፍ ውስጥ እናከማቻለን.

{"ኢሜል":"[ኢሜል የተጠበቀ]"}

በደመወዝ ጭነት ውስጥ ያሉ ቁልፎች የዘፈቀደ ሊሆኑ ይችላሉ። ሆኖም፣ የተጠበቁ ጥቂቶች አሉ፡-

  • iss (አውጪ) - ማስመሰያው የሚላክበትን ማመልከቻ ይለያል።
  • ንዑስ (ርዕሰ ጉዳይ) - የቶክን ርዕሰ ጉዳይ ይገልጻል.
  • aud (ተመልካቾች) የዚህ ማስመሰያ ተቀባዮች ዝርዝር የሆነ የጉዳይ-sensitive ሕብረቁምፊዎች ወይም ዩአርአይዎች ድርድር ነው። ተቀባዩ ወገን ከተሰጠው ቁልፍ ጋር JWT ሲቀበል በተቀባዮች ውስጥ እራሱን መኖሩን ማረጋገጥ አለበት - አለበለዚያ ምልክቱን ችላ ይበሉ።
  • exp (የማለቂያ ጊዜ) - ማስመሰያው የሚያበቃበትን ጊዜ ያመለክታል. የJWT ስታንዳርድ ጊዜው ያለፈባቸውን ቶከኖች ውድቅ ለማድረግ ሁሉንም ትግበራዎቹን ይፈልጋል። የኤክስፕ ቁልፍ በዩኒክስ ቅርጸት የጊዜ ማህተም መሆን አለበት።
  • nbf (ከዚህ በፊት ያልሆነ) ምልክቱ የሚሰራበትን ጊዜ የሚወስን በዩኒክስ ቅርጸት ያለ ጊዜ ነው።
  • iat (የተሰጠ) - ይህ ቁልፍ ማስመሰያው የወጣበትን ጊዜ ይወክላል እና የJWTን ዕድሜ ለመወሰን ሊያገለግል ይችላል። የ iat ቁልፍ በዩኒክስ ቅርጸት የጊዜ ማህተም መሆን አለበት።
  • Jti (JWT መታወቂያ) - የዚህን ማስመሰያ ልዩ መለያ የሚገልጽ ሕብረቁምፊ

ክፍያው ኢንክሪፕትድ በሆነ መልኩ እንደማይተላለፍ መረዳት አስፈላጊ ነው (ምንም እንኳን ቶከኖች መክተት ቢችሉም እና ከዚያ ኢንክሪፕት የተደረገ ውሂብ ማስተላለፍ ቢቻልም)። ስለዚህ, ምንም ሚስጥራዊ መረጃ ማከማቸት አይችልም. ልክ እንደ ራስጌው፣ የተጫነው ጭነት base64 ኮድ ነው።
ፊርማ - ርዕስ እና ክፍያ ሲኖረን ፊርማውን ማስላት እንችላለን.

Base64-encoded፡ ራስጌ እና ክፍያ ተወስደዋል፣ በነጥብ በኩል ወደ ሕብረቁምፊ ይጣመራሉ። ከዚያ ይህ ሕብረቁምፊ እና የምስጢር ቁልፉ በአርዕስት ("አልግ" ቁልፍ) ውስጥ ወደተገለጸው የኢንክሪፕሽን አልጎሪዝም ግብአት ናቸው። ቁልፉ ማንኛውም ሕብረቁምፊ ሊሆን ይችላል. ለማንሳት ረጅም ጊዜ ስለሚወስድ ረዣዥም ሕብረቁምፊዎች በጣም ተመራጭ ይሆናሉ።

{"alg":"RSA1_5","የክፍያ ጭነት":"A128CBC-HS256"}

የቁልፍ ክላስተር ክላስተር አርክቴክቸር መገንባት

ለሁሉም ፕሮጀክቶች ነጠላ ዘለላ ሲጠቀሙ፣ ለኤስኤስኦ መፍትሄ ተጨማሪ መስፈርቶች አሉ። የፕሮጀክቶች ብዛት አነስተኛ በሚሆንበት ጊዜ, እነዚህ መስፈርቶች ለሁሉም ፕሮጀክቶች ያን ያህል አይታዩም, ነገር ግን በተጠቃሚዎች እና ውህደቶች መጨመር, የመገኘት እና የአፈፃፀም መስፈርቶች ይጨምራሉ.

ነጠላ ኤስኤስኦ አለመሳካት አደጋ መጨመር የመፍትሄው አርክቴክቸር መስፈርቶችን እና ለተደጋጋሚ አካላት ጥቅም ላይ የሚውሉ ዘዴዎችን ይጨምራል እና በጣም ጥብቅ ወደ SLA ይመራል. በዚህ ረገድ, ብዙውን ጊዜ የመፍትሄ ሃሳቦችን በመተግበር ወይም በመጀመር ላይ, ፕሮጀክቶች የራሳቸው ጥፋትን የማይታገስ መሠረተ ልማት አላቸው. ልማቱ እየገፋ ሲሄድ ለልማትና ለዕድገት ዕድሎችን ማስቀመጥ ያስፈልጋል። የኮንቴይነር ቨርቹዋል ወይም የተዳቀለ አቀራረብን በመጠቀም ያልተሳካ ክላስተር መገንባት በጣም ተለዋዋጭ ነው።

በንቁ/አክቲቭ እና ተገብሮ ክላስተር ሁነታዎች ውስጥ ለመስራት በተዛማጅ ዳታቤዝ ውስጥ ያለውን የውሂብ ወጥነት ማረጋገጥ ያስፈልጋል - ሁለቱም የውሂብ ጎታ አንጓዎች በተለያዩ የጂኦ-የተከፋፈሉ የውሂብ ማዕከሎች መካከል በተመሳሳይ መልኩ መባዛት አለባቸው።

ስህተትን መቋቋም የሚችል የመጫኛ ቀላሉ ምሳሌ።

ኤስኤስኦ በማይክሮ አገልግሎት አርክቴክቸር። Keycloakን እንጠቀማለን. ክፍል #1

ነጠላ ዘለላ መጠቀም ምን ጥቅሞች አሉት

  • ከፍተኛ ተገኝነት እና አፈፃፀም.
  • የክወና ሁነታዎች ድጋፍ: ንቁ / ንቁ, ንቁ / ተገብሮ.
  • በተለዋዋጭ የመመዘን ችሎታ - የመያዣ ቨርቹዋል ሲጠቀሙ.
  • የተማከለ አስተዳደር እና ክትትል እድል.
  • በፕሮጀክቶች ውስጥ የተጠቃሚዎችን የመለየት / የማረጋገጫ / የፍቃድ አንድነት አቀራረብ።
  • ያለተጠቃሚ ተሳትፎ በተለያዩ ፕሮጀክቶች መካከል የበለጠ ግልጽነት ያለው መስተጋብር።
  • በተለያዩ ፕሮጀክቶች የ JWT ቶከንን እንደገና የመጠቀም ችሎታ.
  • ነጠላ የመተማመን ነጥብ።
  • በማይክሮ ሰርቪስ/የኮንቴይነር ቨርችዋል በመጠቀም የፕሮጀክቶች ፈጣን ማስጀመር (ተጨማሪ ክፍሎችን ማንሳት እና ማዋቀር አያስፈልግም)።
  • ከሻጩ የንግድ ድጋፍ መግዛት ይቻላል.

ክላስተር ሲያቅዱ ምን መፈለግ እንዳለበት

ዲቢኤምኤስ

Keycloak ለማከማቸት የውሂብ ጎታ አስተዳደር ስርዓትን ይጠቀማል፡ ግዛቶች፣ ደንበኞች፣ ተጠቃሚዎች፣ ወዘተ.
ሰፊ የ DBMS ክልል ይደገፋል፡ MS SQL፣ Oracle፣ MySQL፣ PostgreSQL። Keycloak ከራሱ አብሮገነብ ተዛማጅ የውሂብ ጎታ ጋር አብሮ ይመጣል። ላልተጫኑ አካባቢዎች - እንደ የልማት አካባቢዎች እንዲጠቀሙ ይመከራል.

በActive/Active and Active/Passive ክላስተር ሁነታዎች ውስጥ ለመስራት፣በግንኙነት ዳታቤዝ ውስጥ ያለው የውሂብ ወጥነት ያስፈልጋል፣እና ሁለቱም የመረጃ ቋት ክላስተር ኖዶች በመረጃ ማዕከሎች መካከል በተመሳሳይ መልኩ ይባዛሉ።

የተከፋፈለ መሸጎጫ (Infinspan)

ክላስተር በትክክል እንዲሰራ የJBoss Data Gridን በመጠቀም የሚከተሉትን የመሸጎጫ ዓይነቶች ተጨማሪ ማመሳሰል ያስፈልጋል።

የማረጋገጫ ክፍለ-ጊዜዎች - አንድን የተወሰነ ተጠቃሚ ሲያረጋግጡ ውሂብን ለማስቀመጥ ይጠቅማል። ከዚህ መሸጎጫ የሚቀርቡ ጥያቄዎች አፕሊኬሽኑን ሳይሆን አሳሹን እና የ Keycloak አገልጋይን ብቻ ያካትታሉ።

የድርጊት ቶከኖች ተጠቃሚው አንድን ድርጊት በማይመሳሰል መልኩ (በኢሜል) ማረጋገጥ ለሚፈልግባቸው ሁኔታዎች ጥቅም ላይ ይውላሉ። ለምሳሌ፣ በሚረሳ የይለፍ ቃል ፍሰት ወቅት የActionTokens Infinispan መሸጎጫ አስቀድሞ ጥቅም ላይ ስለዋሉት ተያያዥ የድርጊት ቶከኖች ሜታዳታ ለመከታተል ይጠቅማል፣ ስለዚህ እንደገና ጥቅም ላይ ሊውል አይችልም።

ቀጣይነት ያለው መረጃን መሸጎጥ እና ውድቅ ማድረግ - በመረጃ ቋቱ ላይ አላስፈላጊ ጥያቄዎችን ለማስወገድ የማያቋርጥ ውሂብን ለመሸጎጥ ይጠቅማል። የትኛውም የኪሎክ አገልጋይ ውሂቡን ሲያዘምን በሁሉም የመረጃ ማእከላት ውስጥ ያሉ ሌሎች ሁሉም የ Keycloak አገልጋዮች ስለሱ ማወቅ አለባቸው።

ሥራ - ልክ ያልሆኑ መልዕክቶችን በክላስተር ኖዶች እና በመረጃ ማዕከሎች መካከል ለመላክ ብቻ ጥቅም ላይ ይውላል።

የተጠቃሚ ክፍለ-ጊዜዎች - ለተጠቃሚው የአሳሽ ክፍለ ጊዜ የሚቆይ ስለ ተጠቃሚ ክፍለ-ጊዜዎች ውሂብ ለማከማቸት ይጠቅማል። መሸጎጫው ከዋና ተጠቃሚ እና ከመተግበሪያው የሚመጡ የኤችቲቲፒ ጥያቄዎችን ማካሄድ አለበት።

የብሩት ሃይል ጥበቃ - ስለ ያልተሳኩ መግቢያዎች መረጃን ለመከታተል ይጠቅማል።

ጭነት ማመጣጠን

የጭነት ማመሳከሪያው ለቁልፍ ልብስ ነጠላ መግቢያ ነጥብ ነው እና ተለጣፊ ክፍለ ጊዜዎችን መደገፍ አለበት።

የመተግበሪያ አገልጋዮች

የንጥረ ነገሮች እርስበርስ መስተጋብር ለመቆጣጠር ጥቅም ላይ ይውላሉ እና ነባር አውቶሜሽን መሳሪያዎችን እና ተለዋዋጭ የመሠረተ ልማት አውቶማቲክ መሳሪያዎችን በመጠቀም ቨርቹዋል ወይም ኮንቴይነር ሊሆኑ ይችላሉ። በOpenShift፣ Kubernates፣ Rancher ውስጥ በጣም የተለመዱ የማሰማራት ሁኔታዎች።

ይህ የመጀመሪያውን ክፍል ያጠናቅቃል - ቲዎሬቲካል. በሚቀጥሉት ተከታታይ መጣጥፎች ከተለያዩ ማንነት አቅራቢዎች ጋር የመዋሃድ ምሳሌዎች እና የቅንጅቶች ምሳሌዎች ይተነተናል።

ምንጭ: hab.com

አስተያየት ያክሉ