WordPress-hitelesítés

WordPress SSO Amazon Cognitóval és Gatey-jel | Útmutató közösségi és vállalati bejelentkezéshez

Az Amazon Cognito egységes identitásközpontként szolgálhat a közösségi szolgáltatókhoz, valamint a szervezet meglévő SAML- vagy OIDC-szolgáltatójához. A Gatey ezt az identitásréteget konfigurálható bejelentkezési, regisztrációs, MFA- és fiókkezelési folyamatokon keresztül teszi elérhetővé a WordPressben, amelyek statikus exportálás után is működőképesek maradhatnak.

Három döntés határozza meg a teljes SSO-architektúrát

Válassza ki az identitásközpontot

A közösségi és vállalati szolgáltatókat egyetlen Cognito User Pool mögött kezelje, hogy az alkalmazások egységes felhasználó-, attribútum-, csoport- és tokenkészlettel dolgozzanak.

Használjon nyilvános alkalmazásklienst

A böngészőben futó WordPress-felület vagy statikus webhely nem tud biztonságosan titkos kulcsot tárolni. A Cognito alkalmazásklienst titkos kulcs nélkül hozza létre.

Határozza meg az engedélyezési határt

A Cognito-bejelentkezés megállhat a böngészőmunkameneteknél és JWT-knél, vagy Identity Pool használatával továbbvihető, ha a látogatói felületnek ideiglenes AWS-hitelesítő adatokra van szüksége.

Miért érdemes a Cognitót identitásközpontként használni?

Egy WordPress-webhelynek szüksége lehet egyszerű közösségi bejelentkezésre az ügyfelek, valamint vállalati SSO-ra a munkatársak, partnerek vagy ügyfelek számára. Ha minden szolgáltatót közvetlenül a WordPressben konfigurál, több külön visszahívási folyamat jön létre, és a későbbi módosítások összehangolása nehezebbé válik.

A Cognito egyetlen User Poolhoz kapcsolja ezeket a szolgáltatókat, és kiállítja az alkalmazás által használt tokeneket. A Gatey biztosítja a WordPress-felületet. Külső szolgáltatóval történő bejelentkezéskor a hitelesítést és az előírt többtényezős ellenőrzést a külső szolgáltatónál kell beállítani.

  • Egyetlen User Pool szolgáljon az alkalmazás identitásjegyzékeként.
  • Minden külső szolgáltatót a Cognitóhoz adjon hozzá a WordPress bejelentkezési folyamatának újjáépítése helyett.
  • A Gatey jelenítse meg az így létrejövő bejelentkezési lehetőségeket a WordPressben.

Ez a szétválasztás különösen hasznos, ha ugyanannak az identitási útvonalnak dinamikus WordPress-telepítésen és statikusan közzétett látogatói felületen is működnie kell. Az alkalmazásszintű határ kialakításáról itt olvashat: az Amazon Cognito használata alkalmazásszintű identitásrétegként.

Hogyan állítsa be a User Poolt és az alkalmazásklienst?

Induljon ki egy Cognito User Poolból és egy böngészős használatra létrehozott alkalmazáskliensből. A klienshez ne hozzon létre titkos kulcsot. Engedélyezze az engedélyezési kódon alapuló folyamatot (authorization code grant), és pontosan adja meg a webhely visszatérési és kijelentkezési URL-jeit.

Csak a látogatói felület számára szükséges jogosultsági köröket kérje. Gyakori alapbeállítás az openid, az email és a profile. Az aws.cognito.signin.user.admin kört csak akkor adja hozzá, ha a fiókkezelő felületnek szüksége van az általa engedélyezett Cognito-profilműveletekre.

  • A visszahívási URL-ek pontosan egyezzenek, beleértve a protokollt, a gazdagépnevet, az elérési utat és a záró perjelet.
  • Engedélyezzen minden identitásszolgáltatót, amelyet az alkalmazáskliensnek kínálnia kell.
  • Hozzon létre Cognito-domaint a felügyelt engedélyezési végpontokhoz.

