A close up of the word webscale on a white background

Kysy konsultilta: Mikä on Amazon Cognito?

19. helmikuuta 2025

Mikä on Amazon Cognito?

Amazon Cognito on AWS:n tarjoama palvelu turvalliseen ja skaalautuvaan asiakasidentiteetin- ja pääsynhallintaan (Customer Identity and Access Management, eli CIAM). Kehittäjät voivat käyttää Cognitoa helpottamaan autentikaation, auktorisoinnin ja käyttäjähallinnan lisäämistä sovelluksiin, jolloin käyttäjät voivat esimerkiksi kirjautua sovelluksiin sekä suorittaa sallittuja toimintoja. Cogniton tärkeimmät komponentit ovat User Pool ja Identity Pool.


User Pool on on käyttäjähakemisto, eli se pitää sisällään käyttäjien tiedot (profiilit, attribuutit ja ryhmät). Käyttäjät voidaan rekisteröidä suoraan User Pooliin, jolloin User Pool toimii itsenäisenä Identity Providerina (IdP) näille käyttäjille, eli tällöin User Pool säilyttää ja verifioi identiteetit. Toinen vaihtoehto on käyttää federointia, jolloin käyttäjät kirjautuvat sisään sovellukseen kolmannen osapuolen IdP:tä, kuten Amazonin, Facebookin, Googlen, Applen tai muun yhteensopivan (SAML tai OpenID Connect) IdP:n avulla. Tällöin User Pool toimii sovelluksen ja kolmannen osapuolen IdP:n välissä. Käyttäjän onnistuneen sisäänkirjautumisen päätteeksi User Pool palauttaa JSON web tokenit, joita käytetään haluttuun toimintoon, kuten esimerkiksi tietojen hakemiseen backend-palvelusta. Kehittäjien ei tarvitse toteuttaa käyttöliittymiä itse, sillä Cognito myös tarjoaa valmiita toteutuksia, kuten esimerkiksi rekisteröityminen ja sisäänkirjautuminen. User Poolin toiminnallisuutta voi myös mukauttaa Lambda-funktioiden avulla (Lambda triggers). User Poolissa on myös useita erilaisia ominaisuuksia, kuten esimerkiksi monivaiheinen tunnistautuminen (MFA), konfiguroitavat salasanan vaatimukset, CAPTCHA-tuki, kirjautuminen ilman salasanaa sekä tuki AWS WAF -palomuurille.


Identity Pool puolestaan mahdollistaa käyttäjille pääsyn AWS-palveluihin, kuten esimerkiksi pääsyn S3-palveluun. Identity Pool antaa käyttäjälle väliaikaiset AWS-tunnukset, joita käytetään pyyntöjen tekemiseen sallittuihin AWS-palveluihin. Käyttäjän autentikaatio voidaan tehdä käyttämällä User Poolia tai muuta IdP:tä, kuten Amazon, Facebook, Google, Apple tai muuta yhteensopivaa (SAML tai OpenID Connect) IdP:tä. Halutessaan Identity Poolin voi konfiguroida palauttamaan väliaikaiset AWS-tunnukset myös anonyymeille käyttäjille, eli käyttäjille, jotka eivät ole kirjautuneet sisään sovellukseen. Identity Pool tarvitsee IAM-roolin väliaikaisia AWS-tunnuksia varten. IAM-roolin avulla määritellään mitä oikeuksia käyttäjällä on. Autentikoituneille ja anonyymeille käyttäjille voidaan määritellä eri IAM-roolit.


Cognitoa voidaan käyttää myös muiden AWS-palveluiden kanssa, kuten esimerkiksi API Gateway ja AppSync. AppSync-palvelun (GraphQL API) kanssa Cognitoa voidaan käyttää esimerkiksi siten, että käyttäjä kirjautuu sisään sovellukseen käyttäen Cognito User Poolia ja saa sieltä JWT-tokenin. Tätä tokenia käytetään AppSync-pyynnössä, ja AppSync voidaan konfiguroida siten, että tietyt operaatiot ovat sallittuja tietylle käyttäjäryhmälle. Tieto käyttäjän mahdollisista ryhmistä tulee User Poolista ja token sisältää kyseisen tiedon. Käyttäjä saa suorittaa operaation mikäli hän kuuluu sallittuun ryhmään, ja käyttäjälle palautetaan virhe mikäli token ei sisällä vaadittua ryhmää/tietoa.



Markus Nousiainen

Jukka Ukkonen

Senior Consultant

Viimeisimmät kirjoitukset

21. helmikuuta 2025
Pilvipalvelut mahdollistavat niin nopeamman innovoinnin, resurssien tehokkaamman hallinnan kuin joustavammat liiketoimintamallitkin. Jotta pilven tarjoamat liiketoimintaedut pystytään hyödyntämään, tarvitaan pilven käyttöön kuitenkin suunnitelmallisuutta ja järjestelmällisyyttä.
13. helmikuuta 2025
Pilvipulssi tuo ajankohtaiset uutiset AWS- ja Azure-pilvimarkkinoilta suoraan asiantuntijoiltamme. Tutustu uuteen AWS CloudFormation Hooks -ominaisuuteen, joka auttaa varmistamaan, että infrastruktuurimuutokset noudattavat ennalta määriteltyjä sääntöjä ennen käyttöönottoa.
11. helmikuuta 2025
AWS DevOps Services Competency on merkittävä virstanpylväs yrityksellemme ja osoitus sitoutumisestamme korkealaatuisiin DevOps-palveluihin AWS-ympäristössä. Mutta mitä tämä tarkoittaa asiakkaillemme, ja miksi AWS Competency -ohjelma on tärkeä?
29. tammikuuta 2025
Kysy konsultilta -blogisarjassa konsulttimme tekevät selkoa alan termeistä ja ilmiöistä. Vastaukset on mitoitettu sopimaan pieneenkin tiedonnälkään. Tällä kertaa selvitämme, mikä on Elastic Load Balancing (ELB) ja mihin sitä tarvitaan?
Lisää kirjoituksia
Share by: