Π”Π—Π‘ Π·Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. НиС користимС Keycloak. Π”Π΅Π» 1

Π’ΠΎ која Π±ΠΈΠ»ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° компанија, Π° X5 Retail Group Π½Π΅ Π΅ исклучок, бидСјќи сС Ρ€Π°Π·Π²ΠΈΠ²Π°, Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π·Π° ΠΊΠΎΠΈ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ корисникот сС Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°. Π‘ΠΎ Ρ‚Π΅ΠΊΠΎΡ‚ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Π΅ бСспрСкорна Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π° Π½Π° корисницитС ΠΎΠ΄ Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π²ΠΎ Π΄Ρ€ΡƒΠ³Π°, Π° ΠΏΠΎΡ‚ΠΎΠ° сС Ρ˜Π°Π²ΡƒΠ²Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° сС користи СдинствСн сСрвСр Π·Π° Π΅Π΄Π½ΠΎ пССњС (SSO). Но, ΡˆΡ‚ΠΎ Π΅ со ΠΊΠΎΠ³Π° Π΄Π°Π²Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ ΠΊΠ°ΠΊΠΎ АД ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ вСќС сС користат Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ. Класа систСми Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈ β€žΠ±Ρ€ΠΎΠΊΠ΅Ρ€ΠΈ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°β€œ ќС Π΄ΠΎΡ˜Π΄Π°Ρ‚ Π½Π° помош. ΠΠ°Ρ˜Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ сС Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ прСтставници, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Keycloak, Gravitee Access Management ΠΈΡ‚Π½. ΠΠ°Ρ˜Ρ‡Π΅ΡΡ‚ΠΎ, случаитС Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ: машинска ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π°, учСство Π½Π° корисникот ΠΈΡ‚Π½. Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΌΠΎΡ€Π° Π΄Π° ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° флСксибилна ΠΈ скалабилна функционалност која ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° ситС Π±Π°Ρ€Π°ΡšΠ° Π²ΠΎ Π΅Π΄Π½ΠΎ. ΠΈ Ρ‚Π°ΠΊΠ²ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° Π½Π°ΡˆΠ°Ρ‚Π° компанија сСга ΠΈΠΌΠ° индикациски Π±Ρ€ΠΎΠΊΠ΅Ρ€ - Keycloak.

Π”Π—Π‘ Π·Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. НиС користимС Keycloak. Π”Π΅Π» 1

Keycloak Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° пристап кој Π³ΠΎ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π° RedHat. Π’ΠΎΠ° Π΅ основа Π·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ˜Π°Ρ‚Π° ΠΊΠΎΠΈ користат Π”Π—Π‘ - RH-SSO.

Основни ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΈ

ΠŸΡ€Π΅Π΄ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°Ρ‚Π° ΠΈ пристапитС, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ‚Π΅ ΠΈ рСдослСдот Π½Π° процСситС:

Π”Π—Π‘ Π·Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. НиС користимС Keycloak. Π”Π΅Π» 1

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π΅ постапка Π·Π° ΠΏΡ€Π΅ΠΏΠΎΠ·Π½Π°Π²Π°ΡšΠ΅ Π½Π° ΡΡƒΠ±Ρ˜Π΅ΠΊΡ‚ΠΎΡ‚ ΠΏΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (со Π΄Ρ€ΡƒΠ³ΠΈ Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ, ΠΎΠ²Π° Π΅ ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΈΠΌΠ΅, најава ΠΈΠ»ΠΈ Π±Ρ€ΠΎΡ˜).

ΠΠ²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° – ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° (корисникот сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π° со Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°, писмото сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π° со СлСктронски потпис ΠΈΡ‚Π½.)

ΠžΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ - ΠΎΠ²Π° Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ пристап Π΄ΠΎ рСсурс (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎ Π΅-ΠΏΠΎΡˆΡ‚Π°).

ΠšΠ»ΡƒΡ‡Π½ΠΈΠΊ Π·Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚

ΠΊΠ»ΡƒΡ‡ Π½Π°ΠΌΠ΅Ρ‚ΠΊΠ° Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ ΠΈ пристап со ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ΠΎ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π²ΠΎ IS ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користат шСми Π½Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

Keycloak Π½ΡƒΠ΄ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Π΅Π΄Π½ΠΎ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ (SSO), ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ со посрСдство ΠΈ ΡΠΎΡ†ΠΈΡ˜Π°Π»Π½ΠΎ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅, Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° корисници, Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, административна ΠΊΠΎΠ½Π·ΠΎΠ»Π° ΠΈ ΠΊΠΎΠ½Π·ΠΎΠ»Π° Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со смСтки.

