SSO ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•. ืื ื• ืžืฉืชืžืฉื™ื ื‘-Keycloak. ื—ืœืง 1

ื‘ื›ืœ ื—ื‘ืจื” ื’ื“ื•ืœื”, ื•-X5 Retail Group ืื™ื ื” ื™ื•ืฆืืช ื“ื•ืคืŸ, ื›ื›ืœ ืฉื”ื™ื ืžืชืคืชื—ืช, ืžืกืคืจ ื”ืคืจื•ื™ืงื˜ื™ื ื”ื“ื•ืจืฉื™ื ื”ืจืฉืืช ืžืฉืชืžืฉ ื’ื“ืœ. ืขื ื”ื–ืžืŸ, ื ื“ืจืฉ ืžืขื‘ืจ ื—ืœืง ืฉืœ ืžืฉืชืžืฉื™ื ืžืืคืœื™ืงืฆื™ื” ืื—ืช ืœืื—ืจืช, ื•ืœืื—ืจ ืžื›ืŸ ื™ืฉ ืฆื•ืจืš ืœื”ืฉืชืžืฉ ื‘ืฉืจืช Single-Sing-On (SSO) ื™ื—ื™ื“. ืื‘ืœ ืžื” ืœื’ื‘ื™ ื›ืืฉืจ ืกืคืงื™ ื–ื”ื•ืช ื›ื’ื•ืŸ AD ืื• ืื—ืจื™ื ืฉืื™ืŸ ืœื”ื ืชื›ื•ื ื•ืช ื ื•ืกืคื•ืช ื›ื‘ืจ ื ืžืฆืื™ื ื‘ืฉื™ืžื•ืฉ ื‘ืคืจื•ื™ืงื˜ื™ื ืฉื•ื ื™ื. ืกื•ื’ ืฉืœ ืžืขืจื›ื•ืช ื‘ืฉื "ืžืชื•ื•ื›ื™ ื–ื™ื”ื•ื™" ื™ื’ื™ืข ืœืขื–ืจื”. ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ื‘ื™ื•ืชืจ ื”ื ื”ื ืฆื™ื’ื™ื ืฉืœื•, ื›ืžื• Keycloak, ื ื™ื”ื•ืœ Gravitee Access ื•ื›ื•'. ืœืจื•ื‘, ืžืงืจื™ ืฉื™ืžื•ืฉ ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืฉื•ื ื™ื: ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืžื›ื•ื ื”, ื”ืฉืชืชืคื•ืช ืžืฉืชืžืฉื™ื ื•ื›ื•'. ื”ืคืชืจื•ืŸ ื—ื™ื™ื‘ ืœืชืžื•ืš ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื’ืžื™ืฉื” ื•ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ืฉื™ื›ื•ืœื” ืœืฉืœื‘ ืืช ื›ืœ ื”ื“ืจื™ืฉื•ืช ื‘ืื—ืช, ื•ืคืชืจื•ื ื•ืช ื›ืืœื” ืœื—ื‘ืจื” ืฉืœื ื• ื™ืฉ ื›ืขืช ืžืชื•ื•ืš ืื™ื ื“ื™ืงืฆื™ื•ืช - Keycloak.

SSO ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•. ืื ื• ืžืฉืชืžืฉื™ื ื‘-Keycloak. ื—ืœืง 1

Keycloak ื”ื•ื ืžื•ืฆืจ ื–ื”ื•ืช ื•ื‘ืงืจืช ื’ื™ืฉื” ื‘ืงื•ื“ ืคืชื•ื— ื”ืžืชื•ื—ื–ืง ืขืœ ื™ื“ื™ RedHat. ื–ื”ื• ื”ื‘ืกื™ืก ืœืžื•ืฆืจื™ ื”ื—ื‘ืจื” ื‘ืืžืฆืขื•ืช SSO - RH-SSO.

ืžื•ืฉื’ื™ื ื‘ืกื™ืกื™ื™ื

ืœืคื ื™ ืฉืชืชื—ื™ืœ ืœื”ืชืžื•ื“ื“ ืขื ืคืชืจื•ื ื•ืช ื•ื’ื™ืฉื•ืช, ืขืœื™ืš ืœื”ื—ืœื™ื˜ ื‘ืžื•ื ื—ื™ื ื•ื‘ืจืฆืฃ ืฉืœ ืชื”ืœื™ื›ื™ื:

SSO ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•. ืื ื• ืžืฉืชืžืฉื™ื ื‘-Keycloak. ื—ืœืง 1

ื–ื™ื”ื•ื™ ื”ื•ื ื”ืœื™ืš ืœื–ื™ื”ื•ื™ ื ื•ืฉื ืœืคื™ ื”ืžื–ื”ื” ืฉืœื• (ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื–ื•ื”ื™ ื”ื”ื’ื“ืจื” ืฉืœ ืฉื, ื›ื ื™ืกื” ืื• ืžืกืคืจ).

