Architektúra · Alkalmazásidentitás

Cognito-identitásarchitektúra a WordPress napi üzemeltetéséhez

A Cognitót ne egyszerű bejelentkezési képernyőként, hanem identitási alrendszerként kezelje: a böngészős hitelesítés, a föderáció, a csoportok, a tokenkontextus és az opcionális AWS-hitelesítő adatok maradjanak elkülönítve a WordPress-tartalomtól és -munkamenetektől.

WordPress-oldal → Gatey felület
       ↓ böngésző
Amazon Cognito User Pool
   ├→ közösségi / SAML / OIDC szolgáltatók
   ├→ MFA + profilfolyamatok
   ├→ csoportok / tokenkontextus
   └→ opcionális Identity Pool
          ↓
védett API-k / statikus hozzáférés

Identitási határ

A WordPress jeleníti meg az élményt; az alkalmazásidentitás a Cognitóé

A Gatey biztosítja a frontendélményt, a Cognito pedig hitelesíti a felhasználókat, és más szolgáltatások által ellenőrizhető identitási elemeket ad ki. Így a bejelentkezés dinamikus vagy statikus WordPressen is működik anélkül, hogy a WordPress felhasználói táblája lenne az alkalmazásidentitás forrása.

Látogató böngészője
  → Gatey hitelesítő
  → Cognito User Pool
       ├→ bejelentkezés / regisztráció / MFA / profil
       ├→ SAML / OIDC / közösségi föderáció
       └→ csoport- és tokenkontextus
             ├→ JWT-vel engedélyezett API-k
             ├→ opcionális IAM-hitelesítő adatok
             └→ aláírói döntés a védett statikus hozzáféréshez

Jogosultsági határ A sikeres hitelesítés nem ad általános alkalmazás-hozzáférést. A védett API-knak és statikus erőforrásoknak saját scope-, IAM- vagy aláírt hozzáférési szabályaikat kell érvényesíteniük a Cognito identitáskontextusával.

Mit hoz létre a sablon

Az identitásstack több egy User Poolnál. Ez a leltár bemutatja a böngészőklienst, a föderációs és domainbeállításokat, az életciklus-triggereket, az opcionális AWS-hitelesítő adatokat és az alkalmazásidentitási határt alkotó outputokat.

ÉpítőelemMiért szükségesFő tervezési döntésÜzemeltetési megjegyzés
User Pool + App ClientElsődleges felhasználói címtár és OAuth-kliens a böngészőalapú WordPress-belépéshezNincs client secret; kód- vagy SRP-kompatibilis nyilvános kliensA stack létrehozhatja, vagy a sablonmódtól függően meglévő poolhoz kapcsolódhat.
Opcionális egyedi domainMárkázott bejelentkezés és OAuth-visszahívásokACM-tanúsítvány és opcionális Route53-alias, ha elérhető a hosted zoneA DNS és a tanúsítvány tulajdonlását az éles indulás előtt egyértelműsíteni kell.
Identity PoolA hitelesített Cognito-felhasználókat AWS-hitelesítő adatokra váltja IAM-aláírt API-khozAz AuthenticatedRole és RegisteredRole elkülönítéseStatikus frontendről indított, IAM-védett API Gateway-hívásokhoz hasznos.
Custom Email SenderHTML-sablonokra és márkázott folyamatokra cseréli az egyszerű Cognito-e-maileketA sablonok S3-ban vannak; konfigurálva SES küld, különben maradhat Cognito-fallbackA sablonokat verziózott termékeszközként, ne konzolba írt szövegként kezelje.
Pre Sign-Up triggerEllenőrzi a regisztráció minőségét, mielőtt a felhasználó bekerül a poolbaOpcionális reCAPTCHA, megbízható domainek és külső IdP-k e-mailes összekapcsolásaA hibák legyenek érthetők a frontendnek és kellően naplózottak a hibakereséshez.
Pre Token Generation triggerA csoporttagságot access-token-scope-okba vetítiPéldául sc.group.registered vagy sc.group.admin scope-ok hozzáadásaDeklaratívabbá teszi az API Gateway scope-ellenőrzését.
Post Confirmation triggerA megerősített felhasználót a Registered csoportba helyeziCsak valódi regisztráció-megerősítéseket kezeljenElválasztja a „hitelesített” és „API-hívásra eléggé regisztrált” állapotot.
OutputokLehetővé teszik, hogy más stackek és bővítmények felhasználják az identitási elemeketPool- és kliensazonosítók, domain, szerepkörök, csoportok és Lambda ARN-ek kiadásaAz outputok jelentik a szerződést e stack és a platform többi része között.

