eu-central-1).Security: Treat the client secret like a password. Do not paste it into chat, tickets, or public repos. Rotate it if it is exposed.
eu-central-1_XwEcf0382). The segment before the underscore is your
Region.
WoodsPortal needs the hosted UI domain for your user pool (the URL users see when Cognito handles sign-in).
https://
.auth.
.amazoncognito.com
.WoodsPortal field “Cognito Domain”: Enter the value your product expects—often the host only (no https://), for example
.auth.
.amazoncognito.com
. If connection fails, try the prefix only form if your admin UI documents that variant.
openid, and add
email ,
profile if your pool and WoodsPortal expect them.
| WoodsPortal field | Where to find it in AWS |
|---|---|
| Client ID | App client → Client ID |
| Client Secret | App client → show/copy secret |
| Region | Region where the user pool lives (e.g. eu-central-1) |
| User Pool ID | User pool overview → User pool ID |
| Cognito Domain | Branding → Domain → Cognito domain (see section 2) |
After the integration is saved, the WoodsPortal login page shows Sign in with AWS Cognito. Users who should use SSO click that button and complete Cognito sign-in.
| Symptom | Things to check |
|---|---|
Redirect error / redirect_mismatch |
Callback URL in Cognito exactly matches WoodsPortal (scheme, host, path, no trailing slash mismatch). |
| Invalid client / auth errors | Client ID and secret copied correctly; client still exists; secret not rotated without updating WoodsPortal. |
| Wrong region errors | Region matches the user pool (same as in the User pool ID prefix). |
| Domain errors | Cognito Domain format matches what WoodsPortal expects (with or without https://, host vs prefix—see section 2). |
| Missing email/name claims | App client attribute permissions and OpenID scopes (email, profile) in Cognito.From the woodsportal workspace root (parent repo), with a local venv that has Pillow:Otput: docs/aws-cognito-sso/images/annotated/*.png.Files in this folderScreenshots in images/original/ are examples; your pool names, IDs, and URLs will differ. |