Ann an companaidh mòr sam bith, agus tha X5 Retail Group mar eisgeachd, mar a bhios e a ’leasachadh, tha an àireamh de phròiseactan a dh’ fheumas cead luchd-cleachdaidh ag àrdachadh. Thar ùine, tha feum air gluasad gun fhiosta de luchd-cleachdaidh bho aon iarrtas gu tagradh eile, agus an uairsin feumar aon fhrithealaiche Single-Sing-On (SSO) a chleachdadh. Ach dè mu dheidhinn cuin a bhios solaraichean dearbh-aithne leithid AD no feadhainn eile aig nach eil buadhan a bharrachd gan cleachdadh mar-thà ann an grunn phròiseactan. Thig clas de shiostaman ris an canar “brocairean aithneachaidh” gu teasairginn. Is e an fheadhainn as gnìomhaiche na riochdairean aige, leithid Keycloak, riaghladh Gravitee Access, msaa. Mar as trice, faodaidh cùisean cleachdaidh a bhith eadar-dhealaichte: eadar-obrachadh inneal, com-pàirteachadh luchd-cleachdaidh, msaa. agus fuasglaidhean mar sin tha broker comharra aig a’ chompanaidh againn a-nis - Keycloak.
Tha Keycloak na dhearbh-aithne stòr fosgailte agus toradh smachd ruigsinneachd air a chumail suas le RedHat. Tha e na bhunait airson bathar a 'chompanaidh a' cleachdadh SSO - RH-SSO.
Bun-bheachdan bunaiteach
Mus tòisich thu a 'dèiligeadh ri fuasglaidhean agus dòighean-obrach, bu chòir dhut co-dhùnadh a thaobh agus sreath de phròiseasan:
Aithneachadh Is e dòigh-obrach airson cuspair aithneachadh leis an aithnichear aige (ann am faclan eile, is e seo am mìneachadh air ainm, logadh a-steach no àireamh).
Dearbhadh - is e modh dearbhaidh a tha seo (tha an neach-cleachdaidh air a sgrùdadh le facal-faire, tha an litir air a sgrùdadh le ainm-sgrìobhte dealanach, msaa.)
Ùghdarrachadh - tha seo a 'toirt cothrom air goireas (mar eisimpleir, air post-dealain).
Keycloak Broker dearbh-aithne
iuchrach na fhuasgladh dearbh-aithne stòr fosgailte agus stiùireadh ruigsinneachd a chaidh a dhealbhadh airson a chleachdadh ann an IS far an urrainnear pàtrain ailtireachd microservice a chleachdadh.
Tha Keycloak a’ tabhann feartan leithid soidhnigeadh singilte (SSO), dearbh-aithne bròcaichte agus logadh a-steach sòisealta, caidreachas luchd-cleachdaidh, innealan-atharrachaidh teachdaiche, consol rianachd agus consol riaghladh cunntais.
Gnìomh bunaiteach le taic bho Keycloak:
- Soidhnig Singilte air agus Clàraich a-mach Singilte airson tagraidhean brobhsair.
- Taic airson OpenID / OAuth 2.0 / SAML.
- Brocaireachd dearbh-aithne - dearbhadh a’ cleachdadh solaraichean dearbh-aithne OpenID Connect no SAML taobh a-muigh.
- Log a-steach sòisealta - taic Google, GitHub, Facebook, Twitter airson comharrachadh luchd-cleachdaidh.
- Caidreachas Cleachdaiche - sioncronadh luchd-cleachdaidh bho LDAP agus frithealaichean Active Directory agus solaraichean dearbh-aithne eile.
- Drochaid Kerberos - a’ cleachdadh frithealaiche Kerberos airson dearbhadh cleachdaiche fèin-ghluasadach.
- Console Rianachd - airson riaghladh aonaichte de shuidheachaidhean agus roghainnean fuasglaidh tron Lìon.
- Console Stiùireadh Cunntais - airson fèin-riaghladh ìomhaigh neach-cleachdaidh.
- Gnàthachadh an fhuasglaidh stèidhichte air dearbh-aithne corporra na companaidh.
- Dearbhadh 2FA - Taic TOTP / HOTP a’ cleachdadh Google Authenticator no FreeOTP.
- Log a-steach sruthadh - tha fèin-chlàradh luchd-cleachdaidh, faighinn air ais facal-faire agus ath-shuidheachadh, agus feadhainn eile comasach.
- Riaghladh Seisean - faodaidh luchd-rianachd seiseanan luchd-cleachdaidh a riaghladh bho aon phuing.
- Token Mappers - buadhan cleachdaiche ceangail, dreuchdan agus buadhan riatanach eile ri comharran.
- Riaghladh poileasaidh sùbailte thar raon, tagradh agus luchd-cleachdaidh.
- Taic CORS - Tha taic CORS stèidhichte aig luchd-atharrachaidh teachdaiche.
- Eadar-aghaidh Solaraiche Seirbheis (SPI) - Àireamh mhòr de SPIan a leigeas leat diofar thaobhan den fhrithealaiche a ghnàthachadh: sruthan dearbhaidh, solaraichean dearbh-aithne, mapadh protocol, agus barrachd.
- Luchd-atharrachaidh teachdaiche airson tagraidhean JavaScript, WildFly, JBoss EAP, Fuse, Tomcat, Jetty, Spring.
- Taic airson a bhith ag obair le diofar thagraidhean a bheir taic do leabharlann OpenID Connect Relying Party no Leabharlann Solaraiche Seirbheis SAML 2.0.
- Faodar a leudachadh le bhith a’ cleachdadh plugins.
Airson pròiseasan CI / CD, a bharrachd air fèin-ghluasad de phròiseasan riaghlaidh ann an Keycloak, faodar an REST API / JAVA API a chleachdadh. Tha sgrìobhainnean rim faighinn gu dealanach:
CÒRR API
API Java
Solaraichean dearbh-aithne iomairt (air an togalach)
Comas luchd-cleachdaidh a dhearbhadh tro sheirbheisean Caidreachas Luchd-cleachdaidh.
Faodar dearbhadh pas-troimhe a chleachdadh cuideachd - ma dhearbhas luchd-cleachdaidh an aghaidh ionadan-obrach le Kerberos (LDAP no AD), faodaidh iad a bhith air an dearbhadh gu fèin-ghluasadach gu Keycloak gun a bhith a’ dol a-steach don ainm-cleachdaidh agus am facal-faire aca a-rithist.
Airson dearbhadh agus cead a bharrachd do luchd-cleachdaidh, tha e comasach DBMS dàimheach a chleachdadh, a tha nas freagarraiche airson àrainneachdan leasachaidh, leis nach eil e a’ toirt a-steach suidheachaidhean fada agus aonachadh aig ìrean tràtha phròiseactan. Gu gnàthach, bidh Keycloak a’ cleachdadh DBMS togte gus roghainnean agus dàta luchd-cleachdaidh a stòradh.
Tha an liosta de DBMS le taic farsaing agus a’ toirt a-steach: MS SQL, Oracle, PostgreSQL, MariaDB, Oracle agus feadhainn eile. Is e an fheadhainn as deuchainniche gu ruige seo Oracle 12C Release1 RAC agus brabhsair Galera 3.12 airson MariaDB 10.1.19.
Solaraichean dearbh-aithne - logadh a-steach sòisealta
Tha e comasach logadh a-steach a chleachdadh bho lìonraidhean sòisealta. Gus an comas luchd-cleachdaidh a dhearbhadh, cleachd consòil rianachd Keycloack. Chan eil feum air atharrachaidhean ann an còd an tagraidh agus tha an gnìomh seo ri fhaighinn a-mach às a’ bhogsa agus faodar a chuir an gnìomh aig ìre sam bith den phròiseact.
Tha e comasach solaraichean dearbh-aithne OpenID/SAML a chleachdadh airson dearbhadh luchd-cleachdaidh.
Suidheachaidhean ùghdarrais àbhaisteach a’ cleachdadh OAuth2 ann an Keycloak
Sruth Còd Ùghdarrachaidh - air a chleachdadh le tagraidhean taobh an fhrithealaiche. Is e aon de na seòrsaichean cead ceadachaidh as cumanta leis gu bheil e gu math freagarrach airson tagraidhean frithealaiche far nach eil còd stòr an tagraidh agus dàta teachdaiche ri fhaighinn do dhaoine bhon taobh a-muigh. Tha am pròiseas sa chùis seo stèidhichte air ath-stiùireadh. Feumaidh an aplacaid a bhith comasach air eadar-obrachadh le àidseant cleachdaiche (neach-cleachdaidh), leithid brobhsair lìn - gus còdan cead API fhaighinn air an ath-stiùireadh tron àidseant cleachdaiche.
sruthadh so-thuigsinn - air a chleachdadh le tagraidhean gluasadach no lìn (aplacaidean a’ ruith air inneal an neach-cleachdaidh).
Tha an seòrsa cead ceadachaidh air a chleachdadh le tagraidhean gluasadach agus lìn far nach urrainnear dìomhaireachd teachdaiche a ghealltainn. Bidh an seòrsa cead so-thuigsinn cuideachd a’ cleachdadh ath-stiùireadh àidseant cleachdaiche, far am bi an comharra ruigsinneachd air a chuir chun neach-cleachdaidh airson tuilleadh cleachdaidh san tagradh. Bidh seo a’ fàgail an tòcan ri fhaighinn don neach-cleachdaidh agus tagraidhean eile air inneal an neach-cleachdaidh. Chan eil an seòrsa cead ceadachaidh seo a’ dearbhadh dearbh-aithne an tagraidh, agus tha am pròiseas fhèin an urra ri URL ath-sheòlaidh (a chaidh a chlàradh leis an t-seirbheis roimhe seo).
Chan eil Implicit Flow a’ toirt taic do chomharran ùrachadh tòcan ruigsinneachd.
Sruth Tabhartas Teisteanas Client - air an cleachdadh nuair a gheibh an aplacaid cothrom air an API. Tha an seòrsa cead ùghdarrais seo mar as trice air a chleachdadh airson eadar-obrachaidhean frithealaiche-gu-fhrithealaiche a dh’ fheumar a dhèanamh air a’ chùl gun eadar-obrachadh cleachdaiche sa bhad. Tha sruth tabhartais teisteanais teachdaiche a’ leigeil le seirbheis lìn (neach-dèiligidh dìomhair) na teisteanasan aca fhèin a chleachdadh an àite a bhith a’ dèanamh atharrais air neach-cleachdaidh gus dearbhadh nuair a chuireas iad fios gu seirbheis lìn eile. Airson ìre tèarainteachd nas àirde, tha e comasach don t-seirbheis gairm teisteanas a chleachdadh (an àite dìomhaireachd co-roinnte) mar theisteanas.
Tha an sònrachadh OAuth2 air a mhìneachadh ann an
JWT comharra agus na buannachdan aige
Tha JWT (JSON Web Token) na inbhe fosgailte (
A rèir na h-ìre, tha trì pàirtean anns an tòcan ann an cruth base-64, air an sgaradh le dotagan. Canar bann-cinn ris a’ chiad phàirt, anns a bheil an seòrsa tòcan agus ainm an algairim hash airson ainm-sgrìobhte didseatach fhaighinn. Bidh an dàrna pàirt a’ stòradh an fhiosrachaidh bunaiteach (neach-cleachdaidh, buadhan, msaa). Is e an treas pàirt an ainm-sgrìobhte didseatach.
. .
Na stòraich comharra gu bràth anns an DB agad. Leis gu bheil tòcan dligheach co-ionann ri facal-faire, tha stòradh an tòcan coltach ri bhith a’ stòradh am facal-faire ann an teacsa soilleir.
Comharra ruigsinneachd na chomharra a bheir cothrom don t-sealbhadair aige goireasan frithealaiche tèarainte. Mar as trice bidh beatha ghoirid aige agus faodaidh fiosrachadh a bharrachd a bhith aige leithid seòladh IP a’ phàrtaidh a dh’ iarras an tòcan.
Ùraich tòcan na chomharra a leigeas le teachdaichean comharran ruigsinneachd ùra iarraidh às deidh am beatha a thighinn gu crìch. Mar as trice bidh na comharran sin air an toirt seachad airson ùine mhòr.
Tha na prìomh bhuannachdan a bhith a 'cleachdadh ann an ailtireachd microservice:
- Comas faighinn gu diofar thagraidhean agus sheirbheisean tro dhearbhadh aon-ùine.
- Mura h-eil grunn fheartan riatanach ann am pròifil an neach-cleachdaidh, tha e comasach beairteas a dhèanamh le dàta a dh’ fhaodar a chuir ris an uallach pàighidh, a ’toirt a-steach fèin-ghluasadach agus air-itealaich.
- Chan eil feum air fiosrachadh a stòradh mu sheiseanan gnìomhach, chan fheum an aplacaid frithealaiche ach an t-ainm-sgrìobhte a dhearbhadh.
- Smachd ruigsinneachd nas sùbailte tro bhuadhan a bharrachd san uallach pàighidh.
- Bidh cleachdadh ainm-sgrìobhte tòcan airson a’ chinn-cinn agus an t-uallach pàighidh ag àrdachadh tèarainteachd an fhuasglaidh gu h-iomlan.
JWT tòcan - sgrìobhadh
Ceannard - gu gnàthach, chan eil anns a’ cheann-cinn ach an seòrsa tòcan agus an algairim a thathas a’ cleachdadh airson crioptachadh.
Tha an seòrsa tòcan air a stòradh san iuchair “typ”. Thathas a’ seachnadh an iuchair ‘seòrsa’ anns an JWT. Ma tha an iuchair “typ” an làthair, feumaidh a luach a bhith JWT gus innse gur e JSON Web Token a th’ anns an nì seo.
Tha an dàrna iuchair “alg” a’ mìneachadh an algairim a thathar a’ cleachdadh gus an tòcan a chrioptachadh. Bu chòir a shuidheachadh gu HS256 a ghnàth. Tha an bann-cinn air a chòdachadh ann am base64.
{ "alg": "HS256", "seòrsa": "JWT"}
uallach pàighidh (susbaint) - bidh an t-uallach pàighidh a’ stòradh fiosrachadh sam bith a dh’ fheumar a sgrùdadh. Canar “tagradh” ri gach iuchair san uallach pàighidh. Mar eisimpleir, chan urrainn dhut an tagradh a chuir a-steach ach le cuireadh (promo dùinte). Nuair a tha sinn airson cuireadh a thoirt do chuideigin pàirt a ghabhail, bidh sinn a’ cur litir cuireadh thuca. Tha e cudromach dèanamh cinnteach gur ann leis an neach a ghabhas ris a’ chuireadh a tha an seòladh puist-d, agus mar sin cuiridh sinn a-steach an seòladh seo san eallach pàighidh, airson seo bidh sinn ga stòradh san iuchair “post-d”
{ "post-d": "[post-d fo dhìon]"}
Faodaidh iuchraichean san uallach pàighidh a bhith neo-riaghailteach. Ach, tha beagan glèidhte ann:
- iss (Issuer) - A’ comharrachadh an tagraidh às a bheilear a’ cur an tòcan.
- sub (cuspair) - a 'mìneachadh cuspair an tòcan.
- Tha aud (Luchd-amais) na raon de shreathan a tha mothachail air cùis no URIs a tha na liosta den fheadhainn a gheibh an comharra seo. Nuair a gheibh an taobh faighinn JWT leis an iuchair a chaidh a thoirt seachad, feumaidh e dèanamh cinnteach gu bheil e fhèin anns an luchd-faighinn - air neo leig seachad an comharra.
- exp (Ùine Crìochnachaidh) - A’ comharrachadh cuin a thig an tòcan gu crìch. Tha inbhe JWT ag iarraidh gum bi a h-uile gnìomh aige a ’diùltadh comharran a dh’ fhalbh. Feumaidh an iuchair exp a bhith na stampa-ama ann an cruth unix.
- Tha nbf (Not Before) na àm ann an cruth unix a bhios a’ dearbhadh a’ mhionaid nuair a thig an comharradh dligheach.
- iat (Air a chuir a-mach aig) - Tha an iuchair seo a’ riochdachadh na h-ùine a chaidh an comharra a chuir a-mach agus faodar a chleachdadh gus aois an JWT a dhearbhadh. Feumaidh an iuchair iat a bhith na stampa-ama ann an cruth unix.
- Jti (JWT ID) - sreang a tha a’ mìneachadh aithnichear sònraichte a’ chomharra seo, a tha mothachail air cùis.
Tha e cudromach tuigsinn nach eil an t-uallach pàighidh air a ghluasad ann an cruth crioptaichte (ged a dh’ fhaodar comharran a neadachadh agus an uairsin bidh e comasach dàta crioptaichte a thar-chuir). Mar sin, chan urrainn dha fiosrachadh dìomhair sam bith a stòradh. Coltach ris a’ cheann-cinn, tha an t-uallach pàighidh base64 air a chòdachadh.
Ainm sgrìobhte - nuair a tha tiotal agus uallach pàighidh againn, is urrainn dhuinn an ainm-sgrìobhte obrachadh a-mach.
Base64-còdachadh: tha bann-cinn agus luchd-pàighidh air an toirt, tha iad air an cur còmhla ann an sreang tro dot. An uairsin tha an sreang seo agus an iuchair dhìomhair air a chuir a-steach don algairim crioptachaidh a tha air a shònrachadh anns a’ cheann-cinn (iuchair “alg”). Faodaidh an iuchair a bhith na shreath sam bith. Is fheàrr sreangan nas fhaide oir bheir e nas fhaide an togail.
{"alg":"RSA1_5", "payload":"A128CBC-HS256"}
A 'togail Ailtireachd Cluster Failover Cluster
Nuair a bhios tu a’ cleachdadh aon bhuidheann airson a h-uile pròiseact, tha barrachd riatanasan ann airson fuasgladh SSO. Nuair a tha an àireamh de phròiseactan beag, chan eil na riatanasan sin cho follaiseach airson a h-uile pròiseact, ge-tà, le àrdachadh anns an àireamh de luchd-cleachdaidh agus aonachadh, na riatanasan airson ruigsinneachd agus àrdachadh coileanaidh.
Tha àrdachadh ann an cunnart fàilligeadh SSO singilte a’ meudachadh na riatanasan airson ailtireachd fuasglaidh agus na dòighean a thathas a’ cleachdadh airson co-phàirtean gun fheum agus a’ leantainn gu SLA gu math teann. A thaobh seo, nas trice aig ìre leasachaidh no tràth de bhith a’ buileachadh fhuasglaidhean, tha bun-structar neo-fhulangach aca fhèin aig pròiseactan. Mar a thèid leasachadh air adhart, feumar cothroman leasachaidh agus sgèileadh a shuidheachadh. Tha e nas sùbailte cruinneachadh fàilligeadh a thogail a’ cleachdadh virtualization container no dòigh-obrach tar-chinealach.
Gus obrachadh anns na modhan cnuasachaidh Gnìomhach/Gnìomhach agus Gnìomhach/Fulangach, feumar dèanamh cinnteach à cunbhalachd dàta ann an stòr-dàta co-cheangailte - feumaidh an dà nod stòr-dàta a bhith air an ath-aithris gu sioncronach eadar diofar ionadan dàta geo-sgaoileadh.
An eisimpleir as sìmplidh de stàladh a tha fulangach le lochdan.
Dè na buannachdan a th ’ann a bhith a’ cleachdadh aon bhuidheann:
- Cothrom àrd agus coileanadh.
- Taic airson modhan obrachaidh: Gnìomhach / Gnìomhach, Gnìomhach / Fulangach.
- Comas sgèile gu fiùghantach - nuair a bhios tu a’ cleachdadh virtualization container.
- Comasach air riaghladh agus sgrùdadh meadhanaichte.
- Dòigh aonaichte airson comharrachadh / dearbhadh / ùghdarrasachadh luchd-cleachdaidh ann am pròiseactan.
- Eadar-obrachadh nas soilleire eadar diofar phròiseactan gun a bhith an sàs le luchd-cleachdaidh.
- Comas air comharra JWT ath-chleachdadh ann an grunn phròiseactan.
- Aon phuing earbsa.
- Cur air bhog phròiseactan nas luaithe a’ cleachdadh microservices / virtualization container (chan eil feum air co-phàirtean a bharrachd a thogail agus a rèiteachadh).
- Tha e comasach taic malairteach a cheannach bhon neach-reic.
Dè a lorgas tu nuair a bhios tu a 'dealbhadh buidheann
DBMS
Bidh Keycloak a’ cleachdadh siostam riaghlaidh stòr-dàta airson stòradh: rìoghachdan, teachdaichean, luchd-cleachdaidh, msaa.
Tha raon farsaing de DBMS a’ faighinn taic: MS SQL, Oracle, MySQL, PostgreSQL. Bidh Keycloak a’ tighinn leis an stòr-dàta dàimheach aige fhèin. Thathas a 'moladh a chleachdadh airson àrainneachdan nach eil luchdaichte - leithid àrainneachdan leasachaidh.
Gus obrachadh ann am modhan cnuasachaidh Gnìomhach / Gnìomhach agus Gnìomhach / Fulangach, tha feum air cunbhalachd dàta ann an stòr-dàta dàimh, agus tha an dà nod cruinneachadh stòr-dàta air an ath-aithris gu sioncronach eadar ionadan dàta.
Tasgadh air a chuairteachadh (Infinspan)
Gus an obraich a’ bhuidheann gu ceart, tha feum air sioncronadh a bharrachd de na seòrsaichean caches a leanas a’ cleachdadh Grid Dàta JBoss:
Seiseanan dearbhaidh - air an cleachdadh gus dàta a shàbhaladh nuair a thathar a’ dearbhadh cleachdaiche sònraichte. Mar as trice chan eil iarrtasan bhon tasgadan seo a’ toirt a-steach ach am brabhsair agus am frithealaiche Keycloak, chan e an aplacaid.
Bithear a’ cleachdadh comharran gnìomh airson suidheachaidhean far am feum an neach-cleachdaidh gnìomh a dhearbhadh gun choimeas (tro phost-d). Mar eisimpleir, nuair a dhìochuimhnicheas tu facal-faire, thèid an tasgadan actionTokens Infinispan a chleachdadh gus sùil a chumail air meata-dàta mu chomharran gnìomh co-cheangailte a chaidh a chleachdadh mu thràth, gus nach gabh a chleachdadh a-rithist.
Tasgadh agus neo-dhligheachadh dàta leantainneach - air a chleachdadh gus dàta leantainneach a thasgadh gus ceistean neo-riatanach don stòr-dàta a sheachnadh. Nuair a bhios frithealaiche Keycloak sam bith ag ùrachadh an dàta, feumaidh fios a bhith aig a h-uile seirbheisiche Keycloak eile anns a h-uile ionad dàta mu dheidhinn.
Obair - Air a chleachdadh a-mhàin airson teachdaireachdan mì-dhligheach a chuir eadar nodan brabhsair agus ionadan dàta.
Seiseanan cleachdaiche - air an cleachdadh gus dàta a stòradh mu sheiseanan luchd-cleachdaidh a tha dligheach fad seisean brabhsair an neach-cleachdaidh. Feumaidh an tasgadan iarrtasan HTTP a phròiseasadh bhon neach-cleachdaidh deireannach agus bhon tagradh.
Dìon feachd brùideil - air a chleachdadh gus lorg a chumail air dàta mu logaichean a dh’ fhàillig.
Cothromachadh luchdan
Is e an cothromachadh luchdan an aon àite inntrigidh gu cloak iuchrach agus feumaidh e taic a thoirt do sheiseanan steigeach.
Frithealaichean aplacaid
Tha iad air an cleachdadh gus smachd a chumail air eadar-obrachadh phàirtean le chèile agus faodar an dèanamh mas-fhìor no an toirt a-steach le bhith a’ cleachdadh innealan fèin-ghluasaid a tha ann mar-thà agus sgèileadh fiùghantach innealan fèin-ghluasaid bun-structair. Na suidheachaidhean cleachdaidh as cumanta ann an OpenShift, Kubernates, Rancher.
Tha seo a 'crìochnachadh a' chiad phàirt - an teòiridheach. Anns an ath shreath de artaigilean, thèid eisimpleirean de aonachadh le diofar sholaraichean dearbh-aithne agus eisimpleirean de shuidheachaidhean a sgrùdadh.
Source: www.habr.com