Token- és jogosultsági modell

A Cognito többféle identitási elemet biztosít, de mindegyiknek más a szerepe. A táblázat különválasztja a böngészős hitelesítést, csoportokat, scope-okat, ideiglenes AWS-hitelesítő adatokat és szolgáltatásoldali jogosultságkezelést.

RétegElemMit bizonyítMire nem használható
Gatey / böngészőCognito-tokenek és helyi hitelesítési állapotA felhasználó végrehajtotta a konfigurált Cognito-folyamatotTitkok tárolása a WordPress-szerveren vagy jelszavak továbbítása PHP-n keresztül.
User Pool-csoportokregistered, admin vagy projektspecifikus csoportokA felhasználó egy üzleti szerepkörhöz tartozikAz egyetlen futásidejű szabályérvényesítési pontként működni.
Access-token-scope-oksc.group.<group>A token API által olvasható szerepkör-kontextust hordozHelyettesíteni a backend jogosultságkezelését, amikor az erőforrás tulajdonlása számít.
Identity Pool-szerepkörAuthenticatedRole vagy RegisteredRoleA böngésző ideiglenes AWS-hitelesítő adatokat kaphat engedélyezett műveletekhezSzéles körű fiókszintű jogosultságokat adni.
API Gateway-metódusCognito-scope vagy IAM-jogosultságAz útvonal a szolgáltatáshatáron érvényesíti az identitástRejtett gombokra vagy kizárólag CSS-alapú korlátozásokra támaszkodni.

Üzemeltetési hibamódok

Az identitási hibák gyakran általános bejelentkezési problémának látszanak, miközben az ok e-mail-kézbesítés, föderáció, token-scope vagy DNS. A táblázat a látható tünetet a vizsgálandó üzemeltetési határhoz rendeli.

HibamódFelhasználó által látható tünetValószínű okRunbook iránya
A reCAPTCHA elutasítja a regisztrációtA felhasználó nem tud fiókot létrehozniHibás site key vagy secret, elavult token, alacsony pontszám vagy eltérő actionEllenőrizze a clientMetadata tokenútját, az SSM-secretet, a küszöböt és a Lambda-logokat.
Az egyedi e-mail nem érkezik megNem érkezik megerősítő vagy jelszó-e-mailNem ellenőrzött SES-identitás, sandbox-korlát, sablonolvasási hiba vagy FROM-eltérésEllenőrizze az SES-identitást, CloudWatch-logokat, S3-sablonkulcsot és fallbacket.
A közösségi belépés duplikált felhasználót hoz létreUgyanaz az e-mail külön szolgáltatói identitások alatt jelenik megA külső IdP-összekapcsolás ki van kapcsolva vagy hibásVizsgálja meg a Pre Sign-Up logokat és az AdminLinkProviderForUser jogosultságait.
Az API-hívás belépés után elutasítvaA frontend hitelesít, de az API 401/403 választ adA felhasználó nincs a Registered csoportban, hiányzik a scope, nincs szerepkörleképezés vagy hibás az authorizerEllenőrizze a token-scope-okat, csoporttagságot, Post Confirmation logokat és az API Gateway authorizert.
Az egyedi domain hibásA Hosted UI vagy callback domain nem oldható felTanúsítványrégió vagy -ellenőrzés, Route53-zónaeltérés vagy aliascélEllenőrizze az ACM-tanúsítványt, a DNS-zóna tulajdonlását és a Cognito-domain állapotát.

Megvalósítási út

Az identitást az alkalmazáshatár, ne egy WordPress-munkamenet köré építse

