Felhasználókezelés az AWS Cognito segítségével - (1/3) Első beállítás

A teljes AWS Web Boilerplate - 1A oktatóanyag

A fő tartalomjegyzék Kattintson ide A rész: Kezdeti beállítás B rész: Az alapvető funkciók C rész: Az utolsó lépések a teljes feltöltésre

Töltse le a Githubot innen.

Bevezetés

A felhasználói hitelesítés beállítása életkorokat vehet igénybe, de ez minden termelési alkalmazás alapvető sarokköve. Vannak olyan opciók, mint az AuthO és a PassportJS, de ezek vagy nehéz tanulási görbékkel rendelkeznek, folyamatos karbantartást igényelnek, vagy kiszolgáltatottak a programozói hibáknak, mivel önbeállításra van szükségük. Ha csak egy kihangosító, testreszabható, biztonságos és nagymértékben méretezhető felhasználói felügyeleti szolgáltatás lenne a felhőben.

Bemutatjuk az Amazon Cognito és a Federated Identities alkalmazást. A Cognito az AWS-megoldás a felhasználói profilok kezelésére, és az összevont identitások segítenek nyomon követni a felhasználókat több bejelentkezés során. Az AWS ökoszisztémába integrálva az AWS Cognito világot nyit a fejlett fejlett fejlesztés számára, mivel a Cognito + IAM szerepkörök szelektív, biztonságos hozzáférést biztosítanak más AWS-szolgáltatásokhoz. Csak az egyes bejelentkezett felhasználóknak szeretné engedélyezni az S3 Bucket hozzáférését? Egyszerűen csatlakoztasson egy Cognito bejelentkezést egy IAM szerepkörrel, amely lehetővé tette a hozzáférést a vödörhöz, és most már biztonságos a vödör! A legjobb az egészben, hogy az ingyenes szint havi 50 000 aktív felhasználót biztosít Önnek, így nem kell attól tartania, hogy többet fizet, amíg készen áll a fellendülésre.

Ez a kazántábla egy React-Redux webalkalmazás, amely az AWS Cognito és a Federated Identities összes funkcióját előre integrálta. Használja ezt a kazánlapot, ha rendelkezik olyan alkalmazással, amelyet már a kezdetektől egy gyártásra kész hitelesítési szolgáltatással fejlesztett ki. Ez valóban egy nagyszerű indítópult a következő nagyszerű ötlethez.

A kezdéshez látogasson el az AWS Cognito oldalra az AWS konzolon!

Kezdeti beállítás - Cognito

Felállítjuk az AWS Cognito alkalmazást, amely egy egyedi bejelentkezési készlet (például e-mailes bejelentkezés). A Cognito NEM bejelentkezési menedzser bármilyen típusú bejelentkezéshez (például Facebook és Gmail), csak egyedi bejelentkezésekhez.

Először hozzunk létre egy felhasználói készletet a „Felhasználói készlet kezelése” gombra kattintva. A felhasználói csoport olyan felhasználók csoportja, amelyek megfelelnek ugyanannak a megjelölésnek. Ha Uber klónt készítene, akkor 2 felhasználói készletet készítene - egyet a sofőröknek és egyet a lovasoknak. Most csak hozzunk létre egy új felhasználói készletet, az úgynevezett „App_Users” néven. A beállító képernyőnek így kell kinéznie:

Lépésről lépésre végig fogjuk járni ezt a folyamatot, ezért írja be az „App_Users” készlet nevét, majd kattintson a „Beállítások áttekintése” gombra. A következő lépés az „Attribútumok”, ahol meghatározzuk azokat az attribútumokat, amelyek „App_Users” -einkkel rendelkezni fognak.

Most csak egy e-mailt, jelszót és „agentName” -t szeretnénk kapni. Az e-mail a felhasználó egyedi azonosítója, a jelszó pedig kötelező mező (ezért nem látja a szokásos attribútumok listájában). Azt akarjuk, hogy a felhasználók rendelkezzenek egy kódnévvel, ezért állítsuk be az „agentName” egyéni attribútumot. Csak az „agentName” szót használjuk az egyéni attribútumok hozzáadásának bemutatásához. Görgessen lefelé, és meglátja az egyéni attribútumok hozzáadásának lehetőségét.

Az oktatóanyag elkészítésének napjától kezdve nem lehet visszamenni és megváltoztatni az egyéni attribútumokat (annak ellenére, hogy az AWS úgy tűnik, hogy képes rá), ezért mindenképpen tegye ezt megfelelővé első alkalommal! Ha módosítania kell az attribútumokat, létre kell hoznia egy új felhasználói készletet. Remélhetőleg az AWS hamarosan megoldja ezt a problémát. Mindenesetre továbblépve a fiókházirendekre!