ืื™ืžื•ืช - ื–ื”ื• ื”ืœื™ืš ืื™ืžื•ืช (ื”ืžืฉืชืžืฉ ื ื‘ื“ืง ืขื ืกื™ืกืžื”, ื”ืžื›ืชื‘ ื ื‘ื“ืง ื‘ื—ืชื™ืžื” ืืœืงื˜ืจื•ื ื™ืช ื•ื›ื•')

ื”ืจืฉืื” - ื–ื•ื”ื™ ืžืชืŸ ื’ื™ืฉื” ืœืžืฉืื‘ (ืœื“ื•ื’ืžื”, ืœื“ื•ืืจ ืืœืงื˜ืจื•ื ื™).

ื’ืœื™ืžืช ืžืคืชื— ืฉืœ ืžืชื•ื•ืš ื–ื”ื•ืช

ื’ืœื™ืžืช ืžืคืชื— ื”ื•ื ืคืชืจื•ืŸ ืงื•ื“ ืคืชื•ื— ืœื ื™ื”ื•ืœ ื–ื”ื•ืช ื•ื’ื™ืฉื” ื”ืžื™ื•ืขื“ ืœืฉื™ืžื•ืฉ ื‘-IS ืฉื‘ื• ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื“ืคื•ืกื™ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื.

Keycloak ืžืฆื™ืข ืชื›ื•ื ื•ืช ื›ื’ื•ืŸ ื›ื ื™ืกื” ื™ื—ื™ื“ื” (SSO), ื–ื”ื•ืช ื‘ืชื™ื•ื•ืš ื•ื›ื ื™ืกื” ื—ื‘ืจืชื™ืช, ืคื“ืจืฆื™ื™ืช ืžืฉืชืžืฉื™ื, ืžืชืืžื™ ืœืงื•ื—, ืžืกื•ืฃ ื ื™ื”ื•ืœ ื•ืžืกื•ืฃ ื ื™ื”ื•ืœ ื—ืฉื‘ื•ื ื•ืช.

ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื‘ืกื™ืกื™ืช ื”ื ืชืžื›ืช ืขืœ ื™ื“ื™ Keycloak:

  • ื›ื ื™ืกื” ื™ื—ื™ื“ื” ื•ื™ืฆื™ืื” ื™ื—ื™ื“ื” ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ ื“ืคื“ืคืŸ.
  • ืชืžื™ื›ื” ื‘-OpenID/OAuth 2.0/SAML.
  • ืชื™ื•ื•ืš ื–ื”ื•ืช - ืื™ืžื•ืช ื‘ืืžืฆืขื•ืช ืกืคืงื™ ื–ื”ื•ืช ื—ื™ืฆื•ื ื™ื™ื OpenID Connect ืื• SAML.
  • ื”ืชื—ื‘ืจื•ืช ื—ื‘ืจืชื™ืช - ืชืžื™ื›ื” ื‘ื’ื•ื’ืœ, GitHub, Facebook, Twitter ืœื–ื™ื”ื•ื™ ืžืฉืชืžืฉ.
  • User Federation - ืกื ื›ืจื•ืŸ ืฉืœ ืžืฉืชืžืฉื™ื ืžืฉืจืชื™ LDAP ื•-Active Directory ื•ืฉืืจ ืกืคืงื™ ื–ื”ื•ืช.
  • Kerberos bridge - ืฉื™ืžื•ืฉ ื‘ืฉืจืช Kerberos ืœืื™ืžื•ืช ืžืฉืชืžืฉ ืื•ื˜ื•ืžื˜ื™.
  • ืžืกื•ืฃ ื ื™ื”ื•ืœ - ืœื ื™ื”ื•ืœ ืื—ื™ื“ ืฉืœ ื”ื’ื“ืจื•ืช ื•ืืคืฉืจื•ื™ื•ืช ืคืชืจื•ืŸ ื“ืจืš ื”ืื™ื ื˜ืจื ื˜.
  • ืžืกื•ืฃ ื ื™ื”ื•ืœ ื—ืฉื‘ื•ื ื•ืช - ืœื ื™ื”ื•ืœ ืขืฆืžื™ ืฉืœ ืคืจื•ืคื™ืœ ื”ืžืฉืชืžืฉ.
  • ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืคืชืจื•ืŸ ืขืœ ื‘ืกื™ืก ื”ื–ื”ื•ืช ื”ืืจื’ื•ื ื™ืช ืฉืœ ื”ื—ื‘ืจื”.
  • ืื™ืžื•ืช 2FA - ืชืžื™ื›ื” ื‘-TOTP/HOTP ื‘ืืžืฆืขื•ืช Google Authenticator ืื• FreeOTP.
  • ื–ืจื™ืžื•ืช ื”ืชื—ื‘ืจื•ืช - ืจื™ืฉื•ื ืขืฆืžื™ ืฉืœ ืžืฉืชืžืฉ, ืฉื—ื–ื•ืจ ื•ืื™ืคื•ืก ืกื™ืกืžื”, ื•ืื—ืจื™ื ืืคืฉืจื™ื™ื.
  • ื ื™ื”ื•ืœ ื”ืคืขืœื•ืช - ืžื ื”ืœื™ ืžืขืจื›ืช ื™ื›ื•ืœื™ื ืœื ื”ืœ ื”ืคืขืœื•ืช ืžืฉืชืžืฉื™ื ืžื ืงื•ื“ื” ืื—ืช.
  • Token Mappers - ืงืฉื™ืจืช ืชื›ื•ื ื•ืช ืžืฉืชืžืฉ, ืชืคืงื™ื“ื™ื ื•ืฉืืจ ืชื›ื•ื ื•ืช ื ื“ืจืฉื•ืช ืœืืกื™ืžื•ื ื™ื.
  • ื ื™ื”ื•ืœ ืžื“ื™ื ื™ื•ืช ื’ืžื™ืฉ ืขืœ ืคื ื™ ืชื—ื•ื, ื™ื™ืฉื•ืžื™ื ื•ืžืฉืชืžืฉื™ื.
  • ืชืžื™ื›ืช CORS - ืœืžืชืืžื™ ืœืงื•ื— ื™ืฉ ืชืžื™ื›ืช CORS ืžื•ื‘ื ื™ืช.
  • ืžืžืฉืงื™ ืกืคืงื™ ืฉื™ืจื•ืช (SPI) - ืžืกืคืจ ืจื‘ ืฉืœ SPIs ื”ืžืืคืฉืจื™ื ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ื™ื‘ื˜ื™ื ืฉื•ื ื™ื ืฉืœ ื”ืฉืจืช: ื–ืจื™ืžื•ืช ืื™ืžื•ืช, ืกืคืงื™ ื–ื”ื•ืช, ืžื™ืคื•ื™ ืคืจื•ื˜ื•ืงื•ืœื™ื ื•ืขื•ื“.
  • ืžืชืืžื™ ืœืงื•ื— ืœื™ื™ืฉื•ืžื™ JavaScript, WildFly, JBoss EAP, Fuse, Tomcat, Jetty, Spring.
  • ืชืžื™ื›ื” ื‘ืขื‘ื•ื“ื” ืขื ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ื”ืชื•ืžื›ื™ื ื‘ืกืคืจื™ื™ืช OpenID Connect Relying Party ืื• ืกืคืจื™ื™ืช ืกืคืง ืฉื™ืจื•ืช SAML 2.0.
  • ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ื‘ืืžืฆืขื•ืช ืชื•ืกืคื™ื.

ืขื‘ื•ืจ ืชื”ืœื™ื›ื™ CI / CD, ื›ืžื• ื’ื ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชื”ืœื™ื›ื™ ื ื™ื”ื•ืœ ื‘-Keycloak, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘- REST API / JAVA API. ื”ืชื™ืขื•ื“ ื–ืžื™ืŸ ื‘ืื•ืคืŸ ืืœืงื˜ืจื•ื ื™:

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

ืกืคืงื™ ื–ื”ื•ืช ืืจื’ื•ื ื™ืช (On-Premise)

ื™ื›ื•ืœืช ืœืืžืช ืžืฉืชืžืฉื™ื ื‘ืืžืฆืขื•ืช ืฉื™ืจื•ืชื™ User Federation.

SSO ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•. ืื ื• ืžืฉืชืžืฉื™ื ื‘-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. ืฉื™ื ื•ื™ื™ื ื‘ืงื•ื“ ื”ืืคืœื™ืงืฆื™ื” ืื™ื ื ื ื“ืจืฉื™ื ื•ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื• ื–ืžื™ื ื” ืžื—ื•ืฅ ืœืงื•ืคืกื” ื•ื ื™ืชื ืช ืœื”ืคืขืœื” ื‘ื›ืœ ืฉืœื‘ ืฉืœ ื”ืคืจื•ื™ืงื˜.

SSO ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•. ืื ื• ืžืฉืชืžืฉื™ื ื‘-Keycloak. ื—ืœืง 1

ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืกืคืงื™ OpenID/SAML Identity ืœืื™ืžื•ืช ืžืฉืชืžืฉื™ื.

ืชืจื—ื™ืฉื™ ื”ืจืฉืื” ืื•ืคื™ื™ื ื™ื™ื ื‘ืืžืฆืขื•ืช OAuth2 ื‘-Keycloak

ื–ืจื™ืžืช ืงื•ื“ ื”ืจืฉืื” - ืžืฉืžืฉ ืขื ื™ื™ืฉื•ืžื™ื ื‘ืฆื“ ื”ืฉืจืช. ืื—ื“ ืžืกื•ื’ื™ ื”ืจืฉืื•ืช ื”ืจืฉืื•ืช ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืชืื™ื ืœื™ื™ืฉื•ืžื™ ืฉืจืช ืฉื‘ื”ื ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ื•ื ืชื•ื ื™ ื”ืœืงื•ื— ืื™ื ื ื–ืžื™ื ื™ื ืœื’ื•ืจืžื™ื ื—ื™ืฆื•ื ื™ื™ื. ื”ืชื”ืœื™ืš ื‘ืžืงืจื” ื–ื” ืžื‘ื•ืกืก ืขืœ ื”ืคื ื™ื™ื” ืžื—ื“ืฉ. ื”ืืคืœื™ืงืฆื™ื” ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžืกื•ื’ืœืช ืœืชืงืฉืจ ืขื ืกื•ื›ืŸ ืžืฉืชืžืฉ (User-agent), ื›ื’ื•ืŸ ื“ืคื“ืคืŸ ืื™ื ื˜ืจื ื˜ - ื›ื“ื™ ืœืงื‘ืœ ืงื•ื“ื™ ื”ืจืฉืืช API ื”ืžื•ืคื ื™ื ืžื—ื“ืฉ ื“ืจืš ืกื•ื›ืŸ ื”ืžืฉืชืžืฉ.

ื–ืจื™ืžื” ืžืจื•ืžื–ืช - ื‘ืฉื™ืžื•ืฉ ืขืœ ื™ื“ื™ ื™ื™ืฉื•ืžื™ ื ื™ื™ื“ ืื• ืื™ื ื˜ืจื ื˜ (ืืคืœื™ืงืฆื™ื•ืช ื”ืคื•ืขืœื•ืช ื‘ืžื›ืฉื™ืจ ืฉืœ ื”ืžืฉืชืžืฉ).

ืกื•ื’ ื”ืจืฉืืช ื”ื”ืจืฉืื” ื”ืžืฉืชืžืขืช ืžืฉืžืฉ ื‘ื™ื™ืฉื•ืžื™ ื ื™ื™ื“ ื•ืื™ื ื˜ืจื ื˜ ืฉื‘ื”ื ืœื ื ื™ืชืŸ ืœื”ื‘ื˜ื™ื— ืกื•ื“ื™ื•ืช ื”ืœืงื•ื—. ืกื•ื’ ื”ื”ืจืฉืื” ื”ืžืจื•ืžื–ืช ืžืฉืชืžืฉ ื’ื ื‘ื”ืคื ื™ื” ืžื—ื“ืฉ ืฉืœ ืกื•ื›ืŸ ืžืฉืชืžืฉ, ืœืคื™ื• ืืกื™ืžื•ืŸ ื”ื’ื™ืฉื” ืžื•ืขื‘ืจ ืœืกื•ื›ืŸ ื”ืžืฉืชืžืฉ ืœืฉื™ืžื•ืฉ ื ื•ืกืฃ ื‘ืืคืœื™ืงืฆื™ื”. ื–ื” ื”ื•ืคืš ืืช ื”ืืกื™ืžื•ืŸ ืœื–ืžื™ืŸ ืœืžืฉืชืžืฉ ื•ืœืืคืœื™ืงืฆื™ื•ืช ืื—ืจื•ืช ื‘ืžื›ืฉื™ืจ ืฉืœ ื”ืžืฉืชืžืฉ. ืกื•ื’ ื–ื” ืฉืœ ื”ืจืฉืืช ื”ืจืฉืื” ืื™ื ื• ืžืืžืช ืืช ื–ื”ื•ืช ื”ืืคืœื™ืงืฆื™ื”, ื•ื”ืชื”ืœื™ืš ืขืฆืžื• ืžืกืชืžืš ืขืœ ื›ืชื•ื‘ืช URL ืœื”ืคื ื™ื” ืžื—ื“ืฉ (ืฉืงื•ื“ื ืœื›ืŸ ื ืจืฉืžื” ื‘ืฉื™ืจื•ืช).

Implicit Flow ืื™ื ื• ืชื•ืžืš ื‘ืืกื™ืžื•ื ื™ ืจืขื ื•ืŸ ืืกื™ืžื•ืŸ ื’ื™ืฉื”.

ื–ืจื™ืžืช ืื™ืฉื•ืจื™ ืœืงื•ื— - ืžืฉืžืฉื™ื ื›ืืฉืจ ื”ืืคืœื™ืงืฆื™ื” ื ื™ื’ืฉืช ืœ-API. ื”ืจืฉืืช ื”ืจืฉืื” ืžืกื•ื’ ื–ื” ืžืฉืžืฉืช ื‘ื“ืจืš ื›ืœืœ ืœืื™ื ื˜ืจืืงืฆื™ื•ืช ื‘ื™ืŸ ืฉืจืช ืœืฉืจืช ืฉื™ืฉ ืœื‘ืฆืข ื‘ืจืงืข ืœืœื ืื™ื ื˜ืจืืงืฆื™ื” ืžื™ื™ื“ื™ืช ืฉืœ ื”ืžืฉืชืžืฉ. ื–ืจื™ืžืช ื”ืขื ืงืช ืื™ืฉื•ืจื™ ื”ืœืงื•ื— ืžืืคืฉืจืช ืœืฉื™ืจื•ืช ืื™ื ื˜ืจื ื˜ (ืœืงื•ื— ืกื•ื“ื™) ืœื”ืฉืชืžืฉ ื‘ืื™ืฉื•ืจื™ื ืžืฉืœื• ื‘ืžืงื•ื ืœื”ืชื—ื–ื•ืช ืœืžืฉืชืžืฉ ื›ื“ื™ ืœืืžืช ื‘ืขืช ื”ืชืงืฉืจื•ืช ืœืฉื™ืจื•ืช ืื™ื ื˜ืจื ื˜ ืื—ืจ. ืœืจืžืช ืื‘ื˜ื—ื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ, ื ื™ืชืŸ ืœืฉื™ืจื•ืช ื”ืžืชืงืฉืจ ืœื”ืฉืชืžืฉ ื‘ืชืขื•ื“ื” (ื‘ืžืงื•ื ืกื•ื“ ืžืฉื•ืชืฃ) ื›ืื™ืฉื•ืจ.

ืžืคืจื˜ OAuth2 ืžืชื•ืืจ ื‘
RFC-6749
RFC-8252
RFC-6819

ืืกื™ืžื•ืŸ JWT ื•ื”ื™ืชืจื•ื ื•ืช ืฉืœื•

JWT (JSON Web Token) ื”ื•ื ืชืงืŸ ืคืชื•ื— (https://tools.ietf.org/html/rfc7519) ื”ืžื’ื“ื™ืจ ื“ืจืš ืงื•ืžืคืงื˜ื™ืช ื•ืžืกื•ื’ืœืช ืœื”ืขื‘ืจืช ืžื™ื“ืข ื‘ืฆื•ืจื” ืžืื•ื‘ื˜ื—ืช ื‘ื™ืŸ ื”ืฆื“ื“ื™ื ื›ืื•ื‘ื™ื™ืงื˜ JSON.

ืœืคื™ ื”ืชืงืŸ, ื”ืืกื™ืžื•ืŸ ืžื•ืจื›ื‘ ืžืฉืœื•ืฉื” ื—ืœืงื™ื ื‘ืคื•ืจืžื˜ ื‘ืกื™ืก-64, ืžื•ืคืจื“ื™ื ื‘ื ืงื•ื“ื•ืช. ื”ื—ืœืง ื”ืจืืฉื•ืŸ ื ืงืจื header, ืฉืžื›ื™ืœ ืืช ืกื•ื’ ื”ืืกื™ืžื•ืŸ ื•ืืช ืฉื ืืœื’ื•ืจื™ืชื ื”-hash ืœื”ืฉื’ืช ื—ืชื™ืžื” ื“ื™ื’ื™ื˜ืœื™ืช. ื”ื—ืœืง ื”ืฉื ื™ ืžืื—ืกืŸ ืืช ื”ืžื™ื“ืข ื”ื‘ืกื™ืกื™ (ืžืฉืชืžืฉ, ืชื›ื•ื ื•ืช ื•ื›ื•'). ื”ื—ืœืง ื”ืฉืœื™ืฉื™ ื”ื•ื ื”ื—ืชื™ืžื” ื”ื“ื™ื’ื™ื˜ืœื™ืช.

. .
ืœืขื•ืœื ืืœ ืชืฉืžื•ืจ ืืกื™ืžื•ืŸ ื‘-DB ืฉืœืš. ืžื›ื™ื•ื•ืŸ ืฉืืกื™ืžื•ืŸ ืชืงืฃ ืฉื•ื•ื” ืขืจืš ืœืกื™ืกืžื”, ืื—ืกื•ืŸ ื”ืืกื™ืžื•ืŸ ื”ื•ื ื›ืžื• ืื—ืกื•ืŸ ื”ืกื™ืกืžื” ื‘ื˜ืงืกื˜ ื‘ืจื•ืจ.
ืืกื™ืžื•ืŸ ื’ื™ืฉื” ื”ื•ื ืืกื™ืžื•ืŸ ื”ืžืขื ื™ืง ืœื‘ืขืœื™ื• ื’ื™ืฉื” ืœืžืฉืื‘ื™ ืฉืจืช ืžืื•ื‘ื˜ื—ื™ื. ื‘ื“ืจืš ื›ืœืœ ื™ืฉ ืœื• ืื•ืจืš ื—ื™ื™ื ืงืฆืจ ื•ื”ื•ื ืขืฉื•ื™ ืœืฉืืช ืžื™ื“ืข ื ื•ืกืฃ ื›ื’ื•ืŸ ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฆื“ ื”ืžื‘ืงืฉ ืืช ื”ืืกื™ืžื•ืŸ.

ืจืขื ืŸ ืืกื™ืžื•ืŸ ื”ื•ื ืืกื™ืžื•ืŸ ื”ืžืืคืฉืจ ืœืœืงื•ื—ื•ืช ืœื‘ืงืฉ ืืกื™ืžื•ื ื™ ื’ื™ืฉื” ื—ื“ืฉื™ื ืœืื—ืจ ืฉืชื•ืงืฃ ื—ื™ื™ื”ื ืคื’. ืืกื™ืžื•ื ื™ื ืืœื• ืžื•ื ืคืงื™ื ื‘ื“ืจืš ื›ืœืœ ืœืชืงื•ืคืช ื–ืžืŸ ืืจื•ื›ื”.

ื”ื™ืชืจื•ื ื•ืช ื”ืขื™ืงืจื™ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•:

  • ื™ื›ื•ืœืช ื’ื™ืฉื” ืœืืคืœื™ืงืฆื™ื•ืช ื•ืฉื™ืจื•ืชื™ื ืฉื•ื ื™ื ื‘ืืžืฆืขื•ืช ืื™ืžื•ืช ื—ื“ ืคืขืžื™.
  • ื‘ื”ื™ืขื“ืจ ืžืกืคืจ ืชื›ื•ื ื•ืช ื ื“ืจืฉื•ืช ื‘ืคืจื•ืคื™ืœ ื”ืžืฉืชืžืฉ, ื ื™ืชืŸ ืœื”ืขืฉื™ืจ ื‘ื ืชื•ื ื™ื ื”ื ื™ืชื ื™ื ืœื”ื•ืกืคื” ืœืžื˜ืขืŸ, ืœืจื‘ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื•ื‘ื“ืจืš.
  • ืื™ืŸ ืฆื•ืจืš ืœืื—ืกืŸ ืžื™ื“ืข ืขืœ ื”ืคืขืœื•ืช ืคืขื™ืœื•ืช, ืืคืœื™ืงืฆื™ื™ืช ื”ืฉืจืช ืฆืจื™ื›ื” ืจืง ืœืืžืช ืืช ื”ื—ืชื™ืžื”.
  • ื‘ืงืจืช ื’ื™ืฉื” ื’ืžื™ืฉื” ื™ื•ืชืจ ื‘ืืžืฆืขื•ืช ืชื›ื•ื ื•ืช ื ื•ืกืคื•ืช ื‘ืžื˜ืขืŸ.
  • ื”ืฉื™ืžื•ืฉ ื‘ื—ืชื™ืžืช ืืกื™ืžื•ืŸ ืขื‘ื•ืจ ื”ื›ื•ืชืจืช ื•ื”ืžื˜ืขืŸ ืžื’ื‘ื™ืจ ืืช ื”ืื‘ื˜ื—ื” ืฉืœ ื”ืคืชืจื•ืŸ ื‘ื›ืœืœื•ืชื•.

ืืกื™ืžื•ืŸ JWT - ื”ืจื›ื‘

ื›ื•ืชืจืช - ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ื›ื•ืชืจืช ืžื›ื™ืœื” ืจืง ืืช ืกื•ื’ ื”ืืกื™ืžื•ืŸ ื•ืืช ื”ืืœื’ื•ืจื™ืชื ื”ืžืฉืžืฉ ืœื”ืฆืคื ื”.

ืกื•ื’ ื”ืืกื™ืžื•ืŸ ืžืื•ื—ืกืŸ ื‘ืžืงืฉ "ื˜ื™ื™ืค". ืžืชืขืœืžื™ื ืžื”ืžืคืชื— 'ืกื•ื’' ื‘-JWT. ืื ื”ืžืคืชื— "typ" ืงื™ื™ื, ื”ืขืจืš ืฉืœื• ื—ื™ื™ื‘ ืœื”ื™ื•ืช JWT ื›ื“ื™ ืœืฆื™ื™ืŸ ืฉืื•ื‘ื™ื™ืงื˜ ื–ื” ื”ื•ื JSON Web Token.

ื”ืžืคืชื— ื”ืฉื ื™ "alg" ืžื’ื“ื™ืจ ืืช ื”ืืœื’ื•ืจื™ืชื ื”ืžืฉืžืฉ ืœื”ืฆืคื ืช ื”ืืกื™ืžื•ืŸ. ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ื’ื“ืจ ืœ-HS256 ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื”ื›ื•ืชืจืช ืžืงื•ื“ื“ืช ื‘-base64.

{ "alg": "HS256", "type": "JWT"}
ืžื˜ืขืŸ (ืชื•ื›ืŸ) - ื”ืžื˜ืขืŸ ืžืื—ืกืŸ ื›ืœ ืžื™ื“ืข ืฉืฆืจื™ืš ืœื‘ื“ื•ืง. ื›ืœ ืžืคืชื— ื‘ืžื˜ืขืŸ ืžื›ื•ื ื” "ืชื‘ื™ืขื”". ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ื™ื›ื ืก ืœืืคืœื™ืงืฆื™ื” ืจืง โ€‹โ€‹ื‘ื”ื–ืžื ื” (ืคืจื•ืžื• ืกื’ื•ืจ). ื›ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœื”ื–ืžื™ืŸ ืžื™ืฉื”ื• ืœื”ืฉืชืชืฃ, ืื ื—ื ื• ืฉื•ืœื—ื™ื ืœื• ืžื›ืชื‘ ื”ื–ืžื ื”. ื—ืฉื•ื‘ ืœื‘ื“ื•ืง ืฉื›ืชื•ื‘ืช ื”ืžื™ื™ืœ ืฉื™ื™ื›ืช ืœืžื™ ืฉืžืงื‘ืœ ืืช ื”ื”ื–ืžื ื” ื•ืœื›ืŸ ื ื›ืœื•ืœ ื›ืชื•ื‘ืช ื–ื• ื‘ืžื˜ืขืŸ, ืœืฉื ื›ืš ืื ื• ืฉื•ืžืจื™ื ืื•ืชื” ื‘ืžืคืชื— "ืžื™ื™ืœ"

{ "ืื™ืžื™ื™ืœ": "[ืžื•ื’ืŸ ื‘ื“ื•ื"ืœ]"}

ืžืคืชื—ื•ืช ื‘ืžื˜ืขืŸ ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืฉืจื™ืจื•ืชื™ื™ื. ืขื ื–ืืช, ื™ืฉ ื›ืžื” ืฉืžื•ืจื•ืช:

  • iss (ืžื ืคื™ืง) - ืžื–ื”ื” ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืžืžื ื” ื ืฉืœื— ื”ืืกื™ืžื•ืŸ.
  • sub (Subject) - ืžื’ื“ื™ืจ ืืช ื ื•ืฉื ื”ืืกื™ืžื•ืŸ.
  • aud (ืงื”ืœ) ื”ื•ื ืžืขืจืš ืฉืœ ืžื—ืจื•ื–ื•ืช ืื• URI ืชืœื•ื™ื™-ืจื™ืฉื™ื•ืช ื”ืžื”ื•ื•ื” ืจืฉื™ืžื” ืฉืœ ื”ื ืžืขื ื™ื ืฉืœ ืืกื™ืžื•ืŸ ื–ื”. ื›ืืฉืจ ื”ืฆื“ ื”ืžืงื‘ืœ ืžืงื‘ืœ JWT ืขื ื”ืžืคืชื— ื”ื ืชื•ืŸ, ืขืœื™ื• ืœื‘ื“ื•ืง ืืช ื ื•ื›ื—ื•ืชื• ืฉืœ ืขืฆืžื• ื‘ื ืžืขื ื™ื - ืื—ืจืช ืชืชืขืœื ืžื”ืืกื™ืžื•ืŸ.
  • exp (ื–ืžืŸ ืชืคื•ื’ื”) - ืžืฆื™ื™ืŸ ืžืชื™ ื™ืคื•ื’ ื”ืืกื™ืžื•ืŸ. ืชืงืŸ JWT ื“ื•ืจืฉ ืžื›ืœ ื”ื™ื™ืฉื•ืžื™ื ืฉืœื• ืœื“ื—ื•ืช ืืกื™ืžื•ื ื™ื ืฉืคื’ ืชื•ืงืคื. ืžืคืชื— exp ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื—ื•ืชืžืช ื–ืžืŸ ื‘ืคื•ืจืžื˜ ื™ื•ื ื™ืงืก.
  • nbf (Not Before) ื”ื•ื ื–ืžืŸ ื‘ืคื•ืจืžื˜ ื™ื•ื ื™ืงืก ืฉืงื•ื‘ืข ืืช ื”ืจื’ืข ืฉื‘ื• ื”ืืกื™ืžื•ืŸ ื”ื•ืคืš ืœืชืงืฃ.
  • iat (ื”ื•ื ืคืง ื‘) - ืžืคืชื— ื–ื” ืžื™ื™ืฆื’ ืืช ื”ื–ืžืŸ ืฉื‘ื• ื”ืืกื™ืžื•ืŸ ื”ื•ืคืง ื•ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœืงื‘ื•ืข ืืช ื’ื™ืœ ื”-JWT. ืžืคืชื— iat ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื—ื•ืชืžืช ื–ืžืŸ ื‘ืคื•ืจืžื˜ ื™ื•ื ื™ืงืก.
  • Jti (ืžื–ื”ื” JWT) - ืžื—ืจื•ื–ืช ื”ืžื’ื“ื™ืจื” ืืช ื”ืžื–ื”ื” ื”ื™ื™ื—ื•ื“ื™ ืฉืœ ืืกื™ืžื•ืŸ ื–ื”, ืชืœื•ื™ ืจื™ืฉื™ื•ืช.

ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืฉื”ืขื•ืžืก ืื™ื ื• ืžื•ืขื‘ืจ ื‘ืฆื•ืจื” ืžื•ืฆืคื ืช (ืื ื›ื™ ื ื™ืชืŸ ืœืงื ืŸ ืืกื™ืžื•ื ื™ื ื•ืื– ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ื ืชื•ื ื™ื ืžื•ืฆืคื ื™ื). ืœื›ืŸ, ื”ื•ื ืื™ื ื• ื™ื›ื•ืœ ืœืื—ืกืŸ ืžื™ื“ืข ืกื•ื“ื™ ื›ืœืฉื”ื•. ื›ืžื• ื”ื›ื•ืชืจืช, ื”ืžื˜ืขืŸ ืžืงื•ื“ื“ base64.
ื—ืชื™ืžื” - ื›ืฉื™ืฉ ืœื ื• ื›ื•ืชืจืช ื•ืžื˜ืขืŸ, ื ื•ื›ืœ ืœื—ืฉื‘ ืืช ื”ื—ืชื™ืžื”.

ืžืงื•ื“ื“ืช Base64: ื”ื›ื•ืชืจืช ื•ื”ืžื˜ืขืŸ ื ืœืงื—ื™ื, ื”ื ืžืฉื•ืœื‘ื™ื ืœืžื—ืจื•ื–ืช ื“ืจืš ื ืงื•ื“ื”. ืื– ืžื—ืจื•ื–ืช ื–ื• ื•ื”ืžืคืชื— ื”ืกื•ื“ื™ ืžื•ื–ื ื™ื ืœืืœื’ื•ืจื™ืชื ื”ื”ืฆืคื ื” ืฉืฆื•ื™ืŸ ื‘ื›ื•ืชืจืช ("ืžืคืชื— alg"). ื”ืžืคืชื— ื™ื›ื•ืœ ืœื”ื™ื•ืช ื›ืœ ืžื—ืจื•ื–ืช. ืžื™ืชืจื™ื ืืจื•ื›ื™ื ื™ื•ืชืจ ื™ื•ืขื“ืคื• ื‘ื™ื•ืชืจ ืžื›ื™ื•ื•ืŸ ืฉื™ืงื— ื™ื•ืชืจ ื–ืžืŸ ืœื”ืจื™ื.

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

ื‘ื ื™ื™ืช ืืจื›ื™ื˜ืงื˜ื•ืจืช ืืฉื›ื•ืœื•ืช ืฉืœ Keycloak Failover

ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ืืฉื›ื•ืœ ื™ื—ื™ื“ ืขื‘ื•ืจ ื›ืœ ื”ืคืจื•ื™ืงื˜ื™ื, ื™ืฉ ื“ืจื™ืฉื•ืช ืžื•ื’ื‘ืจื•ืช ืœืคืชืจื•ืŸ SSO. ื›ืืฉืจ ืžืกืคืจ ื”ืคืจื•ื™ืงื˜ื™ื ืงื˜ืŸ, ื”ื“ืจื™ืฉื•ืช ื”ืœืœื• ืœื ื›ืœ ื›ืš ื‘ื•ืœื˜ื•ืช ืœื›ืœ ื”ืคืจื•ื™ืงื˜ื™ื, ืื•ืœื ืขื ืขืœื™ื™ื” ื‘ืžืกืคืจ ื”ืžืฉืชืžืฉื™ื ื•ื”ืื™ื ื˜ื’ืจืฆื™ื•ืช, ื”ื“ืจื™ืฉื•ืช ืœื–ืžื™ื ื•ืช ื•ื‘ื™ืฆื•ืขื™ื ืขื•ืœื•ืช.

ื”ื’ื“ืœืช ื”ืกื™ื›ื•ืŸ ืœื›ืฉืœ SSO ื‘ื•ื“ื“ ืžื’ื“ื™ืœื” ืืช ื”ื“ืจื™ืฉื•ืช ืœืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืคืชืจื•ืŸ ื•ื”ืฉื™ื˜ื•ืช ื”ืžืฉืžืฉื•ืช ืœืจื›ื™ื‘ื™ื ืžื™ื•ืชืจื™ื ื•ืžื•ื‘ื™ืœื” ืœ-SLA ื”ื“ื•ืง ืžืื•ื“. ื‘ื”ืงืฉืจ ื–ื”, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื•ืชืจ ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ืื• ื”ืฉืœื‘ื™ื ื”ืžื•ืงื“ืžื™ื ืฉืœ ื”ื˜ืžืขืช ืคืชืจื•ื ื•ืช, ืœืคืจื•ื™ืงื˜ื™ื ื™ืฉ ืชืฉืชื™ืช ืžืฉืœื”ื ืฉืื™ื ื” ืกื•ื‘ืœื ื™ืช ืœืชืงืœื•ืช. ื›ื›ืœ ืฉื”ืคื™ืชื•ื— ืžืชืงื“ื, ื ื“ืจืฉ ืœื”ืฆื™ื‘ ื”ื–ื“ืžื ื•ื™ื•ืช ืœืคื™ืชื•ื— ื•ื”ืจื—ื‘ื”. ื–ื” ื”ื›ื™ ื’ืžื™ืฉ ืœื‘ื ื•ืช ืืฉื›ื•ืœ ื›ืฉืœ ื‘ืืžืฆืขื•ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ืžื™ื›ืœ ืื• ื’ื™ืฉื” ื”ื™ื‘ืจื™ื“ื™ืช.

ื›ื“ื™ ืœืขื‘ื•ื“ ื‘ืžืฆื‘ื™ ื”-Active/Active ื•-Active/Passive Cluster, ื ื“ืจืฉ ืœื”ื‘ื˜ื™ื— ืขืงื‘ื™ื•ืช ื ืชื•ื ื™ื ื‘ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™ - ืฉื ื™ ืฆืžืชื™ ืžืกื“ ื”ื ืชื•ื ื™ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืžืฉื•ื›ืคืœื™ื ื‘ืื•ืคืŸ ืกื™ื ื›ืจื•ื ื™ ื‘ื™ืŸ ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื ื‘ืคื™ื–ื•ืจ ื’ื™ืื•ื’ืจืคื™.

ื”ื“ื•ื’ืžื” ื”ืคืฉื•ื˜ื” ื‘ื™ื•ืชืจ ืฉืœ ื”ืชืงื ื” ืกื•ื‘ืœื ื™ืช ืœืชืงืœื•ืช.

SSO ืขืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช ืžื™ืงืจื•. ืื ื• ืžืฉืชืžืฉื™ื ื‘-Keycloak. ื—ืœืง 1

ืžื”ื ื”ื™ืชืจื•ื ื•ืช ืฉืœ ืฉื™ืžื•ืฉ ื‘ืืฉื›ื•ืœ ื™ื—ื™ื“:

  • ื–ืžื™ื ื•ืช ื•ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื.
  • ืชืžื™ื›ื” ื‘ืžืฆื‘ื™ ืคืขื•ืœื”: ืคืขื™ืœ / ืคืขื™ืœ, ืคืขื™ืœ / ืคืกื™ื‘ื™.
  • ื™ื›ื•ืœืช ืงื ื” ืžื™ื“ื” ื“ื™ื ืžื™ - ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ืงื•ื ื˜ื™ื™ื ืจื™ื.
  • ืืคืฉืจื•ืช ืœื ื™ื”ื•ืœ ื•ื ื™ื˜ื•ืจ ืžืจื›ื–ื™.
  • ื’ื™ืฉื” ืื—ื™ื“ื” ืœื–ื™ื”ื•ื™/ืื™ืžื•ืช/ื”ืจืฉืื” ืฉืœ ืžืฉืชืžืฉื™ื ื‘ืคืจื•ื™ืงื˜ื™ื.
  • ืื™ื ื˜ืจืืงืฆื™ื” ืฉืงื•ืคื” ื™ื•ืชืจ ื‘ื™ืŸ ืคืจื•ื™ืงื˜ื™ื ืฉื•ื ื™ื ืœืœื ืžืขื•ืจื‘ื•ืช ืžืฉืชืžืฉื™ื.
  • ื”ื™ื›ื•ืœืช ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื‘ืืกื™ืžื•ืŸ JWT ื‘ืคืจื•ื™ืงื˜ื™ื ืฉื•ื ื™ื.
  • ื ืงื•ื“ืช ืืžื•ืŸ ืื—ืช.
  • ื”ืฉืงื” ืžื”ื™ืจื” ื™ื•ืชืจ ืฉืœ ืคืจื•ื™ืงื˜ื™ื ื‘ืืžืฆืขื•ืช microservices/ื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ืžื™ื›ืœื™ื (ืื™ืŸ ืฆื•ืจืš ืœื”ืจื™ื ื•ืœื”ื’ื“ื™ืจ ืจื›ื™ื‘ื™ื ื ื•ืกืคื™ื).
  • ื ื™ืชืŸ ืœืจื›ื•ืฉ ืชืžื™ื›ื” ืžืกื—ืจื™ืช ืžื”ืกืคืง.

ืžื” ืœื—ืคืฉ ื›ืฉืžืชื›ื ื ื™ื ืืฉื›ื•ืœ

DBMS

Keycloak ืžืฉืชืžืฉ ื‘ืžืขืจื›ืช ื ื™ื”ื•ืœ ืžืกื“ ื ืชื•ื ื™ื ืœืื—ืกื•ืŸ: ืžืžืœื›ื•ืช, ืœืงื•ื—ื•ืช, ืžืฉืชืžืฉื™ื ื•ื›ื•'.
ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ DBMS ื ืชืžืš: MS SQL, Oracle, MySQL, PostgreSQL. Keycloak ืžื’ื™ืข ืขื ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™ ืžื•ื‘ื ื” ืžืฉืœื•. ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ืกื‘ื™ื‘ื•ืช ืœื ืขืžื•ืกื•ืช - ื›ืžื• ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—.

ื›ื“ื™ ืœืขื‘ื•ื“ ื‘ืžืฆื‘ื™ ืืฉื›ื•ืœ ืคืขื™ืœ/ืคืขื™ืœ ื•ืคืขื™ืœ/ืคืืกื™ื‘ื™, ื ื“ืจืฉืช ืขืงื‘ื™ื•ืช ื ืชื•ื ื™ื ื‘ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™, ื•ืฉื ื™ ืฆืžืชื™ ืืฉื›ื•ืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืžืฉื•ื›ืคืœื™ื ื‘ืื•ืคืŸ ืกื™ื ื›ืจื•ื ื™ ื‘ื™ืŸ ืžืจื›ื–ื™ ื ืชื•ื ื™ื.

ืžื˜ืžื•ืŸ ืžื‘ื•ื–ืจ (Infinspan)

ื›ื“ื™ ืฉื”ืืฉื›ื•ืœ ื™ืคืขืœ ื›ื”ืœื›ื”, ื ื“ืจืฉ ืกื ื›ืจื•ืŸ ื ื•ืกืฃ ืฉืœ ืกื•ื’ื™ ื”ืžื˜ืžื•ื ื™ื ื”ื‘ืื™ื ื‘ืืžืฆืขื•ืช JBoss Data Grid:

ื”ืคืขืœื•ืช ืื™ืžื•ืช - ืžืฉืžืฉื•ืช ืœืฉืžื™ืจืช ื ืชื•ื ื™ื ื‘ืขืช ืื™ืžื•ืช ืžืฉืชืžืฉ ืกืคืฆื™ืคื™. ื‘ืงืฉื•ืช ืžืžื˜ืžื•ืŸ ื–ื” ื›ื•ืœืœื•ืช ื‘ื“ืจืš ื›ืœืœ ืจืง ืืช ื”ื“ืคื“ืคืŸ ื•ืืช ืฉืจืช Keycloak, ืœื ืืช ื”ืืคืœื™ืงืฆื™ื”.

ืืกื™ืžื•ื ื™ ืคืขื•ืœื” ืžืฉืžืฉื™ื ืœืชืจื—ื™ืฉื™ื ืฉื‘ื”ื ื”ืžืฉืชืžืฉ ืฆืจื™ืš ืœืืฉืจ ืคืขื•ืœื” ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™ (ื‘ืžื™ื™ืœ). ืœื“ื•ื’ืžื”, ื‘ืžื”ืœืš ื–ืจื™ืžืช ืฉื›ื—ืช ืกื™ืกืžื”, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื˜ืžื•ืŸ actionTokens Infinispan ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืžื˜ื ื ืชื•ื ื™ื ืœื’ื‘ื™ ืืกื™ืžื•ื ื™ ืคืขื•ืœื” ืžืฉื•ื™ื›ื™ื ืฉื›ื‘ืจ ื ืขืฉื” ื‘ื”ื ืฉื™ืžื•ืฉ, ื›ืš ืฉืœื ื ื™ืชืŸ ืœืขืฉื•ืช ื‘ื• ืฉื™ืžื•ืฉ ื—ื•ื–ืจ.

ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ื•ืื™ ืชื•ืงืฃ ืฉืœ ื ืชื•ื ื™ื ืžืชืžื™ื“ื™ื - ืžืฉืžืฉื™ื ืœืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ ืฉืœ ื ืชื•ื ื™ื ืžืชืžื™ื“ื™ื ื›ื“ื™ ืœืžื ื•ืข ืฉืื™ืœืชื•ืช ืžื™ื•ืชืจื•ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื. ื›ืืฉืจ ื›ืœ ืฉืจืช Keycloak ืžืขื“ื›ืŸ ืืช ื”ื ืชื•ื ื™ื, ื›ืœ ืฉืืจ ืฉืจืชื™ Keycloak ื‘ื›ืœ ืžืจื›ื–ื™ ื”ื ืชื•ื ื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ืขืœ ื›ืš.

ืขื‘ื•ื“ื” - ืžืฉืžืฉ ืจืง ืœืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ืœื ื—ื•ืงื™ื•ืช ื‘ื™ืŸ ืฆืžืชื™ ืืฉื›ื•ืœ ื•ืžืจื›ื–ื™ ื ืชื•ื ื™ื.

ื”ืคืขืœื•ืช ืžืฉืชืžืฉ - ืžืฉืžืฉื•ืช ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ืขืœ ื”ืคืขืœื•ืช ืžืฉืชืžืฉ ืฉืชืงืคื•ืช ืœืžืฉืš ื”ืคืขืœืช ื”ื“ืคื“ืคืŸ ืฉืœ ื”ืžืฉืชืžืฉ. ื”ืžื˜ืžื•ืŸ ื—ื™ื™ื‘ ืœืขื‘ื“ ื‘ืงืฉื•ืช HTTP ืžืžืฉืชืžืฉ ื”ืงืฆื” ื•ืžื”ืืคืœื™ืงืฆื™ื”.

ื”ื’ื ื” ืขืœ ื›ื•ื— ื’ืก - ืžืฉืžืฉ ืœืžืขืงื‘ ืื—ืจ ื ืชื•ื ื™ื ืขืœ ื›ื ื™ืกื•ืช ื›ื•ืฉืœื•ืช.

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื

ืžืื–ืŸ ื”ืขื•ืžืก ื”ื•ื ื ืงื•ื“ืช ื”ื›ื ื™ืกื” ื”ื™ื—ื™ื“ื” ืœ-keycloak ื•ื—ื™ื™ื‘ ืœืชืžื•ืš ื‘ื”ืคืขืœื•ืช ื“ื‘ื™ืงื•ืช.

ืฉืจืชื™ ื™ื™ืฉื•ืžื™ื

ื”ื ืžืฉืžืฉื™ื ืœืฉืœื™ื˜ื” ื‘ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืจื›ื™ื‘ื™ื ื–ื” ืขื ื–ื” ื•ื ื™ืชืŸ ืœืขืฉื•ืชื ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืื• ืžื™ื›ืœ ื‘ืืžืฆืขื•ืช ื›ืœื™ ืื•ื˜ื•ืžืฆื™ื” ืงื™ื™ืžื™ื ื•ืงื ื” ืžื™ื“ื” ื“ื™ื ืžื™ ืฉืœ ื›ืœื™ ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชืฉืชื™ืช. ืชืจื—ื™ืฉื™ ื”ืคืจื™ืกื” ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ื‘-OpenShift, Kubernates, Rancher.

ื‘ื›ืš ืžืกืชื™ื™ื ื”ื—ืœืง ื”ืจืืฉื•ืŸ - ื”ืชื™ืื•ืจื˜ื™. ื‘ืกื“ืจืช ื”ืžืืžืจื™ื ื”ื‘ืื” ื™ื ื•ืชื—ื• ื“ื•ื’ืžืื•ืช ืœืื™ื ื˜ื’ืจืฆื™ื•ืช ืขื ืกืคืงื™ ื–ื”ื•ืช ืฉื•ื ื™ื ื•ื“ื•ื’ืžืื•ืช ืœื”ื’ื“ืจื•ืช.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”