Az érdemi napi üzemeltetési munka a User Pool létrejötte után kezdődik: föderáció, életciklus, jogosultságkezelés és ismételhető konfiguráció.

  1. Határozza meg, ki birtokolja az identitást — A WordPress a tartalomra és megjelenítésre összpontosítson. Akkor használjon Cognitót, ha ugyanannak a látogatói identitásnak statikus oldalakra, API-kra vagy más alkalmazásfelületekre is ki kell terjednie.
  2. Konfigurálja a szükséges bejelentkezési és föderációs utakat — A Cognito és a Gatey segítségével csak a projekt által valóban igényelt bejelentkezési, regisztrációs, MFA-, profil-, közösségi, SAML- vagy OIDC-folyamatokat engedélyezze.
  3. Rendelje az identitást futásidejű jogosultságokhoz — Token-claim-ekkel, scope-okkal, csoportokkal vagy opcionális IAM-hitelesítő adatokkal tegye lehetővé, hogy a háttérszolgáltatások a frontend láthatóságától függetlenül engedélyezzék a műveleteket.
  4. Tesztelje az életciklust és a hibákat — A megerősítést, jelszó-visszaállítást, MFA-t, szolgáltatói belépést, csoporttagság-változást, tokenlejáratot és API-elutasítást az oldalrendereléstől elkülönítve ellenőrizze.

Mikor legyen a Cognito az alkalmazásidentitási réteg tulajdonosa

Jó választás

Az identitásnak túl kell terjednie a WordPressen

  • Ugyanazoknak a felhasználóknak statikus frontenden vagy olyan oldalakon is be kell jelentkezniük, ahol nem WordPress PHP szolgálja ki a kérést.
  • A frontendidentitásnak API-kat, védett erőforrásokat vagy más alkalmazásfelületeket kell engedélyeznie.
  • A szervezetnek már van vagy várható közösségi, SAML- vagy OIDC-föderációs igénye.

Maradjon a WordPress-natív hitelesítés

A WordPress-munkamenetek egyszerűbbek lehetnek, ha

  • csak a wp-adminhoz vagy szokásos dinamikus WordPress-oldalakhoz kellenek hitelesített felhasználók.
  • nincs külső alkalmazás, védett API vagy statikus frontend, amelynek ugyanarra az identitásra lenne szüksége.
  • a meglévő bővítmények közvetlenül a WordPress felhasználói és munkamenet-viselkedésétől függenek, és nincs üzleti ok külön identitási alrendszerre.

Problémamegoldó útmutatók

Az architektúra által támogatott identitási döntések

Mikor váltsa fel az Amazon Cognito a WordPresst alkalmazásidentitási rétegként?

Lásd Az Amazon Cognito használata WordPress helyett alkalmazásidentitási rétegként. A WordPress marad a CMS, a szélesebb alkalmazás látogatói identitását pedig a Cognito kezeli.

Hogyan csatlakoztathatók meglévő SAML- vagy OIDC-identitásszolgáltatók?

Lásd WordPress csatlakoztatása meglévő SAML- és OIDC-szolgáltatókhoz. A Cognito a föderációs központ, a Gatey pedig egységes frontend-bejelentkezést biztosít.

Hogyan működik ez statikus WordPressen?

Lásd Bejelentkezés hozzáadása statikus WordPresshez PHP-munkamenetek nélkül. A böngészőoldali Cognito-belépés túléli a statikus közzétételt, mert nem függ WordPress PHP-munkamenettől.

Miben különböznek a védett statikus fájlok a védett API-któl?

A statikus kiszolgáláshoz lásd Statikus WordPress védelme CloudFront Signed Cookies segítségével. Az API-knak külön kell ellenőrizniük a JWT-, IAM- vagy más támogatott jogosultságot.

Az identitási döntéssel kezdjen

Akkor használjon Cognitót, ha a látogatói identitásnak túl kell élnie a WordPress-kérést

Az alapdöntéshez válassza az alkalmazásidentitási útmutatót, vagy az SSO-útmutatót, ha a meglévő identitásszolgáltatókkal való föderáció az elsődleges igény.