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őalapú WordPress vagy statikus frontend nem tud biztonságosan kliens-titkot tárolni. A Cognito alkalmazásklienst titok 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 frontendnek 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 ezeket a szolgáltatókat egyetlen User Pool mögé helyezi. A Gatey jeleníti meg a WordPress felé néző felületet, miközben a hitelesítés, az MFA, a felhasználói attribútumok, a csoportok és a tokenkibocsátás a Cognitóban marad.

  • 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 frontenden 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 kell konfigurálni a User Poolt és az App Clientet?

Induljon ki egy Cognito User Poolból és egy böngészőre szánt alkalmazáskliensből. Az alkalmazáskliens ne hozzon létre titkot. Engedélyezze az authorization code grant folyamatot, és pontosan regisztrálja a webhely által használt visszahívási és kijelentkezési URL-eket.

Csak a frontend számára szükséges scope-okat kérje. Gyakori alapbeállítás az openid, az email és a profile. Az aws.cognito.signin.user.admin scope-ot csak akkor adja hozzá, ha a fiókkezelési felületnek az általa lefedett Cognito-felhasználóiprofil-műveletekre van szüksége.

  • 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.

Az attribútumok leképezése okozza leggyakrabban a nehezen észrevehető problémákat. Ahol elérhető, képezze le az e-mail-címet, az utónevet, a vezetéknevet és egy stabil szolgáltatói azonosítót. Mielőtt a szolgáltatót éles felhasználók számára engedélyezi, ellenőrizze, mely attribútumokat követeli meg a User Pool.

  • Minden szolgáltatót külön teszteljen a Cognito által hosztolt engedélyezési útvonalon.
  • Ellenőrizze a visszaadott claim-eket és a leképezett attribútumokat; ne feltételezze, hogy a szolgáltatói alapértékek megfelelnek.
  • A kért szolgáltatói scope-okat és Cognito-attribútumokat tartsa az alkalmazás által megengedett minimumon.

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.

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

Szolgáltató Hitelesítő adatok Scope-ok Jellemző leképezés
Google OAuth Client ID + titok openid email profile email → email, family_name → family_name, given_name → given_name, sub → username
Facebook App ID + titok email public_profile email → email, last_name → family_name, first_name → given_name, id → username
Apple Services ID, kulcs, Team ID openid email name 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 igény szerint) email → email, name → given/family ahol 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, majd konfigurálja a Gateyt a webhely által használt AWS-régióval, User Pool ID-val, App Client ID-val, Cognito-domainnel, OAuth scope-okkal, bejelentkezési mechanizmusokkal és regisztrációs attribútumokkal.

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.

Az wp-login.php lecserélése előtt képezzen le egy adminisztrátori csoportot

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 frontend számára szükséges műveleteket és erőforrásokat engedélyezzék. A csoport- vagy claim-alapú engedélyezés tovább szűkítheti az alkalmazás viselkedését, de nem ellensúlyozhat túl tág IAM-házirendet.

  • 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 hibafolyamatokat is tesztelje. Az eltérő átirányítási címek, a hiányzó openid scope, a hiányos e-mail-leképezés, az alkalmazáskliens titka és az wp-login idő előtti lecserélése gyakori oka az egyébként nehezen értelmezhető SSO-hibáknak.

  • Ellenőrizze a pontos visszahívási és kijelentkezési URL-eket a Cognitóban és a WordPressben.
  • Ellenőrizze a szükséges claim-eket, leképezett attribútumokat, csoportokat és 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 kézbesíté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á.