Основна функционалност ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½Π° ΠΎΠ΄ Keycloak:

  • Едноставно Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΈ Π΅Π΄Π½ΠΎ ΠΎΠ΄Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° прСлистувачот.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° OpenID/OAuth 2.0/SAML.
  • ΠŸΠΎΡΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ – Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° со помош Π½Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ OpenID Connect ΠΈΠ»ΠΈ SAML ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€ΠΈ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚.
  • Π‘ΠΎΡ†ΠΈΡ˜Π°Π»Π½ΠΎ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ - Google, GitHub, Facebook, Twitter ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° корисникот.
  • ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠ° Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΡ˜Π° - ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° корисници ΠΎΠ΄ сСрвСри LDAP ΠΈ Active Directory ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ.
  • Kerberos bridge – ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Kerberos сСрвСр Π·Π° автоматска Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° корисникот.
  • Административна ΠΊΠΎΠ½Π·ΠΎΠ»Π° - Π·Π° ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со поставкитС ΠΈ ΠΎΠΏΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° ΠΏΡ€Π΅ΠΊΡƒ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚.
  • Конзола Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со смСтки - Π·Π° ΡΠ°ΠΌΠΎΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со корисничкиот ΠΏΡ€ΠΎΡ„ΠΈΠ».
  • ΠŸΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π²Ρ€Π· основа Π½Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΈΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ˜Π°Ρ‚Π°.
  • 2FA Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° – TOTP/HOTP ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Google Authenticator ΠΈΠ»ΠΈ FreeOTP.
  • Π’Π΅ΠΊΠΎΠ²ΠΈ Π·Π° најава - ΠΌΠΎΠΆΠ½Π° Π΅ ΡΠ°ΠΌΠΎΡ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° корисникот, Π²Ρ€Π°ΡœΠ°ΡšΠ΅ ΠΈ Ρ€Π΅ΡΠ΅Ρ‚ΠΈΡ€Π°ΡšΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ.
  • Π£ΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со сСсии - администраторитС ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Π°Ρ‚ со сСсиитС Π½Π° корисницитС ΠΎΠ΄ Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°.
  • Mappers Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ – Π²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° корисничкитС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ, ΡƒΠ»ΠΎΠ³ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π²ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ.
  • ЀлСксибилно ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° ΠΏΡ€Π΅ΠΊΡƒ областа, Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ корисницитС.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° CORS - ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΡ‚Π΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈ ΠΈΠΌΠ°Π°Ρ‚ Π²Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° CORS.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ Π½Π° Π΄ΠΎΠ±Π°Π²ΡƒΠ²Π°Ρ‡ΠΈ Π½Π° услуги (SPI) - Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Π½Π° SPI ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° приспособитС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ аспСкти Π½Π° сСрвСрот: Ρ‚Π΅ΠΊΠΎΠ²ΠΈ Π½Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, Π΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ, ΠΌΠ°ΠΏΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ повСќС.
  • ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΈ Π·Π° JavaScript Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, WildFly, JBoss EAP, Fuse, Tomcat, Jetty, Spring.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° со Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΈ ја ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° засСгнатата страна Π½Π° OpenID Connect ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° со Π΄Π°Π²Π°Ρ‚Π΅Π» Π½Π° услуги SAML 2.0.
  • МоТС Π΄Π° сС ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈ со помош Π½Π° ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈ.

Π—Π° процСситС Π½Π° CI/CD, ΠΊΠ°ΠΊΠΎ ΠΈ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° процСситС Π½Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ Keycloak, ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи REST API/JAVA API. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π΅ достапна Π²ΠΎ СлСктронска Ρ„ΠΎΡ€ΠΌΠ°:

ОБВАНАВОВО 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

Π”Π°Π²Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅ (Π²ΠΎ простор)

ΠœΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° корисникот ΠΏΡ€Π΅ΠΊΡƒ услугитС Π½Π° ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠ°Ρ‚Π° Ρ„Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΡ˜Π°.

Π”Π—Π‘ Π·Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. НиС користимС Keycloak. Π”Π΅Π» 1

МоТС Π΄Π° сС користи ΠΈ Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΏΡ€Π΅ΠΊΡƒ ΠΏΡ€Π΅ΠΌΠΈΠ½ - Π°ΠΊΠΎ корисницитС Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ‚Π΅ станици со Kerberos (LDAP ΠΈΠ»ΠΈ AD), Ρ‚ΠΎΠ³Π°Ρˆ Ρ‚ΠΈΠ΅ ΠΌΠΎΠΆΠ°Ρ‚ автоматски Π΄Π° сС Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ Π½Π° Keycloak Π±Π΅Π· Π΄Π° ΠΌΠΎΡ€Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° Π³ΠΈ внСсуваат Π½ΠΈΠ²Π½ΠΎΡ‚ΠΎ корисничко ΠΈΠΌΠ΅ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°.

Π—Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ ΠΏΠΎΠ½Π°Ρ‚Π°ΠΌΠΎΡˆΠ½ΠΎ ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° корисницитС, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС користи Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° DBMS, ΡˆΡ‚ΠΎ Π΅ Π½Π°Ρ˜ΠΏΡ€ΠΈΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ срСдини, бидСјќи Π½Π΅ ΠΏΠΎΠ²Π»Π΅ΠΊΡƒΠ²Π° Π΄ΠΎΠ»Π³ΠΈ поставки ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΎ Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°Π·ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄Π½ΠΎ, Keycloak користи Π²Π³Ρ€Π°Π΄Π΅Π½ DBMS Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° поставкитС ΠΈ корисничкитС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