A WordPress-felület kialakítása előtt tesztelje a Cognito engedélyezési folyamatát. Az a szolgáltató, amely a Cognitóban hibázik, a Gateyn keresztül indítva is hibázni fog.

Hogyan illeszkednek a rendszerbe a közösségi és vállalati szolgáltatók?

A Cognito képes olyan gyakori közösségi szolgáltatók összevonására, mint a Google, a Facebook, az Apple és az Amazon. A vállalati kapcsolatok jellemzően OIDC-n vagy SAML-en keresztül érkeznek, így a meglévő vállalati identitásszolgáltató maradhat a munkatársi vagy partneridentitások forrása.

Rendelje hozzá a szolgáltató adatait a User Pool kötelező attribútumaihoz, például az e-mail-címhez és a névhez. A külső szolgáltatóval belépő felhasználó nevét a Cognito maga képezi a szolgáltatói azonosítóból; ezt nem kell külön hozzárendelni. Ellenőrizze a kötelező és írható attribútumokat az AWS attribútum-hozzárendelési dokumentációjában.

  • Minden szolgáltatót külön teszteljen a Cognito által hosztolt engedélyezési útvonalon.
  • Ellenőrizze a tokenben visszaadott adatokat és a hozzárendelt attribútumokat; ne feltételezze, hogy a szolgáltató alapértékei megfelelnek.
  • Csak az alkalmazáshoz szükséges szolgáltatói jogosultsági köröket és Cognito-attribútumokat kérje.

A szolgáltatók megjelenített neve a Gatey prezentációs beállítása; a tényleges szolgáltatói azonosítók és a bizalmi konfiguráció továbbra is a Cognitóhoz tartoznak. A föderációs útvonalról itt olvashat: a WordPress összekapcsolása meglévő SAML- és OIDC-identitásszolgáltatókkal. Az alábbi táblázat a külső szolgáltató beállításait mutatja; ezek jogosultsági körei eltérnek a Cognito alkalmazáskliense által kért köröktől. A pontos mezőkhöz kövesse az AWS szolgáltatóbeállítási útmutatóját.

Közösségi identitásszolgáltatók beállításai

Szolgáltató Hitelesítő adatok Jogosultsági körök Jellemző leképezés
Google OAuth Client ID + titok openid email profile email → email, family_name → family_name, given_name → given_name; a felhasználónevet a Cognito képezi a sub értékéből.
Facebook App ID + titok public_profile, email email → email, last_name → family_name, first_name → given_name; a felhasználónevet a Cognito képezi az id értékéből.
Apple Services ID, Team ID, Key ID és privát kulcs name email Képezze le: email; a felhasználói élmény tervezésekor vegye figyelembe az Apple privát továbbítási e-mail-címeit.
Amazon Login with Amazon Security Profile profile email → email, name → name, ha elérhető

Hogyan kapcsolható össze a Cognito a Gatey-jel?

A WordPress adminisztrációs felületén nyissa meg a SmartCloud beállításait. Adja meg a Gatey számára a webhely AWS-régióját, a User Pool és az alkalmazáskliens azonosítóját, a Cognito-domaint, az OAuth-jogosultsági köröket, a bejelentkezési módokat és a regisztrációs adatokat.

Ezután adja hozzá a Gatey Authenticator blokkot a bejelentkezési vagy fiókoldalhoz. A beépített közösségi szolgáltatók a blokk beállításaiban engedélyezhetők, az egyéni SAML- és OIDC-szolgáltatók pedig a projekthez szükséges címkékkel jeleníthetők meg.

  • Először hozzon létre és teszteljen egy külön bejelentkezési vagy fiókoldalt.
  • Külön ellenőrizze a regisztrációs, megerősítési, jelszó-helyreállítási, MFA- és profilfolyamatokat.
  • Egyéni szolgáltatói gombokat csak a Cognito-azonosítók ellenőrzése után adjon hozzá.

A Gatey a WordPress megjelenítési rétegét vezérli, de a szolgáltatói titkokat, jelszavakat és a Cognito felhasználói címtárát nem helyezi át a WordPressbe.

