Ogow. turjumi: Qeybta koowaad Taxanahan waxaa loogu talagalay in lagu barto awoodaha Istio iyo muujinta waxqabadkooda, labaad - marin si fiican loo habeeyey iyo maamulka taraafikada shabakada. Hadda waxaan ka hadli doonaa amniga: si loo muujiyo shaqooyinka aasaasiga ah ee la xiriira, qoraagu wuxuu isticmaalaa adeegga aqoonsiga Auth0, laakiin bixiyeyaasha kale ayaa loo habeyn karaa si la mid ah.
Waxaan samaynay koox Kubernetes ah kaas oo aanu ku dirnay Istio iyo tusaale ahaan codsiga adeeg-yaraha, Falanqaynta dareenka, si loo muujiyo kartida Istio.
Marna ma rumaysteen in aan ku dhiirigelin doono xaqiijinta iyo oggolaanshaha. Muxuu Istio ka bixin karaa dhinaca tignoolajiyada si uu mawduucyadan uga dhigo mid xiiso leh oo, xitaa si ka sii badan, kugu dhiirigeliya?
Jawaabtu waa sahlan tahay: Istio waxa ay ka beddeshaa mas'uuliyadda awoodahaan adeegyadaaga wakiilka Ergeyga. Ilaa wakhtiga ay codsiyadu gaadheen adeegyada, horeba waa loo xaqiijiyay oo waa la oggolaaday, markaa waxa kaliya ee ay tahay inaad samayso waa inaad qortaa koodka faa'iidada u leh ganacsiga.
Miyuu fiican yahay? Bal aan eegno gudaha!
Xaqiijinta Auth0
Sida server-ka aqoonsiga iyo maamulka gelitaanka, waxaanu isticmaali doonaa Auth0, kaas oo leh nooc tijaabo ah, oo dareen leh in la isticmaalo oo aan si fudud u jeclahay. Si kastaba ha ahaatee, isla mabaadi'da ayaa lagu dabaqi karaa mid kasta oo kale Hirgelinta Xiriirinta Aqoonsiga Furan: KeyCloak, IdentityServer iyo kuwo kale oo badan.
Si aad u bilowdo, tag Auth0 Xariirka akoonkaaga ku samee kirayste (kirayste - "kirayste", unug macquul ah oo go'doon ah, wixii faahfaahin dheeraad ah eeg dukumentiyo - qiyaastii. turjumi.) oo u tag Codsiyada> App-ka caadiga ahdoorashada Domain, sida ka muuqata sawirka hoose:
Ku qeex boggan faylka resource-manifests/istio/security/auth-policy.yaml (isha):
Iyada oo kheyraadkan oo kale ah, Pilot (Mid ka mid ah saddexda qaybood ee aasaasiga ah ee Diyaaradda Xakamaynta ee Istio - qiyaastii. transl.) u habeeya ergayga si uu u xaqiijiyo codsiyada ka hor inta aan loo gudbin adeegyada: sa-web-app ΠΈ sa-feedback. Isla mar ahaantaana, qaabeynta laguma dabaqo ergada adeegga sa-frontend, oo noo ogolaanaysa in aan ka tagno safka hore ee aan la hubin. Si aad u dabaqdo siyaasadda, socodsii amarka:
$ kubectl apply -f resource-manifests/istio/security/auth-policy.yaml
policy.authentication.istio.io βauth-policyβ created
Ku soo noqo bogga oo samee codsi - waxaad arki doontaa inuu ku dhammaanayo heerka 401 Aan la oggolaan. Hadda aynu dib u jiheyno isticmaalayaasha hore si ay ugu caddeeyaan Auth0.
Ku xaqiijinta codsiyada Auth0
Si loo xaqiijiyo codsiyada isticmaalaha dhamaadka, waxaad u baahan tahay inaad ku dhex abuurto API Auth0 kaaso matali doona adeegyada la xaqiijiyay (dib u eegis, tafaasiisha, iyo qiimaynta). Si aad u abuurto API, tag Auth0 Portal> APIs> Abuur API oo buuxi foomka:
Macluumaadka muhiimka ah halkan waa aqoonsado, oo aan gadaal dambe u adeegsan doono qoraalka. Aan u qorno sidatan:
dhegeystayaasha: { YOUR_ADDIENCE}
Faahfaahinta soo hartay ee aan u baahanahay waxay ku taal Auth0 Portal ee qaybta Codsiyada - dooro Codsiga Imtixaanka (si toos ah loo abuuray API-ga).
Halkan waxaan ku qori doonaa:
Domain: {YOUR_DOMAIN}
Aqoonsiga macmiilka: {YOUR_CLIENT_ID}
U rog Codsiga Imtixaanka goobta qoraalka URL-yada dib-u-soo-celinta la oggolaaday ( URL-yada la xaliyay ee dib-u-soo-celinta), kaas oo aan ku caddeyno URL-ka meesha wicitaanka la diri karo ka dib marka la dhammeeyo xaqiijinta. Xaaladeena waa:
http://{EXTERNAL_IP}/callback
Iyo URLs ka bixida la ogolyahay ( URL-yada loo ogolyahay ka bixida) ku dar:
http://{EXTERNAL_IP}/logout
Aan u gudubno dhanka hore.
Cusboonaysiinta hore
U beddelo laanta auth0 kayd [istio-mastery]. Laankan, koodhka hore ayaa loo beddelaa si loogu jiheeyo isticmaalayaasha Auth0 si loo xaqiijiyo oo u isticmaal calaamadda JWT codsiyada adeegyada kale. Midda dambe ayaa loo fuliyaa sida soo socota (App.js):
Si aad u bedesho afka hore si aad u isticmaasho xogta kiraystaha gudaha Auth0, fur sa-frontend/src/services/Auth.js oo ku beddelo qiyamka aan kor ku soo qornay (Auth.js):
Isku day abka! Waxaa laguu wareejin doonaa Auth0, halkaas oo aad u baahan tahay inaad gasho (ama iska diiwaan geliso), ka dib waxaa lagugu soo celin doonaa bogga laga soo codsaday codsiyada hore loo xaqiijiyay. Haddii aad isku daydo amarrada lagu sheegay qaybaha hore ee maqaalka oo leh curl, waxaad heli doontaa koodhka 401 Xeerka Xaaladda, taasoo muujinaysa in codsiga aan la oggolayn.
Aynu qaadno tallaabada xigta - oggolow codsiyada.
Oggolaanshaha Auth0
Xaqiijinta waxay noo ogolaataa inaan fahanno qofka isticmaalaha, laakiin ogolaanshaha ayaa loo baahan yahay si loo ogaado waxa ay galaangal u leeyihiin. Istio waxa uu bixiyaa agab tan sidoo kale.
Dhexdhexaadiyayaasha(Moderators) - iyadoo la heli karo dhammaan saddexda adeeg.
Fikradda oggolaanshaha
Si loo abuuro kooxahan, waxaan isticmaali doonaa Auth0 Oggolaanshaha kordhinta oo waxaan isticmaali doonaa Istio si aan u siino heerar kala duwan oo ay galaan.
Rakibaadda iyo habaynta Oggolaanshaha Auth0
Xariirka Auth0, tag meelaha la dheereeyey (Extensions) oo rakib Oggolaanshaha Auth0. Ka dib markii la rakibo, tag Kordhinta Oggolaanshaha, oo halkaas - qaabeynta kiraystaha adiga oo gujinaya midigta sare oo dooro ikhtiyaarka menu ee habboon (Qaabeynta). Dhaqdhaqaaqa kooxaha (Koox) oo dhagsii badhanka xeerka daabacaada (Xeerka daabac).
Abuurista kooxo
Kordhinta Oggolaanshaha tag Kooxaha oo koox abuur Moderators. Maadaama aan ula dhaqmi doono dhammaan isticmaalayaasha la xaqiijiyay sidii isticmaaleyaal caadi ah, looma baahna in loo abuuro koox dheeri ah iyaga.
Dooro koox Moderators, Riix Kudar Xubnaha, ku dar xisaabtaada ugu weyn. Ka tag isticmaalayaasha qaarkood koox la'aan si aad u hubiso in loo diiday inay galaan (Isticmalayaasha cusub waxaa lagu abuuri karaa gacanta iyada oo loo marayo Auth0 Portal > Isticmaalayaasha > Abuur Isticmaale.)
Kudar Sheegashada Kooxda Token Helitaanka
Isticmaalayaasha ayaa lagu daray kooxaha, laakiin macluumaadkan sidoo kale waa in lagu muujiyaa calaamadaha gelitaanka. Si aad ugu hoggaansanto OpenID Connect isla markaana isla markaa soo celiso kooxaha aan u baahanahay, calaamaddu waxay u baahan doontaa inay ku darto keeda sheegasho caado. Waxaa lagu fuliyay xeerar Auth0
Si aad u abuurto qaanuun, aad Auth0 Portal to Rules, Riix Samee Xeer oo ka dooro xeer madhan qaab-dhismeedka.
Nuqul ka samee summada hoose oo u kaydi sidii xeer cusub Kudar Sheegashada Kooxda (magac u yaal Group.js):
Hadda waxaad u baahan tahay inaad habayso wakiilka ergayga si aad u hubiso gelitaanka isticmaalaha, kaas oo kooxda laga soo saari doono sheegashada (https://sa.io/group) calaamada gelitaanka soo noqday. Kani waa mowduuca qaybta xigta ee maqaalka.
Qaabeynta oggolaanshaha gudaha Istio
Si loo oggolaado inay shaqeyso, waa inaad RBAC u oggolaataa Istio. Si tan loo sameeyo, waxaan isticmaali doonaa qaabeynta soo socota:
1 - awood RBAC kaliya adeegyada iyo meelaha magac ee ku qoran goobta Inclusion;
2 β Waxaan taxnay liiska adeegyadayada.
Aynu ku dabaqno qaabaynta amarkan soo socda:
$ kubectl apply -f resource-manifests/istio/security/enable-rbac.yaml
rbacconfig.rbac.istio.io/default created
Dhammaan adeegyadu hadda waxay u baahan yihiin Xakamaynta Helitaanka Door-ku-salaysan. Si kale haddii loo dhigo, helitaanka dhammaan adeegyada waa mamnuuc waxayna keeni doontaa jawaab RBAC: access denied. Hadda aynu ogolaano gelitaanka isticmaalayaasha idman
Helitaanka qaabeynta isticmaalayaasha caadiga ah
Dhammaan isticmaalayaashu waa inay galaangal u yeeshaan adeegyada SA-Frontend iyo SA-WebApp. La fuliyay iyadoo la adeegsanayo ilaha Istio ee soo socda:
Door adeeg - waxay go'aamisaa xuquuqda uu isticmaaluhu leeyahay;
ServiceRoleBinding - ayaa go'aamiya qofka ServiceRole ka tirsan yahay.
"Dhammaan isticmaalayaasha" macnaheedu ma in isticmaalayaasha aan la aqoonsan waxay sidoo kale heli doonaan SA WebApp? Maya, siyaasaddu waxay hubin doontaa ansaxnimada calaamadda JWT.
Aynu dabaqno habaynta:
$ kubectl apply -f resource-manifests/istio/security/user-role.yaml
servicerole.rbac.istio.io/regular-user created
servicerolebinding.rbac.istio.io/regular-user-binding created
$ kubectl apply -f resource-manifests/istio/security/mod-role.yaml
servicerole.rbac.istio.io/mod-user created
servicerolebinding.rbac.istio.io/mod-user-binding created
Xiritaanka ergada awgeed, waxa ay qaadan kartaa dhawr daqiiqadood in xeerarka oggolaanshaha ay hirgalaan. Waxaad markaa hubin kartaa in isticmaalayaasha iyo dhexdhexaadiyeyaasha ay leeyihiin heerar kala duwan oo gelitaanka.
Gabagabada qaybtan
Si dhab ah in kastoo, weligaa ma aragtay hab ka fudud, dadaal la'aan, la miisaami karo oo sugan oo xaqiijinta iyo oggolaanshaha?
Kaliya seddex Istio (RbacConfig, ServiceRole, iyo ServiceRoleBinding) ayaa loo baahnaa si loo gaaro kontorool wanaagsan oo ku saabsan xaqiijinta iyo oggolaanshaha adeegsadaha ugu dambeeya ee helitaanka adeegyada.