Листата Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ DBMS Π΅ ΠΎΠ±Π΅ΠΌΠ½Π° ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°: MS SQL, Oracle, PostgreSQL, MariaDB, Oracle ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ. ΠΠ°Ρ˜Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°Π½ΠΈ досСга сС Oracle 12C Release1 RAC ΠΈ Galera 3.12 кластСрот Π·Π° MariaDB 10.1.19.

Π”Π°Π²Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ - ΡΠΎΡ†ΠΈΡ˜Π°Π»Π½ΠΎ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅

МоТно Π΅ Π΄Π° сС користи Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ ΡΠΎΡ†ΠΈΡ˜Π°Π»Π½ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΈ. Π—Π° Π΄Π° ја ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡ‚Π΅ моТноста Π·Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° корисницитС, користСтС ја административната ΠΊΠΎΠ½Π·ΠΎΠ»Π° Keycloack. НС сС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΎΠ²Π°Π° функционалност Π΅ достапна Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ ΠΊΡƒΡ‚ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π° Π²ΠΎ која Π±ΠΈΠ»ΠΎ Ρ„Π°Π·Π° ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚.

Π”Π—Π‘ Π·Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. НиС користимС Keycloak. Π”Π΅Π» 1

Π—Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° корисницитС, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС користат ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€ΠΈ Π½Π° OpenID/SAML Identity.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Π° Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° OAuth2 Π²ΠΎ Keycloak

Π’Π΅ΠΊ Π½Π° ΠΊΠΎΠ΄ Π·Π° ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ - сС користи со Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ΄ страна Π½Π° сСрвСрот. Π•Π΄Π΅Π½ ΠΎΠ΄ Π½Π°Ρ˜Ρ‡Π΅ΡΡ‚ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° бидСјќи Π΅ Π΄ΠΎΠ±Ρ€ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ΄ страна Π½Π° сСрвСрот ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ΠΈΠ·Π²ΠΎΡ€Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π΅ сС достапни Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΠΎΡ‚ Π²ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜ сС заснова Π½Π° ΠΏΡ€Π΅Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅. ΠΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° со кориснички Π°Π³Π΅Π½Ρ‚ (кориснички Π°Π³Π΅Π½Ρ‚), ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ Π²Π΅Π±-прСлистувач, Π·Π° Π΄Π° ΠΏΡ€ΠΈΠΌΠ° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° API прослСдСни ΠΏΡ€Π΅ΠΊΡƒ корисничкиот Π°Π³Π΅Π½Ρ‚.

Π˜ΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π΅Π½ Ρ‚Π΅ΠΊ - сС користи ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈΠ»ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° ΡƒΡ€Π΅Π΄ΠΎΡ‚ Π½Π° корисникот).

Π˜ΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΈΠΎΡ‚ Ρ‚ΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° сС користи ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° довСрливоста Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚. Π˜ΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΈΠΎΡ‚ Ρ‚ΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° користи ΠΈ ΠΏΡ€Π΅Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° кориснички Π°Π³Π΅Π½Ρ‚, ΠΏΡ€ΠΈ ΡˆΡ‚ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ Π·Π° пристап сС прСнСсува Π½Π° корисничкиот Π°Π³Π΅Π½Ρ‚ Π·Π° ΠΏΠΎΠ½Π°Ρ‚Π°ΠΌΠΎΡˆΠ½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°. Ова Π³ΠΎ ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ достапСн Π·Π° корисникот ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ€Π΅Π΄ΠΎΡ‚ Π½Π° корисникот. Овој Ρ‚ΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π΅ Π³ΠΎ ΠΏΠΎΡ‚Π²Ρ€Π΄ΡƒΠ²Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°, Π° самиот процСс сС ΠΏΠΎΡ‚ΠΏΠΈΡ€Π° Π½Π° URL-адрСса Π·Π° ΠΏΡ€Π΅Π½Π°ΡΠΎΡ‡ΡƒΠ²Π°ΡšΠ΅ (ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ рСгистрирана Π²ΠΎ услугата).

Π˜ΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΈΠΎΡ‚ Ρ‚Π΅ΠΊ Π½Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° ΠΎΡΠ²Π΅ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° пристап.