A wp-login.php lecserélése előtt rendelje hozzá az adminisztrátori csoportot a megfelelő szerepkörhöz

Ne irányítsa át és ne cserélje le a WordPress natív bejelentkezését addig, amíg legalább egy tesztelt Cognito-identitás nincs hozzárendelve a szükséges WordPress-adminisztrátori szerepkörhöz. Ellenőrizze a teljes folyamatot külön böngészőmunkamenetben, és tartson fenn helyreállítási útvonalat, hogy egy szolgáltatói vagy leképezési hiba ne zárhassa ki az összes adminisztrátort.

Mikor van szükség Identity Poolra és IAM-szerepkörre?

A User Pool elegendő, ha a webhelynek csak bejelentkezésre, fiókkezelő képernyőkre és JWT-vel engedélyezett API-kra van szüksége. Az Identity Pool akkor válik fontossá, ha a hitelesített böngészőfelhasználóknak ideiglenes AWS-hitelesítő adatokat kell kapniuk, és AWS IAM használatával kell aláírniuk a kéréseket.

A kapcsolódó IAM-szerepkörök csak a látogatói felület számára szükséges műveleteket és erőforrásokat engedélyezzék. A csoportok vagy a token adatai alapján végzett jogosultság-ellenőrzés tovább szűkítheti a hozzáférést, de nem helyettesíti a megfelelően korlátozott IAM-szabályzatot.

  • Használjon JWT-alapú engedélyezést, ha az API közvetlenül képes ellenőrizni a Cognito-tokeneket.
  • Csak AWS-hitelesítő adatokat és IAM-aláírást igénylő esetekhez adjon hozzá Identity Poolt.
  • Az execute-api és más jogosultságokat korlátozza a kijelölt API-kra és műveletekre.

Az identitáshitelesítést és az erőforrás-engedélyezést külön tervezési döntésként kezelje. A sikeres bejelentkezés nem jelenthet automatikusan széles körű hozzáférést az AWS-szolgáltatásokhoz.

Mit kell tesztelni az SSO-folyamat közzététele előtt?

Minden szolgáltatót futtasson végig ugyanazon a folyamaton, amelyet egy valódi felhasználó követ: induljon a WordPressből, hitelesítsen a szolgáltatónál, térjen vissza a regisztrált visszahívási címre, ellenőrizze a létrejött fiókadatokat, jelentkezzen ki, majd ismételje meg egy meglévő fiókkal.

A hibás eseteket is tesztelje. Az eltérő átirányítási címek, a hiányzó openid jogosultsági kör, a hiányos e-mail-hozzárendelés, az alkalmazásklienshez létrehozott titkos kulcs és a wp-login idő előtti lecserélése egyaránt okozhat nehezen értelmezhető SSO-hibákat.

  • Ellenőrizze a pontos visszahívási és kijelentkezési URL-eket a Cognitóban és a WordPressben.
  • Ellenőrizze a token szükséges adatait, a hozzárendelt attribútumokat, a csoportokat és a WordPress-szerepköröket.
  • Az alapértelmezett bejelentkezés módosítása előtt teszteljen adminisztrátori helyreállítási útvonalat.

Ha az identitási útvonal már megbízható, a stílus és a szolgáltatói címkék az alapul szolgáló bizalmi kapcsolatok módosítása nélkül finomíthatók. Statikus kiszolgálás esetén tekintse át, hogyan tartható működésben a bejelentkezés a PHP-munkamenetek visszaállítása nélkül.

Először az identitási útvonalat konfigurálja

A WordPress-bejelentkezés formázása előtt tesztelje a Cognitót

Először építse fel és ellenőrizze a User Poolt, a nyilvános alkalmazásklienst, a szolgáltatói leképezéseket, a visszahívásokat és a szerepkörhatárokat. Ezután a Gatey segítségével helyezze el a létrejövő bejelentkezési és fiókkezelési folyamatot ott, ahol a WordPress-felhasználók számítanak rá.