ΠΠΎ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°, Π° X5 Retail Group Π½Π΅ Π΅ ΠΈΡΠΊΠ»ΡΡΠΎΠΊ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°, Π±ΡΠΎΡΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π·Π° ΠΊΠΎΠΈ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ ΠΎΠ²Π»Π°ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°. Π‘ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ, ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΅ Π±Π΅ΡΠΏΡΠ΅ΠΊΠΎΡΠ½Π° ΡΡΠ°Π½Π·ΠΈΡΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΎΠ΄ Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° Π²ΠΎ Π΄ΡΡΠ³Π°, Π° ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΡΠ°Π²ΡΠ²Π° ΠΏΠΎΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΡΠ΅ΡΠ²Π΅Ρ Π·Π° Π΅Π΄Π½ΠΎ ΠΏΠ΅Π΅ΡΠ΅ (SSO). ΠΠΎ, ΡΡΠΎ Π΅ ΡΠΎ ΠΊΠΎΠ³Π° Π΄Π°Π²Π°ΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅ΡΠΈ ΠΊΠ°ΠΊΠΎ ΠΠ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠΈ Π½Π΅ΠΌΠ°Π°Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. ΠΠ»Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈ βΠ±ΡΠΎΠΊΠ΅ΡΠΈ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°β ΡΠ΅ Π΄ΠΎΡΠ΄Π°Ρ Π½Π° ΠΏΠΎΠΌΠΎΡ. ΠΠ°ΡΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠ΅ΡΡΡΠ°Π²Π½ΠΈΡΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Keycloak, Gravitee Access Management ΠΈΡΠ½. ΠΠ°ΡΡΠ΅ΡΡΠΎ, ΡΠ»ΡΡΠ°ΠΈΡΠ΅ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ: ΠΌΠ°ΡΠΈΠ½ΡΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°, ΡΡΠ΅ΡΡΠ²ΠΎ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈΡΠ½. Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠΎΡΠ° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½Π° ΠΈ ΡΠΊΠ°Π»Π°Π±ΠΈΠ»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΊΠΎΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° ΡΠΈΡΠ΅ Π±Π°ΡΠ°ΡΠ° Π²ΠΎ Π΅Π΄Π½ΠΎ. ΠΈ ΡΠ°ΠΊΠ²ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ° Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΡΠ΅Π³Π° ΠΈΠΌΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡΠΊΠΈ Π±ΡΠΎΠΊΠ΅Ρ - Keycloak.
Keycloak Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Ρ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ ΠΊΠΎΡ Π³ΠΎ ΠΎΠ΄ΡΠΆΡΠ²Π° RedHat. Π’ΠΎΠ° Π΅ ΠΎΡΠ½ΠΎΠ²Π° Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ° ΠΊΠΎΠΈ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΠΠ‘ - RH-SSO.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈ
ΠΡΠ΅Π΄ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ° ΠΈ ΠΏΡΠΈΡΡΠ°ΠΏΠΈΡΠ΅, ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠ΅ ΠΈ ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄ΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅:
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° Π΅ ΠΏΠΎΡΡΠ°ΠΏΠΊΠ° Π·Π° ΠΏΡΠ΅ΠΏΠΎΠ·Π½Π°Π²Π°ΡΠ΅ Π½Π° ΡΡΠ±ΡΠ΅ΠΊΡΠΎΡ ΠΏΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ (ΡΠΎ Π΄ΡΡΠ³ΠΈ Π·Π±ΠΎΡΠΎΠ²ΠΈ, ΠΎΠ²Π° Π΅ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ ΠΈΠΌΠ΅, Π½Π°ΡΠ°Π²Π° ΠΈΠ»ΠΈ Π±ΡΠΎΡ).
ΠΠ²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° β ΠΎΠ²Π° Π΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° (ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠΎ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°, ΠΏΠΈΡΠΌΠΎΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠΎ Π΅Π»Π΅ΠΊΡΡΠΎΠ½ΡΠΊΠΈ ΠΏΠΎΡΠΏΠΈΡ ΠΈΡΠ½.)
ΠΠ²Π»Π°ΡΡΡΠ²Π°ΡΠ΅ - ΠΎΠ²Π° Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠ΅ΡΡΡΡ (Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎ Π΅-ΠΏΠΎΡΡΠ°).
ΠΠ»ΡΡΠ½ΠΈΠΊ Π·Π° Π±ΡΠΎΠΊΠ΅Ρ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Ρ
ΠΊΠ»ΡΡ Π½Π°ΠΌΠ΅ΡΠΊΠ° Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Ρ ΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°Π½ΠΎ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π²ΠΎ 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
Java API
ΠΠ°Π²Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠ΅ΡΠΏΡΠΈΡΠ°ΡΠΈΠ΅ (Π²ΠΎ ΠΏΡΠΎΡΡΠΎΡ)
ΠΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΏΡΠ΅ΠΊΡ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Π½Π° ΠΠΎΡΠΈΡΠ½ΠΈΡΠΊΠ°ΡΠ° ΡΠ΅Π΄Π΅ΡΠ°ΡΠΈΡΠ°.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΈ Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΏΡΠ΅ΠΊΡ ΠΏΡΠ΅ΠΌΠΈΠ½ - Π°ΠΊΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π°Π²ΡΠ΅Π½ΡΠΈΡΠΈΡΠ°Π°Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ ΡΡΠ°Π½ΠΈΡΠΈ ΡΠΎ 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. ΠΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π΅ Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΊΡΡΠΈΡΠ°ΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π²ΠΎ ΠΊΠΎΡΠ° Π±ΠΈΠ»ΠΎ ΡΠ°Π·Π° ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ.
ΠΠ° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΡΠΎΠ²Π°ΡΠ΄Π΅ΡΠΈ Π½Π° OpenID/SAML Identity.
Π’ΠΈΠΏΠΈΡΠ½ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΡΠ° Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° OAuth2 Π²ΠΎ Keycloak
Π’Π΅ΠΊ Π½Π° ΠΊΠΎΠ΄ Π·Π° ΠΎΠ²Π»Π°ΡΡΡΠ²Π°ΡΠ΅ - ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ΄ ΡΡΡΠ°Π½Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ. ΠΠ΄Π΅Π½ ΠΎΠ΄ Π½Π°ΡΡΠ΅ΡΡΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡΠ° Π±ΠΈΠ΄Π΅ΡΡΠΈ Π΅ Π΄ΠΎΠ±ΡΠΎ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ΄ ΡΡΡΠ°Π½Π° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ Π½Π΅ ΡΠ΅ Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Π·Π° Π΄ΡΡΠ³ΠΈ. ΠΡΠΎΡΠ΅ΡΠΎΡ Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΡΠ²Π°ΡΠ΅. ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΌΠΎΡΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π°Π³Π΅Π½Ρ (ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π°Π³Π΅Π½Ρ), ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ Π²Π΅Π±-ΠΏΡΠ΅Π»ΠΈΡΡΡΠ²Π°Ρ, Π·Π° Π΄Π° ΠΏΡΠΈΠΌΠ° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° API ΠΏΡΠΎΡΠ»Π΅Π΄Π΅Π½ΠΈ ΠΏΡΠ΅ΠΊΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ Π°Π³Π΅Π½Ρ.
ΠΠΌΠΏΠ»ΠΈΡΠΈΡΠ΅Π½ ΡΠ΅ΠΊ - ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈΠ»ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ (Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° ΡΡΠ΅Π΄ΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ).
ΠΠΌΠΏΠ»ΠΈΡΠΈΡΠ½ΠΈΠΎΡ ΡΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΎΡΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ. ΠΠΌΠΏΠ»ΠΈΡΠΈΡΠ½ΠΈΠΎΡ ΡΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° ΠΊΠΎΡΠΈΡΡΠΈ ΠΈ ΠΏΡΠ΅Π½Π°ΡΠΎΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π°Π³Π΅Π½Ρ, ΠΏΡΠΈ ΡΡΠΎ ΡΠΎΠΊΠ΅Π½ΠΎΡ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈΠΎΡ Π°Π³Π΅Π½Ρ Π·Π° ΠΏΠΎΠ½Π°ΡΠ°ΠΌΠΎΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠ²Π° Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΡ Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½ Π·Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΡΠ΅Π΄ΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. ΠΠ²ΠΎΡ ΡΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡΠ° Π½Π΅ Π³ΠΎ ΠΏΠΎΡΠ²ΡΠ΄ΡΠ²Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ΅ΡΠΎΡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°, Π° ΡΠ°ΠΌΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΠΏΠΎΡΠΏΠΈΡΠ° Π½Π° URL-Π°Π΄ΡΠ΅ΡΠ° Π·Π° ΠΏΡΠ΅Π½Π°ΡΠΎΡΡΠ²Π°ΡΠ΅ (ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½Π° Π²ΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ°).
ΠΠΌΠΏΠ»ΠΈΡΠΈΡΠ½ΠΈΠΎΡ ΡΠ΅ΠΊ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΡΠΎΠΊΠ΅Π½ΠΈ Π·Π° ΠΎΡΠ²Π΅ΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΎΠΊΠ΅Π½ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ.
Π’Π΅ΠΊ Π½Π° Π³ΡΠ°Π½ΡΠΎΠ²ΠΈ Π·Π° Π°ΠΊΡΠ΅Π΄ΠΈΡΠΈΠ²ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ β ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠΎΠ³Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° ΠΏΡΠΈΡΡΠ°ΠΏΡΠ²Π° Π΄ΠΎ API. ΠΠ²ΠΎΡ ΡΠΈΠΏ Π½Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° ΠΎΠ²Π»Π°ΡΡΡΠ²Π°ΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠΈ ΠΎΠ΄ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠΎ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π²Π°Ρ Π²ΠΎ Π·Π°Π΄Π½ΠΈΠ½Π° Π±Π΅Π· Π½Π΅ΠΏΠΎΡΡΠ΅Π΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ. ΠΡΠΎΡΠΎΠΊΠΎΡ Π½Π° Π³ΡΠ°Π½ΡΠΎΠ²ΠΈ Π·Π° Π°ΠΊΡΠ΅Π΄ΠΈΡΠΈΠ²ΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΡ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²Π΅Π±-ΡΡΠ»ΡΠ³Π° (Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ) Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΈΠ½Π³Π΅ΡΠ΅Π½ΡΠΈΠΈ Π½Π°ΠΌΠ΅ΡΡΠΎ Π΄Π° Π³ΠΎ ΠΈΠΌΠΈΡΠΈΡΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π·Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΊΠΎΠ³Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π° Π΄ΡΡΠ³Π° Π²Π΅Π±-ΡΡΠ»ΡΠ³Π°. ΠΠ° ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Π·Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ (Π½Π°ΠΌΠ΅ΡΡΠΎ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΡΠ°ΡΠ½Π°) ΠΊΠ°ΠΊΠΎ ΠΈΠ½Π³Π΅ΡΠ΅Π½ΡΠΈΠΈ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ° OAuth2 Π΅ ΠΎΠΏΠΈΡΠ°Π½Π° Π²ΠΎ
JWT ΡΠΎΠΊΠ΅Π½ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈ
JWT (JSON Web Token) Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΡΡΠ°Π½Π΄Π°ΡΠ΄ (
Π‘ΠΏΠΎΡΠ΅Π΄ ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΎΡ, ΡΠΎΠΊΠ΅Π½ΠΎΡ ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ ΡΡΠΈ Π΄Π΅Π»Π° Π²ΠΎ ΡΠΎΡΠΌΠ°Ρ Π±Π°Π·Π°-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. ΠΠΎ ΡΠ°Π° Π½Π°ΡΠΎΠΊΠ°, ΠΏΠΎΡΠ΅ΡΡΠΎ Π²ΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΈ Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ°, ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΠΈΠΌΠ°Π°Ρ ΡΠ²ΠΎΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΡΠ° Π½Π΅ ΠΏΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΊΠΎ ΡΡΠΎ Π½Π°ΠΏΡΠ΅Π΄ΡΠ²Π° ΡΠ°Π·Π²ΠΎΡΠΎΡ, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΡΡΠ²ΡΠ΄Π°Ρ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΡΠ°Π·Π²ΠΎΡ ΠΈ ΡΠΊΠ°Π»ΠΈΡΠ°ΡΠ΅. ΠΠ°ΡΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΠΊΠ»Π°ΡΡΠ΅Ρ Π·Π° ΠΏΠΎΠΏΡΡΡΠ°ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΈΠ»ΠΈ Ρ ΠΈΠ±ΡΠΈΠ΄Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ.
ΠΠ° Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΠΊΡΠΈΠ²Π½ΠΎ/ΠΠΊΡΠΈΠ²Π½ΠΎ ΠΈ ΠΠΊΡΠΈΠ²Π½ΠΎ/ΠΠ°ΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ ΡΠ΅Π»Π°ΡΠΈΠΎΠ½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ - Π΄Π²Π°ΡΠ° ΡΠ°Π·Π»ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΌΠΎΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠ°Π°Ρ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³Π΅ΠΎ-Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΡΠ΅Π½ΡΡΠΈ Π·Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
ΠΠ°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° ΡΠΎΠ»Π΅ΡΠ°Π½ΡΠ½Π° Π·Π° Π³ΡΠ΅ΡΠΊΠΈ.
ΠΠΎΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° Π΅Π΄Π΅Π½ ΠΊΠ»Π°ΡΡΠ΅Ρ:
- ΠΠΈΡΠΎΠΊΠ° Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΎΡΡ ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΡΠ΅ΠΆΠΈΠΌΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ°: ΠΠΊΡΠΈΠ²Π½ΠΈ / ΠΠΊΡΠΈΠ²Π½ΠΈ, ΠΠΊΡΠΈΠ²Π½ΠΈ / ΠΠ°ΡΠΈΠ²Π½ΠΈ.
- Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ - ΠΊΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΈΡΡΡΠ΅Π»ΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
- ΠΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΈ ΡΠ»Π΅Π΄Π΅ΡΠ΅.
- Π£Π½ΠΈΡΠΈΡΠΈΡΠ°Π½ ΠΏΡΠΈΡΡΠ°ΠΏ Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΡΠ²Π°ΡΠ΅/Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ°/ΠΎΠ²Π»Π°ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅.
- ΠΠΎΡΡΠ°Π½ΡΠΏΠ°ΡΠ΅Π½ΡΠ½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ.
- Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΡΠΎΠΊΠ΅Π½ΠΎΡ 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