Cognito User Pools
Taarifa Msingi
Pools ya mtumiaji ni saraka ya mtumiaji katika Amazon Cognito. Kwa pool ya mtumiaji, watumiaji wako wanaweza kuingia kwenye programu yako ya wavuti au simu kupitia Amazon Cognito, au kufederate kupitia mtoa huduma wa kitambulisho cha tatu (IdP). Iwe watumiaji wako wanajiunga moja kwa moja au kupitia mtu wa tatu, wanachama wote wa pool ya mtumiaji wana wasifu wa saraka ambao unaweza kufikia kupitia SDK.
Pools za mtumiaji hutoa:
Huduma za usajili na kuingia.
UI ya wavuti iliyojengwa, inayoweza kubadilishwa kuingiza watumiaji.
Kuingia kijamii na Facebook, Google, Ingia na Amazon, na Ingia na Apple, na kupitia watoa huduma wa kitambulisho wa SAML na OIDC kutoka kwa pool ya mtumiaji.
Usimamizi wa saraka ya mtumiaji na maelezo ya mtumiaji.
Vipengele vya usalama kama uthibitishaji wa hatua nyingi (MFA), ukaguzi wa vitambulisho vilivyoharibiwa, ulinzi dhidi ya kuchukua akaunti, na uthibitisho wa simu na barua pepe.
Mifumo iliyobinafsishwa na uhamiaji wa mtumiaji kupitia AWS Lambda triggers.
Msimbo wa chanzo wa programu mara nyingi utaambatisha kitambulisho cha pool ya mtumiaji na kitambulisho cha programu ya mteja, (na mara nyingine siri ya programu?) ambayo inahitajika kwa mtumiaji kuingia kwenye Pool ya Mtumiaji ya Cognito.
Mashambulizi Yanayowezekana
Usajili: Kwa chaguo-msingi mtumiaji anaweza kujisajili mwenyewe, hivyo anaweza kuunda mtumiaji kwa ajili yake mwenyewe.
Uchambuzi wa Mtumiaji: Kazi ya usajili inaweza kutumika kufunua majina ya watumiaji ambayo tayari yapo. Taarifa hii inaweza kuwa muhimu kwa shambulio la nguvu ya kutisha.
Shambulio la Nguvu ya Kuingia: Katika sehemu ya Uthibitishaji una njia zote ambazo mtumiaji anapaswa kuingia, unaweza kujaribu kuzitisha kwa kutafuta vitambulisho halali.
Zana za Pentesting
Pacu, mfumo wa udukuzi wa AWS, sasa una moduli za "cognito__enum" na "cognito__attack" ambazo zinautomatisha uchambuzi wa mali zote za Cognito kwenye akaunti na kuashiria miundo dhaifu, sifa za mtumiaji zinazotumiwa kwa udhibiti wa ufikiaji, n.k., na pia kiotomatiki uundaji wa mtumiaji (ikiwa ni pamoja na msaada wa MFA) na upandishaji wa mamlaka kulingana na sifa za kubadilika za desturi, vitambulisho vya kitambulisho vinavyoweza kutumika, majukumu yanayoweza kufikiwa katika alama za kitambulisho, n.k.
Kwa maelezo ya kazi za moduli angalia sehemu ya 2 ya chapisho la blogi. Kwa maelekezo ya usakinishaji angalia ukurasa wa kuu wa Pacu.
Matumizi
Matumizi ya mashambulizi ya cognito__attack kujaribu uundaji wa mtumiaji na vekta zote za upandishaji wa mamlaka dhidi ya kitambulisho kilichotolewa na mteja wa pool ya mtumiaji:
Mfano wa matumizi ya cognito__enum kukusanya mabwawa yote ya watumiaji, wateja wa bwawa la watumiaji, mabwawa ya utambulisho, watumiaji, n.k. yanayoonekana kwenye akaunti ya AWS ya sasa:
Cognito Scanner ni chombo cha CLI kilichoandikwa kwa lugha ya python ambacho kinatekeleza mashambulizi tofauti kwenye Cognito ikiwa ni pamoja na uundaji usiohitajika wa akaunti na akaunti ya oracle.
Usanidi
Matumizi
Kwa maelezo zaidi tembelea https://github.com/padok-team/cognito-scanner
Usajili
User Pools inaruhusu kwa chaguo-msingi ku sajili watumiaji wapya.
Ikiwa yeyote anaweza kusajili
Unaweza kukutana na kosa linalokuonyesha kwamba unahitaji kutoa maelezo zaidi kuhusu mtumiaji:
Unaweza kutoa maelezo yanayohitajika kwa kutumia JSON kama:
Unaweza kutumia hii kazi pia kwa kutambua watumiaji waliopo. Hii ni ujumbe wa kosa unapobaini kuwa mtumiaji tayari yupo na jina hilo:
Tafadhali kumbuka katika amri iliyotangulia jinsi vipengele vya desturi vinavyoanza na "desturi:". Pia tambua kwamba unapojiandikisha huwezi kuunda vipengele vipya vya desturi kwa mtumiaji. Unaweza tu kutoa thamani kwa vipengele vya msingi (hata kama sio lazima) na vipengele vya desturi vilivyotajwa.
Au jaribu tu kuona kama kitambulisho cha mteja kipo. Hii ni makosa ikiwa kitambulisho cha mteja hakipo:
Ikiwa ni admin pekee anaweza kujiandikisha watumiaji
Utakutana na kosa hili na hutaweza kujiandikisha au kuhesabu watumiaji:
Kudhibitisha Usajili
Cognito inaruhusu kudhibitisha mtumiaji mpya kwa kudhibitisha barua pepe au namba ya simu. Kwa hivyo, unapounda mtumiaji kawaida utahitajika angalau jina la mtumiaji na nywila na barua pepe na/au namba ya simu. Weka moja unayoidhibiti ili upokee nambari ya kudhibitisha mtumiaji wako mzuri uliounda akaunti kama hii:
Hata kama inaonekana unaweza kutumia barua pepe na nambari ya simu ile ile, unapohitaji kuthibitisha mtumiaji aliyeumbwa, Cognito italalamika kuhusu kutumia habari ile ile na haitakuruhusu kuthibitisha akaunti.
Kupandisha Mamlaka / Kubadilisha Sifa
Kwa chaguo-msingi mtumiaji anaweza kurekebisha thamani ya sifa zake kwa kitu kama:
Kupandisha hadhi ya siri ya sifa ya desturi
Unaweza kukuta sifa za desturi zikitumiwa (kama vile isAdmin
), kwa chaguo-msingi unaweza kubadilisha thamani za sifa zako mwenyewe na huenda ukaweza kupandisha hadhi kwa kubadilisha thamani mwenyewe!
Kupandisha hadhi ya mabadiliko ya barua pepe/jina la mtumiaji
Unaweza kutumia hii kwa kubadilisha barua pepe na nambari ya simu ya mtumiaji, lakini, hata kama akaunti inabaki kama imehakikiwa, sifa hizo zitakuwa zimewekwa katika hali isiyo hakikiwa (utahitaji kuzihakiki tena).
Hutaweza kuingia kwa kutumia barua pepe au nambari ya simu hadi uzihakiki, lakini utaweza kuingia kwa kutumia jina la mtumiaji.
Tambua kwamba hata kama barua pepe ilibadilishwa na haijahakikiwa, itaonekana katika Kitambulisho cha ID ndani ya barua pepe
na sifa ya barua pepe_imethibitishwa
itakuwa uwongo, lakini kama programu haikagua hilo unaweza kujifanya kuwa mtumiaji mwingine.
Zaidi ya hayo, tambua kwamba unaweza kuweka chochote ndani ya uga wa jina
kwa kubadilisha sifa ya jina. Ikiwa programu ina inakagua uga huo kwa sababu fulani badala ya barua pepe
(au sifa nyingine yoyote) unaweza kujifanya kuwa mtumiaji mwingine.
Kwa vyovyote vile, ikiwa kwa sababu fulani ulibadilisha barua pepe yako kwa mfano kuwa mpya unaweza kuthibitisha barua pepe kwa nambari uliyopokea kwenye anwani hiyo ya barua pepe:
Tumia phone_number
badala ya email
kubadilisha/kuthibitisha namba mpya ya simu.
Msimamizi pia anaweza kuwezesha chaguo la kuingia kwa kutumia jina la mtumiaji linalopendelewa. Tafadhali kumbuka huwezi kubadilisha thamani hii kuwa jina lolote au preferred_username tayari linalotumiwa kujifanya kuwa mtumiaji tofauti.
Kurejesha/Kubadilisha Nenosiri
Inawezekana kurejesha nenosiri kwa kujua tu jina la mtumiaji (au barua pepe au simu inakubalika) na kuwa na ufikiaji wake kwani nambari itatumwa hapo:
Jibu la seva litakuwa chanya daima, kama vile jina la mtumiaji lilikuwepo. Huwezi kutumia njia hii kuchanganua watumiaji
Kwa nambari unaweza kubadilisha nenosiri na:
Ili kubadilisha nenosiri unahitaji kujua nenosiri la awali:
Uthibitisho
Kidole cha watumiaji kinaweza kusaidia njia tofauti za uthibitisho. Ikiwa una jina la mtumiaji na nywila kuna pia njia tofauti zinazoungwa mkono za kuingia. Zaidi ya hayo, wakati mtumiaji anathibitishwa kwenye Kidole aina 3 za vitufe hupewa: Kitufe cha ID, kitufe cha Upatikanaji na kitufe cha Kufufua.
Kitufe cha ID: Ina madai kuhusu utambulisho wa mtumiaji aliyethibitishwa, kama vile
jina
,barua pepe
, nanamba ya simu
. Kitufe cha ID pia kinaweza kutumika ku kuhakiki watumiaji kwenye seva zako za rasilimali au programu za seva. Lazima uhakiki sahihi wa kitufe cha ID kabla ya kuamini madai yoyote ndani ya kitufe cha ID ikiwa unakitumia kwenye programu za nje.Kitufe cha ID ndicho kitufe kinach kujumuisha thamani za sifa za mtumiaji, hata zile za desturi.
Kitufe cha Upatikanaji: Kina madai kuhusu mtumiaji aliye thibitishwa, orodha ya makundi ya mtumiaji, na orodha ya mizizi. Lengo la kitufe cha upatikanaji ni kuhalalisha shughuli za API katika muktadha wa mtumiaji kwenye kidole cha mtumiaji. Kwa mfano, unaweza kutumia kitufe cha upatikanaji ku kuidhinisha shughuli za API za kuongeza, kubadilisha, au kufuta sifa za mtumiaji.
Kitufe cha Kufufua: Kwa vitufe vya kufufua unaweza kupata vitufe vipya vya ID na Upatikanaji kwa mtumiaji hadi kitufe cha kufufua kikawa batili. Kwa chaguo-msingi, kitufe cha kufufua hufikia ukomo baada ya siku 30 tangu mtumiaji wa programu yako ajiandikishe kwenye kidole cha mtumiaji. Unapounda programu kwa kidole chako cha mtumiaji, unaweza kuweka ukomo wa kufutwa kwa kitufe cha kufufua cha programu yako hadi thamani yoyote kati ya dakika 60 na miaka 10.
ADMIN_NO_SRP_UTHIBITISHO & ADMIN_USER_PASSWORD_UTHIBITISHO
Hii ni mchakato wa uthibitisho wa upande wa seva:
Programu ya upande wa seva inaita
AdminInitiateAuth
API operation (badala yaInitiateAuth
). Operesheni hii inahitaji sifa za AWS zenye ruhusa zinazojumuishacognito-idp:AdminInitiateAuth
nacognito-idp:AdminRespondToAuthChallenge
. Operesheni inarudisha vigezo vya uthibitisho vinavyohitajika.Baada ya programu ya upande wa seva kupata vigezo vya uthibitisho, inaita
AdminRespondToAuthChallenge
API operation. Operesheni ya API yaAdminRespondToAuthChallenge
inafanikiwa tu unapotoa sifa za AWS.
Hii njia HAIJAWEZESHWA kwa chaguo-msingi.
Ili kuingia unahitaji kujua:
kitambulisho cha kidole cha mtumiaji
kitambulisho cha mteja
jina la mtumiaji
nywila
siri ya mteja (ikiwa programu imeboreshwa kutumia siri)
Ili kuweza kuingia kwa njia hii programu hiyo inapaswa kuruhusu kuingia na RUHUSU_ADMIN_USER_PASSWORD_AUTH
. Zaidi ya hayo, kutekeleza hatua hii unahitaji sifa zenye ruhusa za**cognito-idp:AdminInitiateAuth
**na cognito-idp:AdminRespondToAuthChallenge
Last updated