A Composer MCP-hozzáférés védelme Cognito OAuth használatával
A Composer Amazon Cognito access tokenekkel védheti MCP-végpontját, miközben a hivatalos WordPress MCP Adapter transport hookjait használja. Nem cseréli le az Adaptert, és nem hoz létre árnyék WordPress-felhasználót minden külső principalhoz.
Az engedély a következők legkisebb jogosultságú metszete:
- a token Cognito-csoportjából képzett Composer-szerep;
- az OAuth App Clienthez engedélyezett legmagasabb szerep;
- az access tokenben ténylegesen megadott Composer scope-ok;
- az aktív Site Contract, Blueprint, tulajdonosi, validációs és emberi jóváhagyási szabályok.
Hozzáférési módok
- Open: megtartja a visszafelé kompatibilis WordPress-hitelesített útvonalat.
- Protected: bearer token esetén ellenőrzi a Cognitót, és megtarthatja a konfigurált kompatibilitási útvonalat.
- Protected Required: fail-closed mód. A teljes identity provider, csoport- és klienskonfiguráció nélkül nem tesz elérhetővé Composer-eszközt, és minden MCP- kéréshez érvényes bearer token kell.
A módot a Site Contract és az MCP Access képernyőn tudatosan válassza ki. Protected Required csak sikeresen tesztelt OAuth-kör után legyen aktív.
Identity provider
A Composer más WP Suite-komponensből is feloldhatja az AWS-régiót és User Pool ID-t. Az adminfelület megmutatja a tényleges régiót, poolt, issuert, JWKS URL-t, forrást és készenléti állapotot. Hibás vagy hiányzó feloldásnál kapcsolja be a kézi konfigurációt, és adja meg mindkét értéket.
AWS Region: eu-central-1
User Pool ID: eu-central-1_AbCd1234
Issuer: https://cognito-idp.eu-central-1.amazonaws.com/eu-central-1_AbCd1234
Ezek nem titkok. Client secret és privát kulcs nem kerülhet a Composerbe.
Cognito domain és publikus App Client
Az OAuth-hoz User Pool domain kell. Válasszon generált Cognito prefix domaint, vagy a szükséges ACM-tanúsítvánnyal és DNS-sel rendelkező custom domaint. Egy App Client önmagában nem elég: domain nélkül nincs Hosted UI authorization endpoint.
A dedikált publikus App Client beállításai:
- authorization code grant;
- PKCE
S256; - nincs client secret;
- az MCP-kliens által megadott pontos HTTPS callback URL;
openidés az alábbi Composer resource-server scope-ok;- szükség esetén refresh token.
A WP Suite orchestration v1.0.93-tól új vagy meglévő User Poolhoz opcionálisan
létrehozza a Composer resource servert és App Clientet. Új poolnál a deployment
wizard generált vagy custom Cognito domaint is kér. Külsőleg kezelt meglévő pool
megtarthatja a külön kezelt domainjét. A stack AgentComposerMcpOAuthClientId
outputját másolja a Composer OAuth-kliens leképezésébe.
A callback egyezése karakterpontos, az útvonal és a záró perjel is számít.
Csoportok, szerepek, kliensek és scope-ok
A cognito:groups pontos értékeit rendelje Composer-szerepekhez. Több csoportnál
a legmagasabb leképezett szerep az alap. Minden App Client ID-hez adjon helyi
címkét és maximum szerepet; a klienskorlát csak csökkentheti a csoportszerepet.
Támogatott OAuth scope-ok:
openid
composer/read
composer/draft
composer/propose
composer/publish.request
A Composer a Cognito resource-server scope-okat belső composer.read,
composer.draft, composer.propose és composer.publish.request nevekre
normalizálja. Régi Cognito-rendszer sc.group.<group> scope-okat is képezhet.
A hitelesített csoport forrása a signed cognito:groups claim; scope nem találhat
ki csoporttagságot.
A jelenleg tesztelt legacy Cognito-folyamatban az openid kérése szükséges volt
a kívánt claim útvonalhoz. Ez nem jelenti azt, hogy a ChatGPT OIDC email/domain
claiming funkcióját be kell kapcsolni. A Composer az aláírt access tokent
ellenőrzi, nem az ID tokent, és nem hirdet issuer-invalid proxy OIDC-dokumentumot.
A discovery hitelesítés előtt publikus
Az MCP protected-resource metadata, az OAuth authorization-server metadata és a
401-es WWW-Authenticate challenge bearer token nélkül is elérhető kell legyen.
Különben a kliens nem tudja megtanulni, hogyan hitelesítsen.
Ennek működnie kell közvetlen HTTP-n a
/wp-json/mcp/smartcloud-agent-composer útvonalon és az ugyanerre mutató OpenAI
Secure MCP Tunnel HTTP profilon keresztül is. Régi STDIO tunnel nem továbbítja a
külső HTTP challenge-et és bearer tokent. Site-onként mentse, migrálja HTTP-re,
indítsa újra és ellenőrizze a discoveryt, mielőtt újracsatlakoztatja a klienst.
ChatGPT beállítása
- A developer-mode appban válassza a megfelelő site-tunnelt vagy közvetlen URL-t.
- Az Advanced OAuth settings alatt válasszon user-defined public OAuth clientet.
- Másolja pontosan a ChatGPT callback URL-jét a Cognito App Clientbe.
- Adja meg a Client ID-t; a secret maradjon üres, a token endpoint auth
none. - Kérje az
openidés a munkafolyamathoz szükséges Composer scope-okat. - Végezze el a Cognito Hosted UI login és consent folyamatát.
- Reconnect után ellenőrizze az action katalógust, és először read-only műveletet futtasson.
401 vagy 403
- 401 Authentication required: hiányzó, hibás vagy lejárt token, rossz issuer/audience/client, illetve sikertelen aláírás-ellenőrzés.
- 403 Forbidden: a hitelesítés sikerült, de a csoport, klienskorlát, scope, szerep, tulajdonjog vagy Site Contract tiltja a műveletet.
Ezeket ne WordPress Administrator joggal vagy a szerződés kikapcsolásával javítsa. Az Audit & portability képernyőn nézze meg a redaktált eseményrészleteket.
Audit és tokenbiztonság
A Composer manipulációt jelző auditláncban rögzíti a hozzáférési döntéseket, befejezett tool hívásokat, külső principal identitását, eredményt és redaktált diagnosztikát. Az adminfelület böngésző szerinti helyi időt és zónát mutat, a részletekben pedig megőrzi a pontos UTC-időt.
A teljes bearer tokent, Authorization headert, client secretet, kérési argumentumot vagy tool eredményt sosem szabad tárolni vagy megjeleníteni.
Élesítési ellenőrzőlista
- A feloldott régió, pool, issuer és JWKS URL helyes.
- A generált/custom domain kiszolgálja a Hosted UI-t.
- A publikus kliens code + PKCE S256 módot és pontos callbacket használ.
- A szükséges csoportok az access tokenben vannak és pontosan le vannak képezve.
- A Client ID, maximum szerep és engedélyezett Composer scope-ok helyesek.
- Az ismeretlen kliensek a szabályzat szerint elutasításra kerülnek.
- A discovery bearer nélkül is működik a kiválasztott HTTP útvonalon/tunnelen.
- A Reader, Contributor és Publisher határai külön teszteltek.
- A Publisher jóváhagyást kérhet, de közvetlenül nem publikálhat.
- A sikeres és tiltott hívások érzékeny adat nélkül megjelennek az auditban.
Transport beállítás: Közvetlen MCP vagy Secure Tunnel és ChatGPT.
