SSO in architectura microservice. Utimur Keycloak. Pars I

In quolibet magno comitatu, et X5 Retail Group nulla exceptione, sicuti evolvit, numerus inceptorum quae in usuario aucta sunt. Subinde, inconsutilis transitus utentium ab una applicatione ad aliam exigitur, et tunc opus est ut uno servo Single-Sing-On (SSO) utatur. Sed quid de identitate provisoribus ut AD vel aliis quae non habent attributa addita, iam in variis inceptis adhibentur. Classis systematum "identificationis sectorum" succurrit. Maxime functiones sunt eius repraesentativa, ut Keycloak, Gravitee Accessus procuratio, etc. Plerumque casus uti possunt: ​​apparatus commercium, usor participatio, etc. Solutio debet sustinere flexibilem et scalabilem functionem, quae omnia requisita in unum miscere possunt; et tales solutiones nunc societas nostra indicium sectoris habet - Keycloak.

SSO in architectura microservice. Utimur Keycloak. Pars I

Keycloak fons apertus est identitatis et accessus ditionis producti a RedHat conservatae. Fundamentum est productorum societatis utentium SSO - RH-SSO.

basic informatio

Priusquam de solutionibus et accessionibus agere incipias, definire debes in terminis et processuum ordine;

SSO in architectura microservice. Utimur Keycloak. Pars I

Lepidium sativum est ratio cognoscendi subiectum ab ipso identificante (id est, hoc est definitionem nominis, login vel numeri).

authenticas - Haec est processus authenticas (usoris cum tessera inhibetur, epistula subscriptio electronica inhibetur, etc.)

auctoritas - hoc est praescriptum aditum subsidii (exempli gratia ad electronicam).

Keycloak Identity sectorem

keycloak fons apertus identitatis et accessus administratio solutionis usui destinata in IS est, ubi exemplaria parvae artis architecturae adhiberi possunt.

Keycloak lineamenta praebet ut unicum signum-in (SSO), identitatem fractam et login socialem, foederationem usoris, adaptatores clientes, admin consolatorium et administrationem rationis consolandi.

Basic functionality fulta Keycloak:

  • Single-Sign On and Single-Sign Out for applications browser.
  • Support pro OpenID/OAuth 2.0/SAML.
  • Identity Brokering - authenticas utens OpenID externa Iungo vel SAML identitatis provisoribus.
  • Social Login - Google, GitHub, Facebook, Twitter auxilium pro identitate usoris.
  • Foederatio User - synchronisatio utentium ab LDAP et Active Directory servientibus ac aliis identitatis provisoribus.
  • Pons Kerberos - utens servo Kerberos pro automaticis authenticis usoris.
  • Admin Console - pro una administratione occasus et solutiones optionum per Telam.
  • Ratio Management Console - pro auto-procuratione profile usoris.
  • Aliquam solutionis secundum identitatem corporatum societatis.
  • 2FA Authenticatio - TOTP/HOTP subsidium utens Google Authenticator vel FreeOTP.
  • Login Fluxus - usoris auto-adnotatio, tesserae recuperatio et reset, et alii possibilia sunt.
  • Sessio Management - administratores sessiones usorum ex uno puncto administrare possunt.
  • Thochen Mappers - usoris ligandi attributa, munera et alia attributa signa quaesita.
  • Flexibile consilium administratio per regnum, applicationem et utentes.
  • CORS Support - Adaptores Client - in CORS auxilio aedificaverunt.
  • Munus Providentis interfaces (SPI) - Magnus numerus SPIS quae te patitur ut varias consuetudines formas servientis: fluit authenticas, provisores identitatis, protocollo destinata, et plura.
  • Clientis adaptors ad applicationes JavaScript, WildFly, JBoss EAP, Fuse, Tomcat, Jetty, Ver.
  • Support ad operandum variis applicationibus qui sustinent OpenID Connect Relying Library Party or SAML 2.0 Service Provider Library.
  • Expandable usura plugins.