Tehát itt láthatjuk, hogy jelszavaink kikényszeríthetők bizonyos karakterek igényléséhez. Nyilvánvalóan biztonságosabb lenne a különféle karaktertípusok keverékének előírása, de ez a felhasználóknak gyakran nem tetszik. Középút esetén lehetővé teszi, hogy a jelszónak legalább 8 karakter hosszúnak kell lennie, és tartalmaznia kell legalább 1 számot. Azt is szeretnénk, ha a felhasználók regisztrálni tudnák magukat. A többi rész nem annyira fontos, ezért térjünk át a következő lépésre: az ellenőrzésekre.

Ez a rész klassz, könnyen integrálhatjuk a többtényezős hitelesítést (MFA). Ez azt jelenti, hogy a felhasználóknak regisztrálniuk kell egy e-mailt, valamint egy másik hitelesítési formát, például egy telefonszámot. Erre a telefonszámra PIN-kódot küldenek, amelyet a felhasználó a fiókjának igazolására használ. Ebben az oktatóanyagban nem fogjuk használni az MFA-t, csak e-mailes ellenőrzést kell végezni. Állítsa az MFA-t „off” értékre, és csak az „Email” jelölje be ellenőrzési módszerként. Hagyhatjuk a „AppUsers-SMS-Role” (IAM szerepkör) kitöltését, mivel nem használjuk, de a jövőben használhatjuk. A Cognito az IAM szerepkör használatával engedélyezi az MFA-ban használt SMS-ek küldését. Mivel nem használunk MFA-t, továbbléphetünk: Üzenet testreszabása.

Amikor a felhasználók megkapják fiókellenőrző e-mailt, megadhatjuk, hogy mi kerül az e-mailbe. Itt készítettünk egy egyedi e-mailt, és programozottan beillesztettük az ellenőrző PIN-kódot {####}. Sajnos nem adhatunk be más változókat, például egy ellenőrző linket. Ennek megvalósításához az AWS Lambda és az AWS SES kombinációját kell használnunk.

Görgessen lefelé az oldalon az Üzenet testreszabása lépésben, és hozzáadhatjuk saját alapértelmezett FROM és REPLY-TO címeinket. Ehhez ellenőriznünk kell egy e-mailt az AWS SES-ben, amelyet egyszerűen és nagyon gyorsan beállíthat. Egy új lapon lépjen az AWS konzol kezdőlapjára a bal felső sarokban található narancssárga kockára kattintva. A konzol kezdőlapján keresse meg a SES (Simple Email Service) szót. Kattintson a SES oldalra lépéshez, majd a bal oldali menüben kattintson az E-mail címek linkre.

Ezután kattintson az „Új cím ellenőrzése” elemre, és írja be az ellenőrizni kívánt e-mailt.

Most jelentkezzen be e-mailjébe, és nyissa meg az e-mailt az AWS-től. Kattintson az e-mailben található linkre az igazoláshoz, és újra átirányít az AWS SES oldalra. Sikeresen igazolt egy e-mailt! Az könnyű volt.

Most ez megtörtént, térjünk vissza az AWS Cognito alkalmazáshoz, és térjünk a következőre: Címkék.

Nem kötelező címkéket hozzáadni a felhasználói készlethez, de mindenképpen hasznos számos AWS-szolgáltatás kezeléséhez. Csak adjunk hozzá egy címkét az „AppName” -hez, és állítsuk be a „MyApp” értékre. Most továbbléphetünk: Eszközök.

Dönthetünk úgy, hogy emlékezünk a felhasználó eszközeire. Általában a „Mindig” lehetőséget választom, mert a felhasználói eszközökre való emlékezés egyszerre ingyenes és nem igényel kódolást részünkről. Az információk is hasznosak, miért ne? Következő lépés: Alkalmazások.

Azt akarjuk, hogy bizonyos alkalmazások hozzáférjenek a felhasználói készletünkhöz. Ezek az alkalmazások sehol máshol nincsenek az AWS ökoszisztémában, ami azt jelenti, hogy amikor létrehozunk egy „alkalmazást”, az csak Cognito azonosító. Az alkalmazások azért hasznosak, mert több alkalmazás is elérheti ugyanazt a felhasználói készletet (képzeljünk el egy Uber klón alkalmazást és egy ingyenes vezetési teszt gyakorlati alkalmazást). A frissítési tokent 30 napra állítjuk be, ami azt jelenti, hogy minden bejelentkezési kísérlet egy olyan frissítési tokent ad vissza, amelyet minden alkalommal bejelentkezés helyett hitelesítésre használhatunk. Töröljük a kattintást az „Ügyféltitok létrehozása” gombra, mert a felhasználói felületet a kezelőfelülettől a háttér helyett kívánjuk bejelentkezni (ergo, nem tudjuk titkokat tartani a kezelőfelületen, mert ez nem biztonságos). Kattintson az „Alkalmazás létrehozása”, majd a „Következő lépés” elemre a továbblépéshez: Aktiválók.

Különböző műveleteket indíthatunk el a felhasználói hitelesítés és a beállítási folyamat során. Emlékszel, hogyan mondtuk, hogy az AWS Lambda és az AWS SES segítségével összetettebb fiókellenőrző e-maileket hozhatunk létre? Itt állítanánk fel ezt. Ennek az oktatóanyagnak a vonatkozásában nem fogunk használni semmilyen AWS Lambda eseményindítót. Térjünk át az utolsó lépésre: Áttekintés.

Itt áttekintjük az összes elvégzett konfigurációs konfigurációt. Ha biztos ebben az információban, kattintson a „Készlet létrehozása” lehetőségre, és létrejön a Cognito felhasználói készletünk!

Vegye figyelembe a készlet azonosítóját us-east-1_6i5p2Fwaoa Medence részletek lapon.

És az Alkalmazások kliens azonosítója 5jr0qvudipsikhk2n1ltcq684baz Alkalmazások lapon. Mindkettőre szükségünk lesz az ügyféloldali alkalmazásunkban.

A Cognito beállítása után beállíthatjuk az egyesített azonosítókat több bejelentkezési szolgáltató számára. Ebben az oktatóanyagban nem térünk ki az FB Login sajátosságaira, mivel ez nem tartozik ezen oktatósorozat hatálya alá. Az FB Login integrálása azonban rendkívül egyszerű, és az alábbiakban bemutatjuk, hogy ez hogyan történt.

Kezdeti beállítás - egyesített identitások

Ezután szeretnénk beállítani az „Összevont identitásokat”. Ha van olyan alkalmazásunk, amely lehetővé teszi több bejelentkezési szolgáltató (Amazon Cognito, Facebook, Gmail stb.) Használatát ugyanazon felhasználó számára, akkor a Federated Identities-t használnánk mindezen bejelentkezések központosításához. Ebben az oktatóanyagban mind az Amazon Cognito bejelentkezésünket, mind a potenciális Facebook bejelentkezést használjuk. Lépjen az Egyesített identitások oldalra, és kezdje el az új identitáskészlet létrehozásának folyamatát. Adjon megfelelő nevet.

Most bontsa ki a „Hitelesítés-szolgáltatók” részt, és megjelenik az alábbi képernyő. A Cognito alatt hozzáadjuk az általunk létrehozott Cognito felhasználói készletet. Másolja és illessze be a korábban felhasznált felhasználói készlet-azonosítót és alkalmazás-ügyfél-azonosítót.

És ha Facebook bejelentkezést akartunk ugyanahhoz a felhasználói identitáskészlethez, akkor elmehetünk a Facebook fülre, és egyszerűen megadhatjuk a Facebook alkalmazás azonosítónkat. Ennyi van benne az AWS konzolon!

Mentse el az identitáskészletet, és átirányít az alábbi képernyőre, ahol IAM-szerepkörök jönnek létre az összevont identitáskészlet képviseletére. A nem hitelesített IAM szerepkör a nem bejelentkezett felhasználóknak szól, a hitelesített verzió pedig a bejelentkezett felhasználóknak szól. Ezeknek az IAM-szerepköröknek engedélyt adhatunk más AWS-erőforrások elérésére, például az S3-sávokra és hasonlókra. Így érhetünk el nagyobb biztonságot azáltal, hogy integráljuk alkalmazásunkat az AWS ökoszisztémába. Folytassa az identitáskészlet létrehozásának befejezésével.

Az identitáskészlet sikeres létrehozása után most látnia kell az alábbi képernyőt. Most csak 1 dolgot kell megjegyeznie, amely az Identity Pool ID (azaz. us-east-1:65bd1e7d-546c-4f8c-b1bc-9e3e571cfaa7), Amelyet később a kódunkban használunk. Nagy!

Zárjon be mindent, és térjen vissza az AWS Cognito főképernyőjére. Ha belépünk a Cognito vagy az Federated Identities szakaszba, akkor azt látjuk, hogy fel van állítva a 2 szükséges készlet. Az AWS Cognito és az AWS Federated Identities készen áll az indulásra!

Ez minden a beállításhoz szükséges! Ezzel a 2 készletgel integrálhatjuk kódunk többi részét az Amazon teljes hitelesítési szolgáltatásába, és elérhetjük a csúcs felhasználói szintű kezelést. Ez sokkal könnyebb volt, mint az egyedi OAuth + Passport.js! Ha tetszik, amit eddig láttál, olvasd tovább! Ne feledje, hogy miután ezt egyszer megtanulta, a jövőben nagyon könnyű lesz, ezért mindenképpen megéri az idő befektetését. Találkozunk a következő részben!

Fő tartalomjegyzék Kattintson ide A rész: Kezdeti beállítás B rész: Az alapvető funkciók C rész : A teljes feltöltés utolsó lépései Ezeket a módszereket részben alkalmazták a renthero.ca telepítésében