Skip to content

Commit 58a3f64

Browse files
Track Google-only login policy
The shared clients now offer Google as their only identity provider, so assert exactly {Google} rather than {COGNITO, Google}, and update the policy docs: username/password authentication is no longer reachable.
1 parent 43392ef commit 58a3f64

3 files changed

Lines changed: 9 additions & 6 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ and GitHub/CloudFormation IAM roles.
1818

1919
## Policy
2020

21-
- Administrator-created Cognito username/password users are allowed.
21+
- Google is the only supported identity provider. Every app client offers
22+
Google sign-in only; username/password authentication is not reachable.
2223
- Google identities must have a verified `@datatalks.club` email address.
2324
- The restriction is enforced on both first federated signup and every later
2425
Google authentication. A Google `hd` hint is not an authorization boundary.

docs/google-auth-setup.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,12 @@ The automated verifier requires AWS access but no user credentials:
103103
uv run --with boto3 python scripts/verify_deployment.py --live
104104
```
105105

106-
It checks that all five Cognito application clients enable `COGNITO` and
107-
`Google`, their callback/logout registrations match `config/clients.json`, each
108-
Google authorization request reaches `accounts.google.com`, the deployed guard
109-
allows a verified `@datatalks.club` address and rejects another domain, and no
106+
It checks that all five Cognito application clients enable `Google` as their
107+
only identity provider, their callback/logout registrations match
108+
`config/clients.json`, the Google provider maps the `email` and `email_verified`
109+
claims the guard reads, each Google authorization request reaches
110+
`accounts.google.com`, the deployed guard allows a verified `@datatalks.club`
111+
address and rejects both another domain and a missing `email_verified`, and no
110112
disposable Codex test users remain.
111113

112114
Then use private browser windows for the two human checks:

scripts/verify_deployment.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def verify_live():
5656
deployed = cognito.describe_user_pool_client(
5757
UserPoolId=pool, ClientId=client["client_id"]
5858
)["UserPoolClient"]
59-
assert set(deployed["SupportedIdentityProviders"]) == {"COGNITO", "Google"}
59+
assert set(deployed["SupportedIdentityProviders"]) == {"Google"}
6060
assert client["callback_url"] in deployed["CallbackURLs"]
6161
assert client["logout_url"] in deployed["LogoutURLs"]
6262

0 commit comments

Comments
 (0)