αα αααα»ααααα»αα αα»αααααΆαα½α αα·α X5 Retail Group ααΊαα·αααΆαααααΈααΎααααααααα αααααΆαααΆα’αα·αααα α ααα½ααααααααααααΆαααΆαααΆαα’αα»ααααΆαααΈα’αααααααΎααααΆααααΎαα‘αΎαα ααΌαααα ααΆαααααΆααααααΌαα’αααααααΎααααΆααααΈαααααα·ααΈαα½ααα αααααα·ααΈαα½ααααααΊααααΌαααΆαααΆαααΆα α αΎααααααΆααααααααΌαααααΎαααΆαααΈααα Single-Sing-On (SSO) αααα½αα ααα»ααααα α»ααααΆαααΆα ααααααααααα’ααααααααα’ααααααααΆαααΌα ααΆ AD α¬α’αααααααααααααααα·αααΆααα»αααααααααααααααααΌαααΆαααααΎααααΆαααα½α α αΎααα αααα»αααααααααααααα ααααΆαααααααααααααααα α ααΆ "αααα½ααααααΆαα’ααααααααΆα" ααΉααααα½αααααααααα αα»αααΆαα αααΎααααα»αααΊααααΆαααααααΆ ααΌα ααΆ Keycloak ααΆαααααααααα Gravitee Access α α αΎααααααααααΆααααααααααα»αα αα»αααααααΎαα₯α‘αΌααααααΆααααα½ααααααΆαα ααα’α»ααααα αΆα - Keycloak α
Keycloak ααΊααΆα’ααααααααΆααααααααΎαα
αα αα·αααα·ααααααα½ααα·αα·αααααΆαα
αΌαααααΎααααααααΆααα RedHat α ααΆααΊααΆααΌαααααΆααααααΆααααα·ααααααααααα»αα αα»ααααααααΎ SSO - RH-SSO α
αααα·αααΆααΌαααααΆα
αα»ααααα’αααα αΆααααααΎααααααααΆαααΆαα½ααααααααααΆα αα·ααα·ααΈααΆααααα α’ααααα½ααααααααα α α·αααααΆααααααααα αα·αααααΆααααααααΎαααΆαα
ααΆααααααα’ααααααααΆαα ααΊβααΆβααΈαα·αα·ααΈβαααααΆααβααΆαβααα½αβααααΆααβαα»αβαα·ααααΆβαααβα’αααβαααααβα’ααααααααΆαβααααβααΆαα (αα·ααΆαβαααααΆαβαααβαααβααΊβααΆβαα·αααααβααβααααα α
αΌα α¬βααα)α
ααΆααααααααααΆααααΆαααααΉαααααΌα - αααααΊααΆααΈαα·αα·ααΈααααΆααααααααααΆαα (α’αααααααΎααααΆααααααΌαααΆααα·αα·ααααααααΆααααααααΆαα αα·αα·αααααΌαααΆααα·αα·ααααααα αααααααΆα’αα‘α·α ααααΌαα·αααα)
ααΆαα’αα»ααααΆα - αααααΊααΆααΆαααααααα·αααα·α αΌαααααΎααααΆα (α§ααΆα ααα α’ααΈααα)α
ααααΆααααΆαα’ααααααααΆαααααα
ααα ααΊααΆαααααααααΆααααααααααααΆαα αΌαααααΎ αα·αα’ααααααααΆααααααααΎαα αα ααααααααΌαααΆααα ααΆα‘αΎααααααΆααααααΎααααΆαααα αααα»α IS αααααααΌααααΆααααααααααααΆαααΌα α’αΆα ααααΎααααΆααααΆαα
Keycloak αααααααΌααααααααα·αααααΌα ααΆααΆαα αΌααααα½α (SSO) α’ααααααααΆααααα½ααααααΆα αα·αααΆαα αΌαααααα αα αααααα’αααααααΎααααΆαα α’αΆααΆαααααα’αα·αα·αα αα»αααΌαααααααααα αα·ααα»αααΌααααααααααααααΈα
αα»αααΆαααΆααΌαααααΆααααααΆααααααα Keycloakα
- Single-Sign On αα·α Single-Sign Out αααααΆαααααααα·ααΈαααααα·ααΈαα»αααααΆαα’ααΈαααΊαα·αα
- ααΆαααΆαααααααααΆαα OpenID/OAuth 2.0/SAML α
- αααα½ααααααΆαα’ααααααααΆα - ααΆααααααααααΆαααααααααΎ OpenID Connect ααΆααααα α¬α’ααααααααα’ααααααααΆα SAML α
- ααΆαα αΌαααααα - Google, GitHub, Facebook, Twitter ααΆαααααααααΆααααΆααααααα’ααααααααΆαα’αααααααΎααααΆααα
- αα αααααα’αααααααΎααααΆαα β ααΆαααααΎααααΆαααααα’αααααααΎααααΆααααΈαααΆαααΈααα LDAP αα·α Active Directory αα·αα’ααααααααα’ααααααααΆαααααααααα
- ααααΆα Kerberos - αααααααΎαααΆαααΈααα 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
Java API
α’ααααααααα’ααααααααΆααα ααααΆα (αααα»αααα·ααα)
αααααααΆααααα»αααΆααααααααααΆααα’αααααααΎααααΆααααΆααααααααΆαααααα αααααα’αααααααΎααααΆααα
ααΆααααααααααΆααααααααΆααααα’αΆα
ααααΌαααΆαααααΎααααα - ααααα·αααΎα’αααααααΎααααΆαααααααααααΆαααααααΆααααΉαααααΆααΈαααΆαααΆαααΆαα½α Kerberos (LDAP α¬ AD) ααααα½αααα’αΆα
αααααααααΆαααααααααααααααααα·αα
Keycloak ααααα·αα
αΆαααΆα
ααααα
αΌααααααα’αααααααΎααααΆαα αα·αααΆααααααααΆαααααααα½ααααααααααα
αααααΆααααΆααααααααααΆαα αα·αααΆαα’αα»ααααΆαααααααααααα’αααααααΎααααΆαα ααΆα’αΆα ααααΎ DBMS αααααΆααααααααΆ αααα’αΆα α’αα»ααααααΆααααα»ααααααΆααααα·ααααΆαα’αα·αααααα αααααΆαααΆαα·αααΆαααααααααΉαααΆααααααααΌα αα·αααΆααα½ααααα αΌααα ααααΆααααΆαααααΌαααααααααα ααΆαααααΆαααΎα Keycloak ααααΎ DBMS αααααααΆααααααΆαα½αααΎααααΈαααααΆαα»αααΆαααααα αα·ααα·ααααααα’αααααααΎααααΆααα
αααααΈαα DBMS αααααΆααααααΊααΌααααΌααΆα αα·ααα½ααααα αΌαα MS SQL, Oracle, PostgreSQL, MariaDB, Oracle αα·αααααααααα ααΆαααΆααααααααα»ααα αΌααααααααααααααΊ Oracle 12C Release1 RAC αα·α Galera 3.12 cluster αααααΆαα MariaDB 10.1.19 α
α’ααααααααα’ααααααααΆα - ααΆαα αΌαααααα
ααΆα’αΆα ααααΎααΆαα αΌαααΈαααααΆααααααα ααΎααααΈααααΎα±αααααααααΆααααα»αααΆααααααααααΆααα’αααααααΎααααΆαα ααΌαααααΎαα»αααΌαααααααααα Keycloack α ααΆαααααΆααααααΌαααΌααααααα·ααΈαα·αααααΌαααΆαααΆαααΆααα α αΎααα»αααΆααααα’αΆα ααααΎααΆααααα αααα’αα α αΎαα’αΆα ααααΎαααΆαααΆααα αααααααααΆααααΆαααααααααα
ααΎααααΈαααααααααΆααα’αααααααΎααααΆαα ααΆα’αΆα
ααααΎα’ααααααααα’ααααααααΆα OpenID/SAMLα
ααααΆααΈαααΌααΆαα’αα»ααααΆαααααααΆαααααααΎ OAuth2 αα αααα»α Keycloak
ααα αΌααααααΌαα’αα»ααααΆα - ααααΎααΆαα½ααααααα·ααΈα αα αααααΆαααΈαααα αααααααα½ααααα»αα ααααααααααααΌαα αααα»αααααΆαα’αα»ααααΆαααΆαα’αα»ααααΆα αααααααΆαααααα·αααααααΆαααααααα·ααΈαααΆαααΈααα αααααΌαααααααααααα·ααΈ αα·ααα·ααααααα’αα·αα·αααα·αααΆααααααΆααα’αααααΆααααα α ααααΎαααΆααααα»αααααΈαααααΊααα’ααααΎααΆααααααΌαααααα αααααα·ααΈααααΌαααα’αΆα ααααΎα’ααααααααααΆαα½αααααΆααααΆαα’αααααααΎααααΆαα (user-agent) ααΌα ααΆαααααα·ααΈαα»αααααΆαα’ααΈαααΊαα·α ααΎααααΈααα½αααΆααααααΌαα’αα»ααααΆα API ααααααααΌαααααααΆααααααααΆααααΆαα’αααααααΎααααΆααα
ααα αΌααααααααααα - ααααΎααααααααα·ααΈααΌαααααα α¬ααα ααααα (αααααα·ααΈααααΎαααΆαααΎα§αααααααααα’αααααααΎ)α
ααααααααΆαα’αα»ααααΆαααΆαα’αα»ααααΆααααααααααααααΌαααΆαααααΎααααααααα·ααΈααΌαααααα αα·αααα ααααα αααααΆααααααΆααΆααααααΆααααααα’αα·αα·αααα·αα’αΆα ααΆααΆααΆαα ααααααααΆαα’αα»ααααΆααααααααααααααααΎααΆααααααΌαααααααααΆααααΆαα’αααααααΎααααΆααααααα ααααααααΆαααααΆααα αΌαααααΎααααΌαααΆααααααΌααα ααααΆααααΆαα’αααααααΎααααΆαααααααΆααααααΎααααΆααααααααααααα αααα»ααααααα·ααΈα ααΆααααΎα±αααααααΆαααααΆααααΆααααααΆααα’αααααααΎααααΆαα αα·ααααααα·ααΈαααααααααα ααΎα§αααααααααα’αααααααΎααααΆααα ααααααααααΆαα’αα»ααααΆαααΆαα’αα»ααααΆαααααα·ααααααααααΆααα’ααααααααΆααααααααα·ααΈααααα α αΎαααααΎαααΆααααα½αααΆααΉαααα’ααααΎ URL ααααΌααα·α (αααααΆαα α»ααααααααΈαα»αααΆαα½αααααΆαααα)α
Implicit Flow αα·αααΆααααααΆαα
αΌαααααΎ token refresh tokens ααα
ααα αΌααααααααααααΆααααααΆααα’ααααααααΆαα’αα·αα·αα β ααααΌαααΆαααααΎαα
αααααααααααα·ααΈα
αΌαααααΎ API α ααααααααααΆαα’αα»ααααΆαααΆαα’αα»ααααΆααααααααΌαααΆαααααΎααΆααααααΆαααααΆααα’αααααααααααΆααααΆαααΈααααα
αααΆαααΈααα αααααααΌαααα’αα»αααααα
αααα»αααααααΆααααααααααα·αααΆαα’ααααααααα’αααααααΎααααΆααααααΆααα ααα αΌαβααβααΆαβαααααβααααααΆαβαααααΆααβα’αα·αα·ααβα’αα»ααααΆαβα±ααβααααΆβαααααΆα (αααΆαααΈαβαααααβαααααΆαα) ααααΎβααααααΆαβαααααΆααβααααΆααβαααα½αβααΆβααΆαβααΆαβαααααβαααα½αβααΆβα’αααβααααΎβααΎααααΈβαααααααααΆααβααΆαβααααΉαααααΌαβαααβα α
βααααΆβαααααΆαβαααααα αααααΆααααααα·ααα»ααααα·ααΆααααααααΆαααα ααΆα’αΆα
αα
αα½α
αααααΆααααααΆα α
ααΌαααααααΎααααΈααααΎαα·ααααΆαααααα (αααα½αα±ααααΆααααααΆαααααααΆαα
ααααααα) ααΆααααααΆααααααΆααα’ααααααααΆαα
ααΆααααααΆαα OAuth2 ααααΌαααΆααα·αααααΆαα
αααα»α
αα·αα·ααααααααΆ JWT αα·αα’αααααααααααααααααΆα
JWT (JSON Web Token) ααΊααΆαααααααΆαααΎαα
αα (
αααααΆααααααααΆα αααααΆαααααΆααααΆαααΈααααααααα»ααααααα base-64 αααααααααααα ααα»α α αααααααΈαα½αααααΌαααΆαααα α ααΆααααααΆαααααΆααααααααααααααΆαααααΆαααα·αααααααααααα½ααααααααΆααααααΆαααααΆααααΆαααα½αααΆαα αααααααΆααΈααΈααα αααααααΈααΈααααααΆαα»αααααααΆαααΌαααααΆα (α’αααααααΎααααΆαα αα»αααααααααα)α αααααααΈααΈααΊα αααααααΆααΈααΈααα
. .
αα»ααααααΆαα»ααααααΆαααααΆαααα
αααα»α DB ααααα’αααα αααααΆααααααααΆαααααΆααααααΉαααααΌαααΊααααΎααΉαααΆααααααααΆαα ααΆααααααΆαα»ααα·αα·ααααααααΆααΊααΌα
ααΆααΆααααααΆαα»αααΆααααααααΆαααα
αααα»αα’αααααα
αααΆααααΆααα
αααααΆαααααΆααα
αΌαααααΎ ααΊααΆαααααΆαααααΆαααααααααααα·αααα·α±ααααα
αΆααααααααΆα
αΌαααααΎααααΆααααΆαααΈαααα ααΆααααααΆααΆααΆαα’αΆαα»ααΆαααααΈ α αΎαα’αΆα
αααα»αααααααΆαααααααααΌα
ααΆα’αΆααααααΆα IP ααααααΆααΈαααααααΎαα»ααααααΆαααααΆααα
αααα»ααααααΆαααααΆααα‘αΎααα·α ααΊααΆαααααΆαααααΆαααααα’αα»ααααΆαα±ααα’αα·αα·ααααααΎαα»ααα·αα·ααααααααΆα αΌαααααΎααααΈ αααααΆααααΈα’αΆαα»ααΆααααααα½ααααα»αααααα ααΌααΉαααΆαααααααΆααααααΆααααΌαααΆαα αααααα»αααααααααΌαα
αα»ααααααααα·α ααααααααΆαααααΎααααΆαααα αααα»αααααΆααααααααααΈααααΌααααΆααααα
- αααααααΆααααα»αααΆαα αΌαααααΎαααααα·ααΈ αα·αααααΆααααααααααααΆααααααΆααααααααααΆααααααααα
- αααα»αααααΈαααααααΆααα»ααααααααααααααΌαααΆααα½αα ααα½ααα αααα»ααααααααααααΆαα’αααααααΎααααΆαα ααΆα’αΆα ααααΎα²αααα½αααΆααααΌααα ααααα·αααααααααα’αΆα αααα αΌααα αααα»αααααα»α αα½αααΆαααααααααααααααααα· αα·αααααΆαααααααα
- αα·αα αΆαααΆα ααααααΆαα»αααααααΆαα’αααΈααααααααααα αααααα·ααΈαααΆαααΈαααααααΆααααααααΌαααΆααααααααααΆααα αααααααΆααα»αααααα
- ααΆααααααααααααΆαα αΌαααααΎαααα’αΆα ααααααααΆαααΆαααααααααααααααααα αααα»αααααα»αα
- ααΆαααααΎααααΆααα αααααααΆαααααΆαααααΆαααααααΆααααααααΆ αα·αααααα»ααααααΎααα»ααααα·ααΆααααααααααααΆαααΆααααΌαα
αα·αα·ααααααααΆ JWT - αααΆαααΆα
ααααααΆ β ααΆαααααΆαααΎα ααααααΆααΆααααααααααααααΆαααααΆαα αα·ααααα½ααααααααΆααααααααΎαααααΆααααΆαα’αα·αααααΈαα
αααααααααααααΆαααααΆααααααΌαααΆααααααΆαα»ααααα»αααααΆααα α»α "ααΆα" α ααααΆααα α»α 'αααααα' αα·αααααΌαααΆαα’αΎααΎαα αααα»α JWT α ααααα·αααΎααααΆααα α»α "ααΆα" ααΆαααααααΆα αααααααααααΆααααΌαααααΆ JWT ααΎααααΈαααα αΆαααΆααααα»αααααΊααΆαα·αα·ααααααααΆααα ααααα JSON α
ααααΆααα α»α ααΈααΈα "alg" ααααααααα½ααααααααΆααααααααΎααΎααααΈα’αα·αααααΈααααααΆαααααΆααα ααΆαα½αααααααΌαααΆαααααααα HS256 ααΆαααααΆαααΎαα ααααααΆααααΌαααΆαα’αα·αααΌααααα»α base64 α
{ "alg": "HS256", "type": "JWT"}
ααααα»α (ααΆαα·ααΆ) - payload αααααΆαα»αααααααΆαααΆαα½ααααααααΌαααΆααααα½ααα·αα·αααα αααααΉαααΈαα½αααα
αααα»α payload ααααΌαααΆαααααααΆααααΆααΆ "ααΆαααΆαααΆα"α α§ααΆα ααα α’αααβα’αΆα
βαααα
αΌαβαααααα·ααΈβααΆαβααβααΆαβααΆαβα’ααααΎαβααα»ααααα (αα·αβααΆαβααααααααααΆα)α αα
ααααααααΎαα
ααα’ααααΎαααααΆααααΆααα±ααα
αΌααα½α ααΎαααααΎαα·αα·αα’ααααΎαα±αααα½αααα ααΆααΆαααΆααααααΆααααΆαααααα»αααΆααααα½ααα·αα·αααααΎαααΆα’αΆααααααΆαα’ααΈαααααΆααααα’ααααααααα½αααααΆαα’ααααΎα ααΌα
ααααααΎαααΉααααα
αΌαα’αΆααααααΆαααααα
αααα»αααααα»α αααααΆααααΆαααα ααΎααααααΆαα»αααΆαα
αααα»ααα "α’ααΈααα"
{ "α’ααΈααα": "[α’ααΈαααααΆαααΆα]"}
ααααΆααα
α»α
αα
αααα»αααααα»αα’αΆα
ααααΆαα ααααααΆαααΆααααα ααΆαααΆαααααα»ααα½αα
ααα½αα
- iss (α’αααα αα) - ααααααααααα·ααΈααααααααΆαααααΆααααααΌαααΆαααααΎα
- α’αα» (αααααΆααα) - ααααααααααΆααααααααααΆαααααΆααα
- aud (αααααα·ααα) ααΊααΆα’αΆααααααααα’ααααααααααααΆααα’ααααααΌα αα α¬ URIs αααααΆαααααΈααα’αααααα½ααααααΆαααααΆαααααα αα ααααααααΆααΈααα½αααΆαααα½α JWT ααΆαα½αααΉααααααααΆααααααα±αα ααΆααααΌααααα·αα·αααααΎαααααααΆααααααααα½αα―ααα αααα»αα’αααααα½α ααΎαα·αααΌα αααααααα·αα’αΎααΎααΉααααααΆαααααΆαααααααα
- exp (Expiration Time) - αααα αΆαααΈαααααααααααΆαααααΆαααα»ααααααα αααααααΆα JWT αααααΌαα±ααα’αα»ααααααΆααα’ααααΎααααΈααα·ααααα·αα·ααααααααΆααααα»ααααααα ααααΆααα α»α exp ααααΌαααααΆααααΆαααααααΆααΆααααααααΌααΈαα
- nbf (Not Before) ααΊααΆαααααααΆαα αααα»ααααααα unix αααααααααααααααααααΆαααααΆααααααΆαααΆααααΉαααααΌαα
- iat (α αααα ) - αααααΉααααααααΆαα±αααααααααΆααααααααΆαααααΆααααααΌαααΆαα αα α αΎαα’αΆα ααααΌαααΆαααααΎααΎααααΈαααααα’αΆαα»αααα JWT α ααααΆααα α»α iat ααααΌαααααΆααααΆαααααααΆαααα»αααααααααΌααΈαα
- Jti (JWT ID) β ααααα’ααααααααααααα’ααααααααΆααααα½αααααααααααΆαααααΆααααα αααααΆααα’ααααααΌα ααα
ααΆααΆααΆαααααΆααααΆαααααααααΌααααααΆ payload αα·αααααΌαααΆααααααΌαααα encrypted (αααααΈααΆ tokens α’αΆα
ααααΌαααΆαααΆαααααα
αΌαα αΎααααααΆααααααΆα’αΆα
ααααΎαα
ααΆαααΎααααΈαααααΌααα·αααααααααααΆαα’αα·αααααΈα) α ααΌα
ααααα αΎα ααΆαα·αα’αΆα
αααααΆαα»αααααααΆααααααΆααααΆαα½αα‘αΎαα ααΌα
ααααααΆ ααααα»αααααΌαααΆαα’αα·αααΌα base64 α
α αααααααΆ - αα
ααααααααΎαααΆαα
αααααΎα αα·αααααα»α ααΎαα’αΆα
ααααΆα αααααααΆααΆαα
Base64-encodedα ααααααΆ αα·α payload ααααΌαααΆααααα αα½αααΆααααΌαααΆαααΆαααααα αΌαααααΆαα αααα»αααααα’ααααααΆααααα ααα»α αα½αα αααααΆαααα ααααα’ααααααα αα·ααααααααΆααααααΌαααΆααααα αΌααα αααα»ααααα½ααααααααΆαααΆαα’αα·αααααΈααααααΆααααααΆαααα αααα»αααααααΆ (ααΌααα "alg") α αααααΉαα’αΆα ααΆααααααΆαα½αα αααααααααΆαααΉαααααΌαααΆααααααα α·ααααααα»ααααααααΆααΉαα αααΆααααααΌαααΆααααααΎααααΈααα
{"alg":"RSA1_5","payload":"A128CBC-HS256"}
ααΆααααΆαααααΆαααααααα Keycloak Failover Cluster
αα αααααααΎα ααααααααα½ααααααΆααααααααααΆααα’αα ααΆααααααΌαααΆαααΎαα‘αΎααααααΆαααααααααααΆα SSO α αα ααααααα ααα½αααααααααΆααα·α αα½α αααααΌαααΆαααΆααααααα·ααα½αα±ααααααααααΆαααααααΆααααααααααΆααα’ααααααα αααααΆαααΆαααΆααααα ααΆαα½αααΉαααΆαααΎαα‘αΎαααα ααα½αα’αααααααΎααααΆαα αα·αααΆααα½ααααα αΌα αααααΌαααΆααααααΆααααΆαα’αΆα ααααΆα αα·αααααΎαααΆαααΎαα‘αΎαα
ααΆααααααΎαα αΆαα·αααααααΆααααΆααα SSO αααα½ααααααΎααααααΌαααΆααααααΆααααααΆαααααααααααααααααΆα αα·ααα·ααΈααΆααααααααααααΎαααααΆαααααΆαααΆαα»ααααααααααΌαααΆα α αΎαααΆααα ααα SLA ααααΉααααΉαα αααα»ααααααα ααΆααΉαααΆαααααα»αα’αα‘α»ααααααααΆαα’αα·αααααα α¬ααααΆααααΆαααααΌαααααΆαα’αα»αααααααααααααΆα ααααααααΆααΆααΆαα αααααΆαα ααΆααααααααααααα·αααΆαααα α»αααααΆαααααα½αα αα ααααααααΆαα’αα·ααααααααΈαα ααααΎα ααΆααααΌαααΆαααΆαααΆαα±ααααΆααα±ααΆααααααΆααααΆαα’αα·αααααα αα·αααΆαααααΎααΆαααααααΆαα ααΆααΆαααΆααααααααααα»ααααα»αααΆαααΆααααα ααααααααΆααααααααααΎαα·αααα·ααα»αααΊααα α¬αα·ααΈααΆαααααααΌαααΆααα
ααΎααααΈααααΎααΆααα αααα»ααααααααα»αααααα/ααααα αα·αααααα/α’αααα ααΆααααΌαααΆαααΆαααΆαααΎααααΈααΆααΆααΌαααΆααααΈαααααΆααααααΆαααα·αααααααα αααα»αααΌαααααΆααα·ααααααααααΆαααααα - ααααΆααααΌαααααΆααα·ααααααααΆααααΈαααααΌαααα ααααα‘αΎααα·ααααααααΆααααααααΆαααααααααααα·αααααααααα ααα αΆαααΆαααΌαα·ααΆαααααααααααααααΆα
α§ααΆα αααααΆαααααααα»αααααΆαααα‘αΎααααα’ααα±αα ααααααα α»αα
α’αααααααααααααααΆαααααΎα
ααααααααα½αα
- ααΆαα’αΆα ααααΆα αα·αααααΎαααΆααααααα
- ααΆαααΆαααααααααΆααααααααααα·ααααα·ααΆαα ααααα / ααααα, ααααα / α’ααααα
- αααααααΆααααα»αααΆαααααΎααΆαααααααΆαααΆααααα - αα αααααααΎαα·αααα·ααα»αααΊαααα
- ααααααΆαααααΆαααααααααα αα·αααΆααααα½ααα·αα·αααααααα·αα
- αα·ααΈααΆαααααααααα½αααααα½ααααααΆααααΆααααααα’ααααααααΆα/ααΆααααααααααΆαα/ααΆαα’αα»ααααΆαααααα’αααααααΎααααΆαααα αααα»αααααααα
- α’ααααααααααΆααααααΆααααααΆααΆααααΆαααααααααααααααααΆααααα·αααΆαααΆαα αΌααα½αααΈα’αααααααΎααααΆααα
- αααααααΆααααα»αααΆαααααΎαα·αα·ααααααααΆ JWT α‘αΎααα·ααα αααα»αααααααααααααα
- α ααα»α ααΏααΆαααααα½αα
- ααΆαβααΎαβααααΎαααΆαβααααααβααΏαβααΆαβαα»αβαααβααααΎβααΈααααΌβααααΆ/αα·αααα·αβαα»αααΊααα (αα·αβα αΆαααΆα αβααα‘αΎα αα·αβαααααβαα ααΆααααααααβαααΆαααΆαβαααααα)α
- ααΆα’αΆα αα αα½α αααα»αααΆααα·αααΆαααΆαααααααααααΆαα·αααααααααΈα’ααααααα
α’αααΈαααααααΌααα·α αΆαααΆαα ααααααα ααααααΆαα ααααα
DBMS
Keycloak ααααΎαααααααααααααααααααΌαααααΆααα·ααααααααΎααααΈαααααΆαα»αα α’αΆααΆα
ααα α’αα·αα·αα α’αααααααΎααααΆααααα
αα½αααααααΌααΆααα DBMS ααααΌαααΆαααΆααααα MS SQL, Oracle, MySQL, PostgreSQL α Keycloak ααααΆααααααΆαα½αααΌαααααΆααα·ααααααααααΆαααααααααααααΆααααααΆαα½αα ααΆααααΌαααΆαααααΆαα±ααααααΎαααααΆααααα·ααααΆαααααα·ααααα»α - ααΌα
ααΆααα·ααααΆαα’αα·ααααααα
ααΎααααΈααααΎαααΆααααα»ααααααααα»αααααα/ααααα αα·αααααα/α’αααα ααΆααααΈαααααΆααααααΆαααα·αααααααα αααα»αααΌαααααΆααα·ααααααααααΆααααααααΊααααΌαααΆαααΆαααΆα α αΎαααααΆααα αααααααΌαααααΆααα·ααααααααΆααααΈαααααΌαααΆαα ααααααΆαααααΆααααααααΆαααααααααααα·ααααααα
ααααΆαααααααΆααα ααα αΆα (Infinspan)
ααΎααααΈα±ααα αααααααααΎαααΆαααΆαααααΉαααααΌα ααΆαααααΎααααΆαααααααααααααααααααααααΆαααααααΆααααΆαααααααααααααΎαααα‘αΆα αααααααα·αααααα JBoss ααΊααααΌαααΆαααΆαααΆαα
αααααααααααααΆααααΆαααααΉαααααΌα - ααααΎααΎααααΈαααααΆαα»ααα·αααααααα ααααααααααααΆααα’αααααααΎααααΆααααΆααααΆααα ααααΎααΈααααΆαααααααΆαααααααΆααααααΆαα½ααααα αΌααααααααα·ααΈαα»ααα αα·ααααΆαααΈααα Keycloak ααα»ααααα αα·ααααααΆαααααα·ααΈαααααα
αααααΆαααααΆαααααααααΆαααααΌαααΆαααααΎαααααΆααααααΆααΈαααΌαααα’αααααααΎααααΆααααααΌαααΆααααααΆαααααααααΆαααααα·αααααΆααααα (ααΆααααα’ααΈααα)α α§ααΆα ααα αααα»αα’αα‘α»ααααααα αΌαααΆααααααααΆααααααα ααααΆαααααααΆαα actionTokens Infinispan ααααΌαααΆαααααΎααΎααααΈααΆαααΆααα·ααααααααααΆα’αααΈαα·αα·ααααααααΆαααααααΆααααααΆααααααααααααΆαααααΎαα½α α αΎα ααΌα ααααααΆαα·αα’αΆα ααααΎα‘αΎααα·αααΆαααα
ααααΆαααααααΆαα αα·αααΆαααααΎα±αααα·αααααΉαααααΌααααα·ααααααααΆααααΆαα - ααααΎααΎααααΈαααααΆαα»ααα·ααααααααΆααααΆαα ααΎααααΈαααααΆααααα½αααααα·αα αΆαααΆα ααα ααΆααααΌαααααΆααα·ααααααα αα αααααααααΆαααΈααα Keycloak ααΆαα½αααααΎαα αα α»ααααααααΆααα·αααααα ααααααΆαααΈααα Keycloak αααααααααα αααα»αααααααααααα·ααααααααΆααα’ααααααΌαααΉαα’αααΈααΆα
ααΆαααΆα - ααααΎαααααΆααααααααΎααΆααα·αααααΉαααααΌααααΆαααααΆααα ααααα αα·αααααααααααα·ααααααααα»αααααα
ααααα’αααααααΎααααΆαα - ααααΎααΎααααΈαααααΆαα»ααα·ααααααα’αααΈααααα’αααααααΎααααΆαααααααΆααα»ααααΆααααααΆαααααααααααααααααααα·ααΈαα»αααααααα’αααααααΎααααΆααα ααααΆαααααααΆααααααΌαααααααΎαααΆαααααΎ HTTP ααΈα’αααααααΎααααΆααα α»αααααα αα·ααααααα·ααΈα
ααΆαααΆαααΆααααααααα - ααααΎααΎααααΈααΆαααΆααα·ααααααα’αααΈααΆαα αΌαααααααΆαααα
αααα»ααα»αααααΆα
α§ααααααααα»ααα»αααααΆαααΊααΆα ααα»α α αΌααααα½ααα ααΆαα keycloak α αΎαααααΌαααααΆααααααααααα’α·αα
αααΆαααΈααααααααα·ααΈ
αα½αααΆααααΌαααΆαααααΎααΎααααΈαααααααααα’αααααααααααααΆαααΆαα»ααΆαα½αααααΆ α αΎαα’αΆα ααααΌαααΆααα·αααα·α α¬ααΆαααα»ααααααααΎα§αααααααααααααααααα·αααααααααΆαααααΆαα αα·αααΆαααααΎααΆαααααααΆαααΆαααααααα§αααααααααααααααααα·ααααα αααααΆαα ααΆααααααααα ααααΆααΈαααΌααααΆαααΆαααααααΆαααΌαα αααα»ααα αααα»α OpenShift, Kubernates, Rancher α
ααααααα
αααααααααΈαα½α - ααααΉααααΈα αα
αααα»ααααααΈαααααΆααααα’ααααα α§ααΆα αααααααΆααα½ααααα
αΌαααΆαα½αα’ααααααααα’ααααααααΆααααααα αα·αα§ααΆα αααααααΆααααααααΉαααααΌαααΆααα·ααΆαα
ααααα: www.habr.com