Π’Π΅ΠΊ Π½Π° Π³Ρ€Π°Π½Ρ‚ΠΎΠ²ΠΈ Π·Π° Π°ΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΈΠ²ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ β€” сС користи ΠΊΠΎΠ³Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° пристапува Π΄ΠΎ API. Овој Ρ‚ΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС користи Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΈ ΠΎΠ΄ сСрвСр Π΄ΠΎ сСрвСр ΡˆΡ‚ΠΎ ΠΌΠΎΡ€Π° Π΄Π° сС ΠΏΠΎΡ˜Π°Π²Π°Ρ‚ Π²ΠΎ Π·Π°Π΄Π½ΠΈΠ½Π° Π±Π΅Π· нСпосрСдна ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со корисникот. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΡ‚ Π½Π° Π³Ρ€Π°Π½Ρ‚ΠΎΠ²ΠΈ Π·Π° Π°ΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΈΠ²ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π° Π²Π΅Π±-услуга (Π΄ΠΎΠ²Π΅Ρ€Π»ΠΈΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚) Π΄Π° Π³ΠΈ користи сопствСнитС ΠΈΠ½Π³Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ намСсто Π΄Π° Π³ΠΎ ΠΈΠΌΠΈΡ‚ΠΈΡ€Π° корисникот Π·Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΊΠΎΠ³Π° ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° Π΄Ρ€ΡƒΠ³Π° Π²Π΅Π±-услуга. Π—Π° повисоко Π½ΠΈΠ²ΠΎ Π½Π° бСзбСдност, ΠΌΠΎΠΆΠ½ΠΎ Π΅ услугата Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π΄Π° користи сСртификат (намСсто сподСлСна Ρ‚Π°Ρ˜Π½Π°) ΠΊΠ°ΠΊΠΎ ΠΈΠ½Π³Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° OAuth2 Π΅ опишана Π²ΠΎ
RFC-6749
RFC-8252
RFC-6819

JWT Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈ

JWT (JSON Web Token) Π΅ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ стандард (https://tools.ietf.org/html/rfc7519) ΡˆΡ‚ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π΅Π½ ΠΈ самостоСн Π½Π°Ρ‡ΠΈΠ½ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ ΠΏΡ€Π΅Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ странитС ΠΊΠ°ΠΊΠΎ JSON ΠΎΠ±Ρ˜Π΅ΠΊΡ‚.

Π‘ΠΏΠΎΡ€Π΅Π΄ стандардот, Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ сС состои ΠΎΠ΄ Ρ‚Ρ€ΠΈ Π΄Π΅Π»Π° Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°Π·Π°-64, ΠΎΠ΄Π΄Π΅Π»Π΅Π½ΠΈ со Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠŸΡ€Π²ΠΈΠΎΡ‚ Π΄Π΅Π» сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅, кој Π³ΠΎ содрТи Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΡ‚ Π·Π° Ρ…Π°Ρˆ Π·Π° добивањС Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π΅Π½ потпис. Π’Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ Π΄Π΅Π» Π³ΠΈ складира основнитС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (корисник, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΈΡ‚Π½.). Π’Ρ€Π΅Ρ‚ΠΈΠΎΡ‚ Π΄Π΅Π» Π΅ Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π΅Π½ потпис.

. .
Никогаш Π½Π΅ Ρ‡ΡƒΠ²Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ Π²ΠΎ Π²Π°ΡˆΠ°Ρ‚Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π²Π°ΠΆΠ΅Ρ‡ΠΊΠΈΠΎΡ‚ Ρ‚ΠΎΠΊΠ΅Π½ Π΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π΅Π½ Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°, ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ Π΅ исто ΠΊΠ°ΠΊΠΎ ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Π²ΠΎ јасСн тСкст.
Π’ΠΎΠΊΠ΅Π½ Π·Π° пристап Π΅ Ρ‚ΠΎΠΊΠ΅Π½ ΡˆΡ‚ΠΎ ΠΌΡƒ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π½Π° сопствСникот пристап Π΄ΠΎ Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½ΠΈΡ‚Π΅ рСсурси Π½Π° сСрвСрот. ΠžΠ±ΠΈΡ‡Π½ΠΎ ΠΈΠΌΠ° ΠΊΡ€Π°Ρ‚ΠΎΠΊ Π²Π΅ΠΊ Π½Π° Ρ‚Ρ€Π°Π΅ΡšΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° носи Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π΅ IP адрСсата Π½Π° страната ΡˆΡ‚ΠΎ Π³ΠΎ Π±Π°Ρ€Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚.

ОсвСТи Ρ‚ΠΎΠΊΠ΅Π½ Π΅ Ρ‚ΠΎΠΊΠ΅Π½ кој ΠΈΠΌ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΄Π° Π±Π°Ρ€Π°Π°Ρ‚ Π½ΠΎΠ²ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° пристап ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС ΠΈΠΌ истСчС ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈΠΎΡ‚ Π²Π΅ΠΊ. ОвиС Ρ‚ΠΎΠΊΠ΅Π½ΠΈ ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС ΠΈΠ·Π΄Π°Π²Π°Π°Ρ‚ Π½Π° Π΄ΠΎΠ»Π³ врСмСнски ΠΏΠ΅Ρ€ΠΈΠΎΠ΄.

Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ прСдности Π½Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π²ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° микросСрвис:

  • ΠœΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° пристап Π΄ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ услуги ΠΏΡ€Π΅ΠΊΡƒ Π΅Π΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°.
  • Π’ΠΎ отсуство Π½Π° Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π²ΠΎ корисничкиот ΠΏΡ€ΠΎΡ„ΠΈΠ», ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС Π·Π±ΠΎΠ³Π°Ρ‚Π°Ρ‚ со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π΄ΠΎΠ΄Π°Π΄Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚, Π²ΠΊΠ»ΡƒΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ автоматски ΠΈ Π²ΠΎ Π»Π΅Ρ‚.
  • НСма ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° сС складираат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ сСсии; сСрвСрската Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Ρ‚Ρ€Π΅Π±Π° само Π΄Π° Π³ΠΎ ΠΏΠΎΡ‚Π²Ρ€Π΄ΠΈ потписот.
  • ΠŸΠΎΡ„Π»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° пристап ΠΏΡ€Π΅ΠΊΡƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π²ΠΎ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚.
  • ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ потпис Π·Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ ΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ ја Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° бСзбСдноста Π½Π° Ρ†Π΅Π»ΠΎΠΊΡƒΠΏΠ½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

JWT Ρ‚ΠΎΠΊΠ΅Π½ - состав

Π’ΠΈΡ‚ΡƒΠ»Π° - стандардно, Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ Π³ΠΎ содрТи само Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΡ‚ ΡˆΡ‚ΠΎ сС користи Π·Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅.

Π’ΠΈΠΏΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ Π΅ Π·Π°Ρ‡ΡƒΠ²Π°Π½ Π²ΠΎ ΠΊΠΎΠΏΡ‡Π΅Ρ‚ΠΎ β€žtypβ€œ. ΠšΠΎΠΏΡ‡Π΅Ρ‚ΠΎ β€žΡ‚ΠΈΠΏβ€œ сС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° Π²ΠΎ JWT. Ако Π΅ присутСн ΠΊΠ»ΡƒΡ‡ΠΎΡ‚ β€žtypβ€œ, Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° врСдност ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ JWT Π·Π° Π΄Π° ΠΎΠ·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° овој ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ Π΅ JSON Web Token.

Π’Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ ΠΊΠ»ΡƒΡ‡ β€žalgβ€œ Π³ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΡ‚ ΡˆΡ‚ΠΎ сС користи Π·Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄Π½ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС постави Π½Π° HS256. Π—Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ Π΅ ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½ΠΎ Π²ΠΎ base64.

{ "alg": "HS256", "typ": "JWT"}
носивост (содрТина) β€” Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ Π³ΠΈ складира ситС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°Ρ‚. БСкој ΠΊΠ»ΡƒΡ‡ Π²ΠΎ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΊΠ°ΠΊΠΎ β€žΠΏΠΎΠ±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅β€œ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја внСсСтС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° само со ΠΏΠΎΠΊΠ°Π½Π° (Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½Π° ΠΏΡ€ΠΎΠΌΠΎΡ†ΠΈΡ˜Π°). Кога сакамС Π΄Π° ΠΏΠΎΠΊΠ°Π½ΠΈΠΌΠ΅ Π½Π΅ΠΊΠΎΠ³ΠΎ Π΄Π° учСствува, ΠΌΡƒ ΠΈΡΠΏΡ€Π°ΡœΠ°ΠΌΠ΅ Π΅-ΠΏΠΎΡˆΡ‚Π° Π·Π° ΠΏΠΎΠΊΠ°Π½Π°. Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΏΠΎΡ‚Π²Ρ€Π΄ΠΈΡ‚Π΅ Π΄Π΅ΠΊΠ° адрСсата Π½Π° Π΅-ΠΏΠΎΡˆΡ‚Π° ΠΌΡƒ ΠΏΡ€ΠΈΠΏΠ°Ρ“Π° Π½Π° Π»ΠΈΡ†Π΅Ρ‚ΠΎ ΠΊΠΎΠ΅ ја ΠΏΡ€ΠΈΡ„Π°ΡœΠ° ΠΏΠΎΠΊΠ°Π½Π°Ρ‚Π°, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ ќС ја Π²ΠΊΠ»ΡƒΡ‡ΠΈΠΌΠ΅ ΠΎΠ²Π°Π° адрСса Π²ΠΎ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ со ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π²ΠΎ ΠΊΠ»ΡƒΡ‡ΠΎΡ‚ β€žemailβ€œ.

{ "email": "[Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½Π° ΠΏΠΎ Π΅-ΠΏΠΎΡˆΡ‚Π°]"}

ΠšΠ»ΡƒΡ‡Π΅Π²ΠΈΡ‚Π΅ Π²ΠΎ носивоста ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Π½ΠΈ:

  • iss (Π˜Π·Π΄Π°Π²Π°Ρ‡) - Ја ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΎΠ΄ која сС ΠΈΡΠΏΡ€Π°ΡœΠ° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚.
  • ΠΏΠΎΠ΄ (Subject) - Π³ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚.
  • aud (ΠŸΡƒΠ±Π»ΠΈΠΊΠ°) Π΅ Π½ΠΈΠ·Π° Π½ΠΈΠ·ΠΈ ΠΈΠ»ΠΈ URI чувствитСлни Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±ΡƒΠΊΠ²ΠΈ ΡˆΡ‚ΠΎ Π΅ листа Π½Π° ΠΏΡ€ΠΈΠΌΠ°Ρ‚Π΅Π»ΠΈ Π½Π° овој Ρ‚ΠΎΠΊΠ΅Π½. Кога ΠΏΡ€ΠΈΠΌΠ°Ρ‡ΠΊΠ°Ρ‚Π° страна Π΄ΠΎΠ±ΠΈΠ²Π° JWT со Π΄Π°Π΄Π΅Π½ΠΈΠΎΡ‚ ΠΊΠ»ΡƒΡ‡, Ρ‚Π°Π° ΠΌΠΎΡ€Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ Π΄Π°Π»ΠΈ Π΅ присуство Π½Π° сСбС Π²ΠΎ ΠΏΡ€ΠΈΠΌΠ°Ρ‡ΠΈΡ‚Π΅ - Π²ΠΎ спротивно ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚.
  • exp (Π’Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΡΡ‚Π΅ΠΊΡƒΠ²Π°ΡšΠ΅) - ΠŸΠΎΠΊΠ°ΠΆΡƒΠ²Π° ΠΊΠΎΠ³Π° истСкува Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄ΠΎΡ‚ JWT Π±Π°Ρ€Π° ситС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π΄Π° ΠΎΡ‚Ρ„Ρ€Π»Π°Π°Ρ‚ истСчСни Ρ‚ΠΎΠΊΠ΅Π½ΠΈ. ΠšΠ»ΡƒΡ‡ΠΎΡ‚ Exp ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ врСмСнски ΠΏΠ΅Ρ‡Π°Ρ‚ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Unix.
  • nbf (Not Before) Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π²ΠΎ Unix Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΡˆΡ‚ΠΎ Π³ΠΎ ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ ΠΊΠΎΠ³Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ станува Π²Π°Π»ΠΈΠ΄Π΅Π½.
  • iat (Issued at) - Овој ΠΊΠ»ΡƒΡ‡ Π³ΠΎ прСтставува Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° издавањС Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° Π΄Π° сС ΠΎΠ΄Ρ€Π΅Π΄ΠΈ староста Π½Π° JWT. ΠšΠΎΠΏΡ‡Π΅Ρ‚ΠΎ iat ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ врСмСнски ΠΏΠ΅Ρ‡Π°Ρ‚ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Unix.
  • Jti (JWT ID) Π΅ Π½ΠΈΠ·Π° ΡˆΡ‚ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° СдинствСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ чувствитСлСн Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π±ΡƒΠΊΠ²ΠΈ Π·Π° овој Ρ‚ΠΎΠΊΠ΅Π½.

Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅ Π΄Π΅ΠΊΠ° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ Π½Π΅ сС прСнСсува ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½ΠΎ (ΠΈΠ°ΠΊΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²Π³Π½Π΅Π·Π΄ΡƒΠ²Π°Π°Ρ‚ ΠΈ ΠΏΠΎΡ‚ΠΎΠ° Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС прСнСсат ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ). Π—Π°Ρ‚ΠΎΠ°, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° складиратС Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Ρ‚Π°Ρ˜Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΎ Π½Π΅Π³ΠΎ. Како ΠΈ Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ, Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚ Π΅ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ Π²ΠΎ base64.
ΠŸΠΎΡ‚ΠΏΠΈΡ - ΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΠΌΠ΅ наслов ΠΈ носивост, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΎ прСсмСтамС потписот.

ΠšΠΎΠ΄ΠΈΡ€Π°Π½ΠΎ со Base64: сС Π·Π΅ΠΌΠ°Π°Ρ‚ насловот ΠΈ носивоста, Ρ‚ΠΈΠ΅ сС ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ Π½ΠΈΠ·Π° Π½ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠ°. ΠŸΠΎΡ‚ΠΎΠ° ΠΎΠ²Π°Π° Π½ΠΈΠ·Π° ΠΈ Ρ‚Π°Ρ˜Π½ΠΈΠΎΡ‚ ΠΊΠ»ΡƒΡ‡ сС внСсуваат Π²ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΡ‚ Π·Π° ΡˆΠΈΡ„Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ Π²ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ (ΠΊΠ»ΡƒΡ‡ "alg"). ΠšΠ»ΡƒΡ‡ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ која Π±ΠΈΠ»ΠΎ Π½ΠΈΠ·Π°. ΠΠ°Ρ˜ΠΌΠ½ΠΎΠ³Ρƒ сС ΠΏΡ€Π΅Ρ‚ΠΏΠΎΡ‡ΠΈΡ‚Π°Π°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ»Π³ΠΈ ΠΆΠΈΡ†ΠΈ бидСјќи ќС Π±ΠΈΠ΄Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° сС ΠΏΠΎΠ΄ΠΈΠ³Π½Π°Ρ‚.

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

Π˜Π·Π³Ρ€Π°Π΄Π±Π° Π½Π° АрхитСктура Π½Π° кластСр Π·Π° нСуспСх Π½Π° Keycloak

Кога сС користи Π΅Π΄Π΅Π½ кластСр Π·Π° ситС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΈΠΌΠ° Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½ΠΈ Π±Π°Ρ€Π°ΡšΠ° Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π”Π—Π‘. Кога Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π΅ ΠΌΠ°Π», ΠΎΠ²ΠΈΠ΅ Π±Π°Ρ€Π°ΡšΠ° Π½Π΅ сС Ρ‚ΠΎΠ»ΠΊΡƒ Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΈ Π·Π° ситС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΌΠ΅Ρ“ΡƒΡ‚ΠΎΠ°, со Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° корисници ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° достапност ΠΈ пСрформанси сС Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°Π°Ρ‚.

Π—Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ€ΠΈΠ·ΠΈΠΊΠΎΡ‚ ΠΎΠ΄ Π΅Π΄ΠΈΠ½Π΅Ρ‡Π΅Π½ нСуспСх Π½Π° Π”Π—Π‘ Π³ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ сС користат Π·Π° вишок ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΈ Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ тСсна SLA. Π’ΠΎ Ρ‚Π°Π° насока, почСсто Π²ΠΎ Ρ‚Π΅ΠΊΠΎΡ‚ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ ΠΈΠ»ΠΈ Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°Π·ΠΈ Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°Ρ‚Π°, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ°Π°Ρ‚ своја инфраструктура која Π½Π΅ поднСсува Π³Ρ€Π΅ΡˆΠΊΠΈ. Како ΡˆΡ‚ΠΎ Π½Π°ΠΏΡ€Π΅Π΄ΡƒΠ²Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π΅ Π΄Π° сС ΡƒΡ‚Π²Ρ€Π΄Π°Ρ‚ моТноститС Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ ΠΈ ΡΠΊΠ°Π»ΠΈΡ€Π°ΡšΠ΅. ΠΠ°Ρ˜Ρ„Π»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎ Π΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ кластСр Π·Π° ΠΏΠΎΠΏΡƒΡˆΡ‚Π°ΡšΠ΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈΠ»ΠΈ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π΅Π½ пристап.

Π—Π° Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ Π½Π° кластСрот Активно/Активно ΠΈ Активно/Пасивно, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π΅ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ конзистСнтност Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ - Π΄Π²Π°Ρ‚Π° јазли Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΌΠΎΡ€Π° синхроно Π΄Π° сС Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π³Π΅ΠΎ-дистрибуирани Ρ†Π΅Π½Ρ‚Ρ€ΠΈ Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

ΠΠ°Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ½ΡΡ‚Π°Π»Π°Ρ†ΠΈΡ˜Π° Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ‚Π½Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π”Π—Π‘ Π·Π° микросСрвис Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. НиС користимС Keycloak. Π”Π΅Π» 1

Кои сС прСдноститС ΠΎΠ΄ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΅Π΄Π΅Π½ кластСр:

  • Висока достапност ΠΈ пСрформанси.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Ρ€Π΅ΠΆΠΈΠΌΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°: Активни / Активни, Активни / Пасивни.
  • Бпособност Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡƒΠ²Π°ΡšΠ΅ - ΠΊΠΎΠ³Π° сС користи Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ.
  • ΠœΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΈ слСдСњС.
  • Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ пристап Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΡšΠ΅/Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°/ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° корисницитС Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅.
  • ΠŸΠΎΡ‚Ρ€Π°Π½ΡΠΏΠ°Ρ€Π΅Π½Ρ‚Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со корисникот.
  • Бпособност Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ JWT Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.
  • ЕдинствСна Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Π΄ΠΎΠ²Π΅Ρ€Π±Π°.
  • ΠŸΠΎΠ±Ρ€Π·ΠΎ Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° микросСрвиси/Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ (Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° сС инсталираат ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π°Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ).
  • МоТно Π΅ Π΄Π° сС ΠΊΡƒΠΏΠΈ ΠΊΠΎΠΌΠ΅Ρ€Ρ†ΠΈΡ˜Π°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° ΠΎΠ΄ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ΠΎΡ‚.

Π¨Ρ‚ΠΎ Π΄Π° сС Π·Π΅ΠΌΠ΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ΠΏΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°ΡšΠ΅ Π½Π° кластСр

Π”Π‘ΠœΠ‘

Keycloak користи систСм Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со DBMS Π·Π° Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°ΡšΠ΅: области, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, корисници ΠΈΡ‚Π½.
ΠŸΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ Π΅ ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° DBMS: MS SQL, Oracle, MySQL, PostgreSQL. Keycloak Π΄ΠΎΠ°Ρ“Π° со сопствСна Π²Π³Ρ€Π°Π΄Π΅Π½Π° Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π‘Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€Π°Ρ‡ΡƒΠ²Π° Π΄Π° сС користи Π·Π° Π½Π΅ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΈ срСдини - ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ ΠΎΠΊΠΎΠ»ΠΈΠ½ΠΈ.

Π—Π° Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΈ Π½Π° кластСри Активни/Активни ΠΈ Активни/Пасивни, Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ конзистСнтност Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ рСлациската Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Π΄Π²Π°Ρ‚Π° јазли ΠΎΠ΄ кластСрот Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ синхроно сС Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

Дистрибуиран кСш (Infinspan)

Π—Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° кластСрот, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° слСднитС Ρ‚ΠΈΠΏΠΎΠ²ΠΈ кСшови со помош Π½Π° JBoss Data Grid:

БСсии Π·Π° Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° - сС користат Π·Π° Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΏΡ€ΠΈ Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ корисник. Π‘Π°Ρ€Π°ΡšΠ°Ρ‚Π° ΠΎΠ΄ овој кСш ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π³ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ само прСлистувачот ΠΈ сСрвСрот Keycloak, Π° Π½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°.

Акциони Ρ‚ΠΎΠΊΠ΅Π½ΠΈ - сС користат Π·Π° ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Π° ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ корисникот Ρ‚Ρ€Π΅Π±Π° асинхроно Π΄Π° ΠΏΠΎΡ‚Π²Ρ€Π΄ΠΈ Π΄Π΅Ρ˜ΡΡ‚Π²ΠΎ (ΠΏΡ€Π΅ΠΊΡƒ Π΅-ΠΏΠΎΡˆΡ‚Π°). На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΡ‚ Π½Π° Π·Π°Π±ΠΎΡ€Π°Π²Π΅Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°, ΠΊΠ΅ΡˆΠΎΡ‚ Infinispan actionTokens сС користи Π·Π° слСдСњС Π½Π° ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° Π°ΠΊΡ†ΠΈΡ˜Π° ΡˆΡ‚ΠΎ вСќС сС користСни, ΠΏΠ° Π·Π°Ρ‚ΠΎΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° сС користи.

ΠšΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΡˆΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ - сС користи Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Кога нСкој сСрвСр Π½Π° Keycloak Π³ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅, ситС Π΄Ρ€ΡƒΠ³ΠΈ сСрвСри Π½Π° Keycloak Π²ΠΎ ситС Ρ†Π΅Π½Ρ‚Ρ€ΠΈ Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π·Π½Π°Π°Ρ‚ Π·Π° Ρ‚ΠΎΠ°.

Π Π°Π±ΠΎΡ‚Π° - Π‘Π΅ користи само Π·Π° ΠΈΡΠΏΡ€Π°ΡœΠ°ΡšΠ΅ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ˜Π°Π·Π»ΠΈΡ‚Π΅ Π½Π° кластСрот ΠΈ Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠΈ сСсии - сС користат Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° кориснички сСсии ΠΊΠΎΠΈ Π²Π°ΠΆΠ°Ρ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° ΡΠ΅ΡΠΈΡ˜Π°Ρ‚Π° Π½Π° прСлистувачот Π½Π° корисникот. ΠšΠ΅ΡˆΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° HTTP Π±Π°Ρ€Π°ΡšΠ° ΠΎΠ΄ ΠΊΡ€Π°Ρ˜Π½ΠΈΠΎΡ‚ корисник ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°.

Π—Π°ΡˆΡ‚ΠΈΡ‚Π° ΠΎΠ΄ Π±Ρ€ΡƒΡ‚Π°Π»Π½Π° сила - сС користи Π·Π° слСдСњС Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π·Π° Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ°.

Π‘Π°Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΡ‚

БалансСрот Π½Π° ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ Π΅ СдинствСната Π²Π»Π΅Π·Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° тастатурата ΠΈ ΠΌΠΎΡ€Π° Π΄Π° ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° Π»Π΅ΠΏΠ»ΠΈΠ²ΠΈ сСсии.

Π‘Π΅Ρ€Π²Π΅Ρ€ΠΈ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π’ΠΈΠ΅ сС користат Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π΅Π΄Π½ΠΈ со Π΄Ρ€ΡƒΠ³ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»ΠΈΠ·ΠΈΡ€Π°Π°Ρ‚ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠ·ΠΈΡ€Π°Π°Ρ‚ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° постоСчки Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ ΡΠΊΠ°Π»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈΡ‚Π΅ Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° инфраструктурата. ΠΠ°Ρ˜Ρ‡Π΅ΡΡ‚ΠΈΡ‚Π΅ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡ˜Π° Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ OpenShift, Kubernates, Rancher.

Π‘ΠΎ ΠΎΠ²Π° сС Π·Π°ΠΎΠΊΡ€ΡƒΠΆΡƒΠ²Π° ΠΏΡ€Π²ΠΈΠΎΡ‚ Π΄Π΅Π» - тСорСтскиот. Π’ΠΎ слСдната ΡΠ΅Ρ€ΠΈΡ˜Π° написи, ќС Π±ΠΈΠ΄Π°Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ со Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° поставки.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€