Processus enim CI/CD, ac processus administrandi automatio in Keycloak, CAETERA API/JAVA API adhiberi possunt. Documenta praesto est electronice:

API CETEROQUIN 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

Enterprise Identity Providers (On-Premise)

Facultatem authenticitatis users per User Foederationis officia.

SSO in architectura microservice. Utimur Keycloak. Pars I

Transire-per authenticas etiam adhiberi possunt - si users authenticas contra workstations apud Kerberos (LDAP vel AD), tunc sponte authentica fieri possunt ad Keycloak quin cum usoris et tesserae suae iterum ineantur.

Ad authenticas et ulteriores utentium licentias uti potest relativa DBMS, quae maxime ad culturas evolutionis accommodata est, cum non longas condiciones et integrationes in primis inceptis implicat. Defalta, Keycloak constructo in DBMS utitur ut occasus et usor notitias reponat.

Elenchus sustentatorum DBMS amplus est et includit: MS SQL, Oraculum, PostgreSQL, MariaDB, Oraculum et alii. Maxime probata tantum sunt Oraculum 12C Release1 RAC et Galera 3.12 botrum pro MariaDB 10.1.19.

Identity provider - social login

Fieri potest ut login e reticulis socialibus. Facultatem strenui utentes authenticitatis signo munire, Keycloack admin consolandi utere. Mutationes in codice schedula non requiruntur, et haec functionis e archa praesto est et quovis rei stadio moveri potest.

SSO in architectura microservice. Utimur Keycloak. Pars I

Provisoribus OpenID/SAML Identity uti potest pro authenticas usoris.

Typical auctoritate missiones per OAuth2 in Keycloak

LICENTIA Code O - usus est cum applicationes servo-parte. Una ex communissima genera licentiae concessionis, quia aptissima est ad applicationes servo, ubi fons applicationis codicem et notitia clientis extraneis praesto non sunt. Processus hic casus in redirectione nititur. Applicatio communicare poterit cum agente user-agente (user-agente), sicut navigatrum interretialem - ut recipiatur API codicibus auctoritatis redirectae per procuratorem usoris.

implicita fluxus - adhibentur per applicationes mobiles vel interretiales (applicationes currentes in machinam usoris).

Auctoritatis licentiae implicitae genus adhibet adhibitis mobilibus et interretialibus applicationibus, quibus client secreto in tuto collocari non potest. Genus permissionis implicitae etiam redirectionis agentis utentis utitur, per quam accessus tesseram usoris pro ulteriori applicatione usui transmittitur. Inde signum praesto est utentis et aliis applicationibus in usoris fabrica. Hoc genus licentiae concessionis identitatem applicationis non authentice reddit, et ipse processus nititur URL redirectio (antea cum servitio descriptus).

Fluxus implicitus non adiuvat accessum indicium retrahens signa.

Client Credentials Dona O - adhibentur cum applicatione accessuum API. Hoc genus licentiae concessionis typice adhibetur pro servo-ad-servatori interationes, quae in curriculo sine immediato usuario commercio peragi debent. Cliens credentialis concessionis fluxum permittit servitium interretialem (clientem secretiorem) suis documentis uti, non personans utentis authenticitatis signo alterius servitii vocati. In altiori gradu securitatis fieri potest ut munus vocationis utendi testimonium (pro secreto communi) ut documentum.

Specificatio OAuth2 describitur in
RFC-MCMXVIII
RFC-MCMXVIII
RFC-MCMXVIII

JWT indicium et beneficia

JWT (JSON Web Thochen) vexillum apertum est (https://tools.ietf.org/html/rfc7519), qui pactionem et se contentam definit ut informationes inter partes tuto transferat in forma obiecti JSON.

Secundum vexillum, tessera constat tribus partibus in forma basi 64, punctis separatis. Prima pars dicitur caput, quod continet rationem indicii et nomen algorithmi Nullam ad signaturam digitalem obtinendam. Secunda pars notitias fundamentales recondit (usor, attributa etc.). Tertia pars est subscriptio digitalis.

. .
Numquam signum in DB repone. Quia signum validum tesserae aequiparatur, signum accommodare est sicut tesseram in textu perspicuo accommodare.
Aditus tesseram indicium est quod possessori suo aditum ad facultates servo secure tribuit. Solet brevem vitam habere et informationis informationes portare sicut IP oratio factionis indicium petentis.

Renovare indicium indicium est quod clientibus concedit ut nova signa accessum petant postquam vita eorum expiravit. Haec signa per longum tempus fere edita sunt.

Praecipua utilitates architecturae in microservice utendi:

  • Facultas accessendi varias applicationes et officia per unum tempus authenticas.
  • Absentibus pluribus attributis requisitis in profile usoris, ea ditare potest cum notitia quae ad payload addi possunt, ipso facto et in musca.
  • Non opus est informationes circa sessiones activas condere, cultor applicationis tantum subscriptionem comprobare debet.
  • Aditus moderatio flexibilior per additamenta in payload.
  • Usus notae subscriptionis pro capite et payload securitatem solutionis in toto auget.

JWT tessera - compositionis

header - Defalta, caput solum rationem indicii et algorithmus pro encryptione adhibendo continet.

Genus tesserae in clavis "typis" reponitur. Clavis typus in JWT neglecta est. Si clavis "typum" praesens est, eius valor debet esse JWT ut hoc obiectum indicet signum esse JSON Web.

Secunda clavis "alg" significat algorithmum quod signum encrypt. Proponendus est HS256 per defaltam. Header in base64.

{ "alg": "HS256", "type": "JWT"}
payload (content) - the payload stores any information that needs to check. Quaelibet clavis in payload notum est "clamitare". Exempli gratia, applicationem tantum invitare potes (promo clausi). Cum aliquem invitare ad participandum velimus, litteras invitatorias eis mittimus. Magni interest ut inspicias quod inscriptio electronica ad hominem invitantem pertinet, sic hanc electronicam in payload includemus, hanc enim in clavis "electronicae" condimus.

{ "inscriptio": "[Inscriptio protected]"}

Claves in payload arbitraria esse possunt. Sed pauca sunt reservata;

  • iss (Issuer) - applicationem ex qua signum mittitur.
  • sub (Subject) β€” de ratione argumenti definit.
  • aud (Audience) est ordo chordarum sensitivarum vel URIs quae est index recipientium huius tesserae. Cum latus acceptum JWT cum data clave accipit, reprimendum est coram se ipso in recipientibus - aliter arrha ignorare.
  • exp (Tempus Expiration) - indicat signo expirat. Vexillum JWT omnes suas exsecutiones requirit ut signa exspirata reiciant. Clavis exp in indicatione debet esse in forma unix.
  • nbf (Non Prius) est tempus in forma unix quod determinat momentum cum signum validum fit.
  • iat (edita At) - Haec clavis repraesentat tempus tesseram prolatam et adhiberi potest ad aetatem JWT definiendam. Clavis iat notam esse debet in forma unix.
  • Jti (JWT ID) β€” chorda quae definit identificativum unicum huius tesserae, sensitivae casei.

Interest intelligere quod payload non traducitur in forma encrypted (quamvis signa nidificari possunt et tunc potest notitias encryptas transmittere). Ergo non potest aliqua notitia secreta recondere. Sicut caput, payload base64 encoded.
signature - Cum titulum et payload habemus, subscriptionem computare possumus.

Basi64-encoded: caput et payload sumuntur, componuntur in filo per punctum. Inde chorda haec et clavis secreta inputanda sunt ad encryptionem algorithm quae in capite ("alg" clavem habet). Clavis chorda aliqua esse potest. Longior chorda praeferenda erit, sicut diutius capere capiet.

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

Building a Keycloak Failover Botrus Architecture

Cum uno botro pro omnibus inceptis utendo, requisita solutionis SSO augentur. Cum numerus inceptorum parvus sit, haec requisita non sunt tam notabilis omnibus inceptis, sed, aucto numero utentium et integrationum, requisita ad promptitudinis et perficiendi augmentum.

Augens pericula defectio unius SSO requisita auget ad solutionem architecturae et methodi adhibitae ad redundantiam partium et ad strictissimam SLA ducit. Hac in re, saepius in evolutione vel primis statibus solvendi solutiones, incepta sua habent infrastructuram non-culpam tolerantem. Progressus progressus, opportunitates evolutionis et scalae aedificare necesse est. Via flexibili ad botrum defectivum construendum utitur vas virtualizatione vel accessu hybrida.

Operari in modos activos et activos/passivos botri passivi, requiritur ut notitiae constantiae in datorum relativo - nodi database synchrone repplicari debeant inter varia centra data geo-distributa.

Simplicissimum exemplum institutionis culpae tolerantis.

SSO in architectura microservice. Utimur Keycloak. Pars I

Quae sunt utilitates utendi uno botro;

  • Praesens et effectus.
  • Suscipe ad modos operandi: Active / activum, activum / passivum.
  • Facultatem dynamice scandendi - cum utens continens virtualizationis.
  • Facultas centralised administrationis ac vigilantia.
  • Unificatus accessus ad identificatio/autificationem/auctoritatem usorum in inceptis.
  • Perspicuus est commercium inter varias inceptas sine intermissione usoris.
  • Facultas ad indicium JWT reuse in variis inceptis.
  • Unius fidei.
  • Velocius inceptis inceptis utens microservices/continenti virtualisation (nihil opus est ut additamenta tollant et configurent).
  • Potest auxilium mercatorum a venditore mercari.

Quid expecto cum moliretur botrus

DBMS

Keycloak utitur systemate database ad thesauros: regna, clientes, utentes, etc.
Amplis DBMS sustentatur: MS SQL, Oraculum, MySQL, PostgreSQL. Keycloak venit cum suo aedificato in relationibus datorum. Commendatur utendum in ambitibus non oneratis - ut elit eget.

Ad operandum in modis activo/activo et activo/passivo botri, data constantia in database relativo requiritur, et nodi botri datorum synchrone inter data centra replicantur.

Distribuit cache (Infinspan)

Botrus ad bene operandum, addita synchronisationi sequentium generum cellarum utens in JBoss Data Grid requiritur:

Sessiones authenticas - servandi notitias solebant cum certo usuario authenticando. Petitiones ex hoc cache typice tantum includunt navigatrum et servo Keycloak, non applicatione.

Actio signa adhibentur pro missionibus ubi usor indiget ad confirmandam actionem asynchronously (per email). Exempli causa, cum tesserae oblitus fluxus, actionTokens Infinispan cella ad vestigium metadatae de conservatione actionis adiunctorum signis iam adhibitis, reddi non potest.

Caching et invalidatio notitiarum persistentium - usus cache notitias pertinacis ad vitandas interrogationes necessarias datorum datorum. Cum aliquis servo Keycloak notitias suas updates, omnes alii servientes Keycloak in omnibus centris notitiarum necesse est scire de ea.

Labor - Tantum mittere solebat nuntios invalidos inter nodi nodos et centra data.

Sessiones usoris - utebantur ad reponendas notitias de usoribus sessionibus quae validae sunt pro tempore sessionis navigatoris usoris. Latibulum HTTP petitiones ex fine usuario et applicatione procedere debet.

Vim violentam praesidii - ad inuestigandum data de logins defecit.

Libra pondera

Onus librator unicus est punctus ad keyclok et viscus ad sessiones sustinendas debet.

Applicationem Server

Solent temperare commercium partium inter se et virtualizari vel continere possunt utentes instrumentorum automationum exsistentium et dynamica scalarum instrumentorum infrastructurae automationis. Maxime communes missiones instruere in OpenShift, Kubernates, Rancher.

Hic concludit primam partem, scilicet theoricam. In sequenti articulorum serie, exempla integrationum cum variis identitatis provisoribus et exemplis uncinis enucleentur.

Source: www.habr.com